<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>untidy blog &#187; Simon</title>
	<atom:link href="http://untidy.net/blog/author/simon/feed/" rel="self" type="application/rss+xml" />
	<link>http://untidy.net/blog</link>
	<description>simon steele writes about stuff...</description>
	<lastBuildDate>Fri, 28 May 2010 13:28:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Using JSLint with Programmer&#8217;s Notepad</title>
		<link>http://untidy.net/blog/2010/05/28/using-jslint-with-programmers-notepad/</link>
		<comments>http://untidy.net/blog/2010/05/28/using-jslint-with-programmers-notepad/#comments</comments>
		<pubDate>Fri, 28 May 2010 13:28:20 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=421</guid>
		<description><![CDATA[JSLint is a useful JavaScript tool that checks your syntax and finds common quality problems. Pat Cavit has a nice writeup on using JSLint in Programmer&#8217;s Notepad. Thanks Pat!]]></description>
			<content:encoded><![CDATA[<p><a href="http://jslint.com/">JSLint</a> is a useful JavaScript tool that checks your syntax and finds common quality problems.<br />
Pat Cavit has a nice writeup on using <a href="http://patcavit.com/2010/05/11/jslint-in-programmers-notepad-revisited/">JSLint in Programmer&#8217;s Notepad</a>. Thanks Pat!</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2010/05/28/using-jslint-with-programmers-notepad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmer&#8217;s Notepad 2.1.4 Released</title>
		<link>http://untidy.net/blog/2010/05/11/programmers-notepad-2-1-4-released/</link>
		<comments>http://untidy.net/blog/2010/05/11/programmers-notepad-2-1-4-released/#comments</comments>
		<pubDate>Tue, 11 May 2010 21:22:50 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>
		<category><![CDATA[textclips]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=415</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;s easy to use most of the simpler TextMate Snippets in Programmer&#8217;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.</p>
<p>There is new documentation for the updated text clips syntax on the documentation site: <a href="http://pnotepad.org/docs/text_clips">Text Clips</a>. To upgrade your clips you can probably simply replace all instances of $(&#8230;) with ${&#8230;}.</p>
<p><strong>Changes in 2.1.4:</strong></p>
<ol>
<li>Replaced the text clip parser with a brand new one, supporting placeholders and variables</li>
<li>Allow text clip insertion using tab.</li>
<li>Update tagging to use CTags 5.8, add support for new ctags languages, including batch, matlab, ocaml, &#8230;</li>
<li>Custom scheme (schemedef improvements) including case sensitive option and various fixes and optimisations &#8211; thanks to Lennard Fonteijn</li>
<li>Autocomplete fixes, better support for mixed tag and keyword autocomplete, again thanks to Lennard</li>
<li>Updated Scintilla to version 2.11</li>
<li>Distributed clips updated for new syntax</li>
</ol>
<p>Fixes:</p>
<ol>
<li>Remove magic folder if add cancelled (#868)</li>
<li>Fix overlapping UI element (#869)</li>
<li>Fix error when enter pressed in command bar and no text present (#842)</li>
<li>Fix annoying issue where keyboard cannot access menus from docking windows</li>
<li>Remove system menu and min/max from docking windows (#776)</li>
<li>Stability fixes for update check, fixes case where we fail to even open the wininet connection (#765)</li>
<li>Correctly display status of File save modifiers (#836)</li>
<li>Fix magic folder path changing. (#760)</li>
<li>Default to UTF-8 file type if UTF-8 is our default code page (#821)</li>
<li>Make sure modified state is retained when splitting view (#841)</li>
<li>Fix incorrect matching with calltips (#792)</li>
<li>Fix default style continuation thanks to Lennardfonteijn (#890)</li>
<li>Don&#8217;t ignore case when matching MRU combo entries (#690)</li>
<li>Change clashing keyboard shorcut, fixing paragraph navigation (#831)</li>
<li>Remove length limit on quick find box (#832)</li>
<li>Fix crash when clearing font size box (#870)</li>
<li>Make sure we don&#8217;t try to cache too much from a single ctags line (#901)</li>
<li>Support overwriting hidden files (#859)</li>
<li>Make sure scheme command line argument is passed through intact (#899)</li>
<li>Correctly remove autocomplete handlers when autocomplete aborted (#857)</li>
<li>Fixed scrollbar being set to a width on an empty document (experimental, #897)</li>
<li>Fix text clip completion list</li>
<li>Various custom lexer fixes (#37 and others)</li>
<li>Fixed Autocomplete not coming up untill before you saved a file</li>
<li>Avoid reading zip file subfolders attribute, speed up loading</li>
</ol>
<p><strong>Downloads:</strong><br />
<a href="http://pnotepad.googlecode.com/files/pn2142191.exe">Download 2.1.4 Installer</a><br />
<a href="http://pnotepad.googlecode.com/files/portable-pn2142191.zip">Download 2.1.4 Portable</a><br />
<a href="http://pnotepad.googlecode.com/files/pn2142191_multilang.exe">Download 2.1.4 Multi-Language</a></p>
<p>Thanks to all contributors, translators and testers for their help with this release.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2010/05/11/programmers-notepad-2-1-4-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Programmer&#8217;s Notepad 2.1.3 Released</title>
		<link>http://untidy.net/blog/2010/03/12/programmers-notepad-2-1-3-released/</link>
		<comments>http://untidy.net/blog/2010/03/12/programmers-notepad-2-1-3-released/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 06:36:36 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=401</guid>
		<description><![CDATA[A new testing release, version 2.1.3 of Programmer’s Notepad has been released to Google Code. This release fixes a bunch of bugs, but more importantly contains a complete rewrite of the Text Clips UI and Management/Editing features. Changes in 2.1.3: Complete re-write of text clips view and clips management system End clip entry on final [...]]]></description>
			<content:encoded><![CDATA[<p>A new testing release, version 2.1.3 of <a href="http://www.pnotepad.org/">Programmer’s Notepad</a> has been released to Google Code. This release fixes a bunch of bugs, but more importantly contains a complete rewrite of the <a href="http://untidy.net/blog/2010/03/12/text-clips-changes/">Text Clips UI and Management/Editing features</a>.</p>
<p><strong>Changes in 2.1.3:</strong></p>
<ol>
<li>Complete re-write of text clips view and clips management system</li>
<li>End clip entry on final empty field (experimental)</li>
<li>Smart highlight range now limited to field of view +/- 200 lines, improves speed and usability with large files.</li>
<li>Translations now fed directly from user translation project at pnotepad-trans.googlecode.com</li>
<li>Switch to boost 1.42</li>
</ol>
<p>Bug Fixes:</p>
<ol>
<li>Fix magic folder path changing. Fixes bug #760.</li>
<li>Default to UTF-8 file type if UTF-8 is our default code page. Fixes bug #821.</li>
<li>Fix incorrect behaviour when cancelling project load. Fixes issue #797.</li>
<li>Don&#8217;t ignore the first item when searching in Jump dialog. Fixes issue #820.</li>
<li>Project template bugs introduced in 2.1</li>
<li>Use correct foreground color for options section header. Fixes issue #814.</li>
<li>Fix taggers path. Add .pyw to default ctags options.</li>
<li>Reset chunk position at start of clip insertion. Fixes issue #805.</li>
<li>Fix GetLongPathName call. Fixes issue #803.</li>
<li>Don&#8217;t lowercase filename on adding new file. Fixes issue #527.</li>
</ol>
<p><strong>Downloads</strong></p>
<p><a href="http://pnotepad.googlecode.com/files/pn2132140.exe">Download 2.1.3 Installer</a><br />
<a href="http://pnotepad.googlecode.com/files/portable-pn2132140.zip">Download 2.1.3 Portable</a><br />
<a href="http://pnotepad.googlecode.com/files/pn2132140_multilang.exe">Download 2.1.3 Multi-Language</a></p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2010/03/12/programmers-notepad-2-1-3-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Text Clips Changes</title>
		<link>http://untidy.net/blog/2010/03/12/text-clips-changes/</link>
		<comments>http://untidy.net/blog/2010/03/12/text-clips-changes/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 06:33:45 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=404</guid>
		<description><![CDATA[There has been confusion ever since the Code Templates feature was originally introduced over which to use, Templates or Clips &#8212; each feature had useful aspects and the separation between them was a design mistake. As of the 2.1.3 release all Code Templates features have been merged into Text Clips, and Text Clips has been [...]]]></description>
			<content:encoded><![CDATA[<p>There has been confusion ever since the Code Templates feature was originally introduced over which to use, Templates or Clips &#8212; each feature had useful aspects and the separation between them was a design mistake. As of the 2.1.3 release all Code Templates features have been merged into Text Clips, and Text Clips has been re-designed to present a more understandable and usable feature &#8211; completely revamped User Interface, improved management of Clips files, editing built-in.</p>
<p><a href="http://untidy.net/blog/wp-content/uploads/2010/03/newclips.png"><img src="http://untidy.net/blog/wp-content/uploads/2010/03/newclips.png" alt="Screenshot of New Clips Editor" title="Text Clips Editor" width="542" height="474" class="alignnone size-full wp-image-402" /></a></p>
<p><strong>Built-in Editing</strong></p>
<p>You can now Add/Remove/Edit Text Clips using the new 2.1 smart templates syntax directly from the Text Clips window. Text Clips are organised primarily by the scheme they are relevant to, and then optionally by sub-groups. In the screenshot you can see the main Python clips are shown at the top of the view, and then sub-sections for PyPN and Django are visible and expanded. You can add and remove sections in the Text Clips window.</p>
<p>You can always browse clips associated with any scheme, but keyboard shortcuts are limited to the currently selected scheme.</p>
<p><strong>Storage Changes</strong></p>
<p>All the issues with discovery of .clips files should be resolved, and yet we retain great support for user editing of clips (including for non-admin users). Clips files are now organised by scheme, and any changed set of clips is stored in the user settings directory so that settings are kept user-centric and we don&#8217;t need to modify installed files.</p>
<p><strong>Out with the Old, In with the New</strong></p>
<p>This change means that support for the old simple Text Clip syntax has been removed in 2.1.3, and many of the clips files will need updating and could do with new relevant clips creating. All submissions welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2010/03/12/text-clips-changes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Programmer&#8217;s Notepad 2.1.2 Released</title>
		<link>http://untidy.net/blog/2010/02/05/programmers-notepad-2-1-2-released/</link>
		<comments>http://untidy.net/blog/2010/02/05/programmers-notepad-2-1-2-released/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 23:05:17 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[textclips]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=395</guid>
		<description><![CDATA[A new testing release, version 2.1.2 of Programmer&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>A new testing release, version 2.1.2 of <a href="http://www.pnotepad.org/">Programmer&#8217;s Notepad</a> has been released to Google Code. The major new feature in this release is <a href="http://untidy.net/blog/2010/02/05/introducing-template-fields/">Code Template Fields</a>, but there have been a lot of other changes too:</p>
<ul>
<li>Code Template Fields</li>
<li>Cleaner visual style for the document tabs</li>
<li>Added line padding options, allows more whitespace between lines</li>
<li>Switch to Scintilla&#8217;s built-in line length measurement</li>
<li>Removed some 3D styling bits to clean up the look of the editor, more to do.</li>
<li>New tab text changed from <new> to Untitled</new></li>
<li>-z parameter now assumes a single file after the -z, designed for notepad replacement.</li>
<li>Updated to latest Scintilla bits for some multi-caret fixes</li>
<li>Fixed a couple of regular expression issues.</li>
<li>Fix tools options tab titles.</li>
<li>Made SmartHighlight more visible, less alpha blending</li>
</ul>
<p><img src="http://untidy.net/blog/wp-content/uploads/2010/02/PN212.png" alt="" title="Programmer&#039;s Notepad 2.1.2" width="576" height="397" class="alignnone size-full wp-image-396" /></p>
<p>In case you haven&#8217;t used a 2.1 build yet, here are the other headline features in the testing builds:</p>
<ol>
<li>Full Unicode Support</li>
<li>Support for Translations &#8211; <a href="http://www.pnotepad.org/docs/howto/translate_programmer_s_notepad">PN in your language</a></li>
<li>Prototype <a href="http://untidy.net/blog/2009/10/13/pn-command-bar/">Command Bar</a> feature (with PyPN)</li>
<li>Multiple simultaneous selections, including typing into block selections</li>
<li>Virtual space</li>
</ol>
<p><strong>Downloads:</strong></p>
<p><a href="http://pnotepad.googlecode.com/files/pn2122096.exe">Download 2.1.2 Installer</a><br />
<a href="http://pnotepad.googlecode.com/files/pn2122096_multilang.exe">Download 2.1.2 Multi-language Installer</a><br />
<a href="http://pnotepad.googlecode.com/files/portable-pn2122096.zip">Download 2.1.2 Portable</a></p>
<p><em>Updated Portable download link now, apologies for the confusion!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2010/02/05/programmers-notepad-2-1-2-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introducing Template Fields</title>
		<link>http://untidy.net/blog/2010/02/05/introducing-template-fields/</link>
		<comments>http://untidy.net/blog/2010/02/05/introducing-template-fields/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 22:39:12 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=390</guid>
		<description><![CDATA[The next Programmer&#8217;s Notepad testing release (2.1.2) adds support for Template Fields. This is the first new feature in a series of improvements to Code Templates/Text Clips which I&#8217;ll talk about more in a future post. Template Fields are the first part of the work necessary to support TextMate Snippet-style features. The best way to [...]]]></description>
			<content:encoded><![CDATA[<p>The next <a href="http://www.pnotepad.org/">Programmer&#8217;s Notepad</a> testing release (2.1.2) adds support for Template Fields. This is the first new feature in a series of improvements to Code Templates/Text Clips which I&#8217;ll talk about more in a future post.</p>
<p>Template Fields are the first part of the work necessary to support TextMate Snippet-style features. The best way to show you what&#8217;s supported so far is with a quick screencast:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/aasJ7b5jjc4&#038;hl=en_GB&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/aasJ7b5jjc4&#038;hl=en_GB&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>Here are the standard snippet features that are not supported (yet):</p>
<ul>
<li>Regular Expression Modifiers</li>
<li>Environment Variables / Contextual values, e.g. Current File Name</li>
<li>Inclusion of output from external tools / scripts</li>
</ul>
<p>These will all be delivered in future releases. I&#8217;ve included some sample clips for PHP with the 2.1.2 distribution, but due to a bug with the way new clips are detected you&#8217;ll need to delete your InstallClipCache.xml file to force an update &#8211; this will be fixed for the next release. You can find the InstallClipCache.xml file in your User Settings directory (e.g. c:\users\myuser\AppData\Roaming\Echo Software\PN2).</p>
<p>Adding new clips is easy, just go to Code Templates in the Options dialog and add templates to the relevant scheme. You insert template fields with this notation:</p>
<p><code>$(1:Text User Will Replace)</code></p>
<p>The number is used to link different fields together, the first instance of each one is the &#8220;master&#8221; field for that number. The number 0 is special and will cause the cursor to be positioned there at the end of clip insertion, e.g.:</p>
<p><code>while ($(1:Condition))<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(0)<br />
}</code></p>
<p>Clips you add yourself in options will be available straight away in the editor, just type the shortcut (or part of it) and press Ctrl-Alt-Space. In the future pressing Tab will expand templates where the name is matched. </p>
<p>I hope you enjoy trying out this new feature, a lot of work went into making it!</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2010/02/05/introducing-template-fields/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Development Build</title>
		<link>http://untidy.net/blog/2009/11/19/new-development-build/</link>
		<comments>http://untidy.net/blog/2009/11/19/new-development-build/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 22:54:35 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>
		<category><![CDATA[PyPN]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=377</guid>
		<description><![CDATA[Now that the Mercurial code move is over and a whole bunch more bugs have been worked out, I&#8217;m happy to announce the first 2.1 testing release that&#8217;s being signalled for downloads. The new build is also available for download here: Download 2.1.1.2047 Installer Download 2.1.1.2047 Portable In case you haven&#8217;t been keeping up with [...]]]></description>
			<content:encoded><![CDATA[<p>Now that the Mercurial code move is over and a whole bunch more bugs have been worked out, I&#8217;m happy to announce the first 2.1 testing release that&#8217;s being signalled for downloads. The new build is also available for download here:</p>
<p><a href="http://pnotepad.googlecode.com/files/pn2112047.exe">Download 2.1.1.2047 Installer</a><br />
<a href="http://pnotepad.googlecode.com/files/portable-pn2112047.zip">Download 2.1.1.2047 Portable</a></p>
<p>In case you haven&#8217;t been keeping up with the various <a href="http://untidy.net/blog/2009/08/18/new-testing-release-incoming/">announced changes</a>, 2.1 has these headline features:</p>
<ol>
<li>Full Unicode Support</li>
<li>Support for Translations &#8211; <a href="http://www.pnotepad.org/docs/howto/translate_programmer_s_notepad">PN in your language</a></li>
<li>Prototype <a href="http://untidy.net/blog/2009/10/13/pn-command-bar/">Command Bar</a> feature (with PyPN)</li>
<li>Multiple simultaneous selections, including typing into block selections</li>
<li>Virtual space</li>
</ol>
<p>There are also a lot of bug fixes, smaller improvements and extensions interface improvements. This release of 2.1 is close to what I want to release as the new stable build as soon as it&#8217;s proven at least as stable as 2.0.10.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2009/11/19/new-development-build/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Announcing pnotepad-plugins and TextUtil 0.1</title>
		<link>http://untidy.net/blog/2009/11/19/announcing-pnotepad-plugins-and-textutil-0-1/</link>
		<comments>http://untidy.net/blog/2009/11/19/announcing-pnotepad-plugins-and-textutil-0-1/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 22:44:48 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=374</guid>
		<description><![CDATA[I&#8217;d like to introduce you to a new Google Code project, pnotepad-plugins. If you can&#8217;t tell from the name, this is a contributors-welcome project for Programmer&#8217;s Notepad plugins. Everything you need to make plugins using Visual Studio (Express should be fine) in one repository. The repository is stored in Mercurial so you don&#8217;t even need [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to introduce you to a new Google Code project, <a href="http://code.google.com/p/pnotepad-plugins/">pnotepad-plugins</a>. If you can&#8217;t tell from the name, this is a contributors-welcome project for Programmer&#8217;s Notepad plugins. Everything you need to make plugins using Visual Studio (Express should be fine) in one repository. The repository is stored in Mercurial so you don&#8217;t even need to be a project member to use/fork/branch the code.</p>
<p>The first plugin in pnotepad-plugins is TextUtil, it serves not only as an example but also hopefully as a useful plugin too. The first release of TextUtil is now available, and comes with the following commands:</p>
<ul>
<li>Sort Lines</li>
<li>Copy Marked Lines</li>
<li>Cut Marked Lines</li>
<li>Bookmark Marked Lines</li>
<li>Marked Ranges to Selections</li>
<li>Selections to Marked Ranges</li>
<li>Smart Highlight to Selections</li>
<li>Smart Highlight to Marked Ranges</li>
<li>Reverse Selection(s)</li>
</ul>
<p>I&#8217;d love to see people store their plugin code in this project, and move things forward.</p>
<p><a href="http://pnotepad.googlecode.com/files/textutil.zip">Download TextUtil 0.1</a> for PN 2.1 now.</p>
<p>To get started just drop textutil.dll in your Programmer&#8217;s Notepad directory, and run <code>pn --findexts</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2009/11/19/announcing-pnotepad-plugins-and-textutil-0-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Replacing Notepad with PN via Image File Execution Options</title>
		<link>http://untidy.net/blog/2009/11/03/replacing-notepad-with-pn-via-image-file-execution-options/</link>
		<comments>http://untidy.net/blog/2009/11/03/replacing-notepad-with-pn-via-image-file-execution-options/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:59:11 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/2009/11/03/replacing-notepad-with-pn-via-image-file-execution-options/</guid>
		<description><![CDATA[A user opened a bug asking me to look into a new way of replacing notepad.exe with PN. Previous methods have involved a small program that pretends to be notepad.exe but actually launches PN. This has a number of problems: Replacing system files like notepad.exe on modern Windows is much harder due to System File [...]]]></description>
			<content:encoded><![CDATA[<p>A user opened a bug asking me to look into a new way of replacing notepad.exe with PN. Previous methods have involved a small program that pretends to be notepad.exe but actually launches PN. This has a number of problems:</p>
<ol>
<li>Replacing system files like notepad.exe on modern Windows is much harder due to System File Protection </li>
<li>Many tools expect notepad.exe to hang around until you save the file, meaning they can pick up the changes when you’re done. The notepad.exe replacement exited having launched PN so didn’t work well with this. </li>
</ol>
<p>The new technique involves using something called Image File Execution Options. This is a set of registry settings used to make Windows run a debugger automatically when a program is launched. We can piggyback on this to run PN instead of notepad when it’s launched.</p>
<h3>Steps</h3>
<p>1. Create this Registry Key:</p>
<pre>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
Image File Execution Options\notepad.exe</pre>
<p>2. Add a string value called “Debugger”, set the value to:</p>
<pre>c:\Program Files\Programmer's Notepad\pn.exe --allowmulti -z</pre>
<p>The &#8211;allowmulti deals with the second problem listed above, making sure that even if PN is already running a new instance is started – this means that the calling process can wait for PN to exit. The –z tells PN to ignore the next parameter, which when using Image File Execution Options is the process name that we’re replacing – the full path to notepad.exe in this case.</p>
<p>This is only available in the lastest 2.1 testing release for now (1117), but should be ready to try. Let me know how you get on.</p>
<p>&#160;</p>
<p>Note that if you’re on 64-bit Windows you’ll need the following Registry Key instead:</p>
<pre>HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\
CurrentVersion\Image File Execution Options</pre>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2009/11/03/replacing-notepad-with-pn-via-image-file-execution-options/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Switching to Mercurial</title>
		<link>http://untidy.net/blog/2009/11/02/switching-to-mercurial/</link>
		<comments>http://untidy.net/blog/2009/11/02/switching-to-mercurial/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 17:42:32 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Programmer's Notepad]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=370</guid>
		<description><![CDATA[This is probably only of interest to those who use the PN source code, if you don&#8217;t then feel free to move right along! Now that Google Code supports Mercurial for source control I&#8217;m considering whether to move PN to this. Mercurial provides a much better model for managing Open Source project source control as [...]]]></description>
			<content:encoded><![CDATA[<p>This is probably only of interest to those who use the PN source code,<br />
if you don&#8217;t then feel free to move right along!</p>
<p>Now that Google Code supports Mercurial for source control I&#8217;m considering whether to move PN to this. Mercurial provides a much better model for managing Open Source project source control as it allows each user to maintain a local set of changes with full change history without needing project approval for commits. Any changes that the project is interested in taking can then be pulled into the main project tree.</p>
<p>Unless there are any major objections to the move I&#8217;ll start working on the import soon. The source at it&#8217;s final  subversion revision will remain available in subversion indefinitely, but new commits will only go to the mercurial repository.</p>
<p>More on Mercurial:</p>
<ul>
<li><a href="http://mercurial.selenic.com/">Mercurial Homepage</a></li>
<li><a href="http://en.wikipedia.org/wiki/Mercurial_(software)">Mercurial on Wikipedia</a></li>
</ul>
<p>All feedback welcome, here or in the forums.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2009/11/02/switching-to-mercurial/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
