<?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>jessevdk &#187; gedit</title>
	<atom:link href="http://blogs.gnome.org/jessevdk/category/gedit/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/jessevdk</link>
	<description>Jesse van den Kieboom, Everything and Nothing</description>
	<lastBuildDate>Wed, 01 Feb 2012 00:18:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>gedit 3.2.6 released for OS X (native)</title>
		<link>http://blogs.gnome.org/jessevdk/2012/01/15/gedit-3-2-6-released-for-os-x-native/</link>
		<comments>http://blogs.gnome.org/jessevdk/2012/01/15/gedit-3-2-6-released-for-os-x-native/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 22:14:37 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=132</guid>
		<description><![CDATA[As you might know, gedit has been ported a while ago to run natively on OS X (and on windows for that matter). Lately, the OS X port has been lacking updates. This is mostly due to the huge changes that were introduced in 3.x in much of the stack, and a lack of time. [...]]]></description>
			<content:encoded><![CDATA[<p>As you might know, gedit has been ported a while ago to run natively on OS X (and on windows for that matter). Lately, the OS X port has been lacking updates. This is mostly due to the huge changes that were introduced in 3.x in much of the stack, and a lack of time. However, over the last few weeks, I worked on and off to get a proper OS X application released for our latest gedit (3.2). The installation is a simple drag and drop of the application bundle (as expected).</p>
<p><a href="http://blogs.gnome.org/jessevdk/files/2012/01/gedit-3.2.6_install.png"><img class="aligncenter size-full wp-image-133" src="http://blogs.gnome.org/jessevdk/files/2012/01/gedit-3.2.6_install.png" alt="" width="577" height="430" /></a></p>
<h2>Improvements</h2>
<p>With respect to the previous release (apart from having all the 3.2 goodness), the integration with OS X has been improved. For example, we now ship binaries for Tiger, Leopard and Snow Leopard, integrated native apple spell checking, fixed issues with translations and fixed various issues with keybindings and the global menu (which annoyed a lot of people in 2.32 using different keyboard layouts).</p>
<p>After installing gedit and launching it, you should see something like the following:</p>
<p><a href="http://blogs.gnome.org/jessevdk/files/2012/01/gedit-3.2.6_window.png"><img class="aligncenter size-full wp-image-134" src="http://blogs.gnome.org/jessevdk/files/2012/01/gedit-3.2.6_window.png" alt="" width="641" height="413" /></a></p>
<h2>Integration</h2>
<p>As you can see, we have spent some effort (just as previously) to integrate gedit in OS X natively. Most of this effort is not spent by gedit, but by a small group of people doing amazing work on the quartz backend of gtk+ and on mac application integration (yes, that&#8217;s you John Ralls). I really want to thank everyone spending a lot of effort to integrate gtk+ (quartz backend) and GNOME applications (mac integration) into OS X. Without these guys a gedit port for OS X would simply not exist.</p>
<h2>Build process</h2>
<p>Whereas gedit for OS X was previously built by me in mixed environment of jhbuild and custom checkouts with various patches (pushed into github), this time I decided to handle things more properly and integrate the whole build process in the gedit tree as a jhbuild moduleset and accompanying patches. This also solves the issue with the previous binary for which we did not strictly adhere to the GPL, in the sense that it was almost impossible to recreate the binaries from source. This time, you can simply follow the instructions in the <a href="http://git.gnome.org/browse/gedit/tree/osx/README">osx/README</a> file and everything should be built for you the same way I built it on my machine. This meant I started basicly from scratch, which is also why it took quite some time to get everything working as expected.</p>
<h2>Porting applications</h2>
<p>I think that gedit is a great application showing how you can port an application using a lot of GNOME/freedesktop technologies to another platform (hopefully we will have a 3.2 for windows soon too, poke nacho <img src='http://blogs.gnome.org/jessevdk/wp-content/mu-plugins/tango-smilies/tango/face-wink.png' alt=';)' class='wp-smiley' /> ). gedit uses dbus, libpeas (gobject-introspection), plugins (C and python), printing and more. All of this works (or at least should work <img src='http://blogs.gnome.org/jessevdk/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> ) on OS X, and we are getting more native with each release. If you are interested in porting your application to OS X, please feel free to have a look on how we do it for gedit.</p>
<h2>Bugs</h2>
<p>I expected a series of bugs and releases for gedit 3.2.6. On the one hand a lot of software has seen a lot of development, none of which were tested on platforms like OS X (or windows). On the other hand, I&#8217;m still expecting some issues resulting from building binaries on one machine for different distributions. For example, the first release was quite a disaster, crashing on launch due to some issues with iconv and a set of hard coded paths (which worked on my machine, but obviously not on others <img src='http://blogs.gnome.org/jessevdk/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> ). Anyway, I would like to invite anyone running OS X to try and install gedit 3.2.6 and report any issues in gnome bugzilla!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2012/01/15/gedit-3-2-6-released-for-os-x-native/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>gedit code assistance plugin</title>
		<link>http://blogs.gnome.org/jessevdk/2011/11/13/gedit-code-assistance-plugin/</link>
		<comments>http://blogs.gnome.org/jessevdk/2011/11/13/gedit-code-assistance-plugin/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 16:56:03 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=123</guid>
		<description><![CDATA[Just a quick update on the gedit code assistance plugin (see this previous post). We moved development from github to gnome infrastructure. You can find the repository here: http://git.gnome.org/browse/gedit-code-assistance. There is also a first release of the plugin available on the gnome servers (http://ftp.gnome.org/pub/gnome/sources/gedit-code-assistance/0.1/). Don&#8217;t expect it to be very stable. It should work, but it [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick update on the gedit code assistance plugin (see <a href="http://blogs.gnome.org/jessevdk/2011/09/10/gedit-clang-plugin-progress/">this previous post</a>). We moved development from github to gnome infrastructure. You can find the repository here: <a href="http://git.gnome.org/browse/gedit-code-assistance">http://git.gnome.org/browse/gedit-code-assistance</a>. There is also a first release of the plugin available on the gnome servers (<a href="http://ftp.gnome.org/pub/gnome/sources/gedit-code-assistance/0.1/">http://ftp.gnome.org/pub/gnome/sources/gedit-code-assistance/0.1/</a>).</p>
<p>Don&#8217;t expect it to be <em>very </em>stable. It should work, but it is currently still somewhat prone to crash. Since it is written in vala (thus C) this unfortunately means that it will crash gedit as well. So use on your own risk <img src='http://blogs.gnome.org/jessevdk/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> . For those running fedora 16, packages will be available soon.</p>
<p>I will try to work on this on and off if I find the time, feel free to pitch in though!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2011/11/13/gedit-code-assistance-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gedit clang plugin progress</title>
		<link>http://blogs.gnome.org/jessevdk/2011/09/10/gedit-clang-plugin-progress/</link>
		<comments>http://blogs.gnome.org/jessevdk/2011/09/10/gedit-clang-plugin-progress/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 21:25:40 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=114</guid>
		<description><![CDATA[A quick update on the gedit clang integration. Here is a screenshot of the latest visualization of errors in source code: You can checkout the code on github for now: https://github.com/jessevdk/gedit-code-assistance. If you want to try it out, install the gedit-devel (&#62;= 3), llvm and llvm-devel (&#62;= 2.8) packages and compile the plugin (see the [...]]]></description>
			<content:encoded><![CDATA[<p>A quick update on the gedit clang integration. Here is a screenshot of the latest visualization of errors in source code:</p>
<div class="wp-caption aligncenter" style="width: 761px"><a href="http://people.gnome.org/~jessevdk/gedit-clang-rev1.png"><img src="http://people.gnome.org/~jessevdk/gedit-clang-rev1.png" alt="" width="751" height="583" /></a><p class="wp-caption-text">gedit clang plugin</p></div>
<p>You can checkout the code on github for now: <a href="https://github.com/jessevdk/gedit-code-assistance">https://github.com/jessevdk/gedit-code-assistance</a>. If you want to try it out, install the gedit-devel (&gt;= 3), llvm and llvm-devel (&gt;= 2.8) packages and compile the plugin (see the README for more information).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2011/09/10/gedit-clang-plugin-progress/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>New gedit goodies</title>
		<link>http://blogs.gnome.org/jessevdk/2011/09/03/new-gedit-goodies/</link>
		<comments>http://blogs.gnome.org/jessevdk/2011/09/03/new-gedit-goodies/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 23:23:34 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=109</guid>
		<description><![CDATA[Just a quick update of what I&#8217;m currently working on: clang integration in gedit That&#8217;s right, that&#8217;s clang integrated in gedit (with the very nice libclang). For now only error reporting is implemented but libclang will also gives us the AST (allowing fancy stuff like static analysis, referencing, symbol browsing, etc.). In addition, there will [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick update of what I&#8217;m currently working on:</p>
<div class="mceTemp mceIEcenter" style="text-align: center">
<dl>
<dt><a href="http://people.gnome.org/~jessevdk/gedit-clang.png"><img src="http://people.gnome.org/~jessevdk/gedit-clang.png" alt="" width="837" height="659" /></a></dt>
<dd><em>clang integration in gedit</em></dd>
</dl>
</div>
<p>That&#8217;s right, that&#8217;s clang integrated in gedit (with the very nice libclang). For now only error reporting is implemented but libclang will also gives us the AST (allowing fancy stuff like static analysis, referencing, symbol browsing, etc.). In addition, there will be auto completion in the near future.</p>
<p>You can&#8217;t test this, you can&#8217;t find the code yet anywhere, this is just to tease you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2011/09/03/new-gedit-goodies/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Rhythmbox webinterface plugin</title>
		<link>http://blogs.gnome.org/jessevdk/2011/08/02/rhythmbox-webinterface-plugin/</link>
		<comments>http://blogs.gnome.org/jessevdk/2011/08/02/rhythmbox-webinterface-plugin/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 11:39:31 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=96</guid>
		<description><![CDATA[A while ago I managed to buy an iPad. I am using/planned to use it for various things. One of those things was to be able to remotely control my music player (which is nice when sitting outside on the terrace, having a small party etc.). The &#8216;Remote&#8217; application that exists to control iTunes works [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I managed to buy an iPad. I am using/planned to use it for various things. One of those things was to be able to remotely control my music player (which is nice when sitting outside on the terrace, having a small party etc.). The &#8216;Remote&#8217; application that exists to control iTunes works really well, however I don&#8217;t really use iTunes. So I thought I would have a look on how to do something similar with Rhythmbox (or Banshee for that matter). I remembered something about DLNA and uPNP and tried for some days to get this to work, but I really got nothing. I don&#8217;t know which side is to blame, but in the end I gave up trying to make it work.</p>
<p>Then I thought it might work just as well through a webinterface, why not. I looked for a suitable plugin for rhythmbox, but unfortunately most of the 3rd party plugins are not ported yet to 3.0. Since I thought it would be fun and a nice opportunity to employ some of that shiny, new and hip css3/javascript/jquery/ajax/websocket, I made a plugin for RB to do just what I want.</p>
<p style="text-align: center"><a href="http://people.gnome.org/~jessevdk/telemote.png"><img class="aligncenter" src="http://people.gnome.org/~jessevdk/telemote.png" alt="TeleMote Rhythmbox plugin" width="684" height="440" /></a></p>
<p>It features all the basic things that I want from a remote control. It will show you a list of playlists/sources, followed by a list of artists (for the selected source) and finally a list of songs for the selected artists sorted by album. You get the basic controls to play/pause, skip songs, repeat/shuffle and control volume. In addition, you can also set the current selection as the current playlist. Finally you can also simply queue some songs (those blackish boxes at the bottom of the screenshot) which will be played as soon as the current song ends playing (this is all just rhythmbox functionality exposed and nothing new).</p>
<p>There are some fancy (useful) animations in the UI and in general I kind of like the look of it. I wouldn&#8217;t call myself a &#8220;designer&#8221;, so if anyone wants to jump in and improve some css, please feel free. The plugin is hosted on github:</p>
<p><a href="http://github.com/jessevdk/telemote">http://github.com/jessevdk/telemote</a></p>
<p><strong>Note</strong>: You can save your breath preaching about how Apple is evil etc, I&#8217;ve heard it all before&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2011/08/02/rhythmbox-webinterface-plugin/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>gedit gobby collaboration</title>
		<link>http://blogs.gnome.org/jessevdk/2010/02/15/gedit-gobby-collaboration/</link>
		<comments>http://blogs.gnome.org/jessevdk/2010/02/15/gedit-gobby-collaboration/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 23:09:07 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=52</guid>
		<description><![CDATA[After some more hacking we have most of the functionality ready for real collaborative editing in gedit. Here is me and Armin collaborating (me with gedit and Armin with gobby, sorry, interface in Dutch): In contrast to my previous post, this version now properly handles its sessions, does error handling etc. The only thing that [...]]]></description>
			<content:encoded><![CDATA[<p>After some more hacking we have most of the functionality ready for real collaborative editing in gedit. Here is me and Armin collaborating (me with gedit and Armin with gobby, sorry, interface in Dutch):</p>
<p style="text-align: left"><a href="http://www.icecrew.nl/files/gedit/collaboration_gobby.png"><img class="aligncenter" src="http://www.icecrew.nl/files/gedit/collaboration_gobby.png" alt="" width="565" height="446" /></a></p>
<p style="text-align: left">In contrast to my <a href="http://blogs.gnome.org/jessevdk/2010/02/14/47/">previous post</a>, this version now properly handles its sessions, does error handling etc. The only thing that is really missing right now is undo/redo, which is tightly coupled to GtkSourceView at the moment in gedit. We would need to make the undo handling less specific to use infinote undo/redo for shared documents.</p>
<p style="text-align: left">When all of this more or less works, the next step will be to use telepathy tubes to allow sharing documents directly with one or more of your contacts. The idea is that you can offer a collaboration session to your contacts. gedit will then internally run an infinote daemon, offering a virtual document store made up of the open documents in the gedit window. All the necessary components are there, so it should be fairly straightforward to do.</p>
<p style="text-align: left">To finish, a little teaser screencast: (<a href="http://www.youtube.com/watch?v=rXzI2dInXKI">youtube</a>, <a href="http://www.icecrew.nl/files/gedit/gedit-gobby-collab.ogv">ogv</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2010/02/15/gedit-gobby-collaboration/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
<enclosure url="http://www.icecrew.nl/files/gedit/gedit-gobby-collab.ogv" length="8284321" type="video/ogg" />
		</item>
		<item>
		<title>gedit collaboration plugin</title>
		<link>http://blogs.gnome.org/jessevdk/2010/02/14/47/</link>
		<comments>http://blogs.gnome.org/jessevdk/2010/02/14/47/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 00:29:35 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=47</guid>
		<description><![CDATA[Just finished a big chunk of a new gedit plugin which uses the excellent infinote library (gobby, libinfinity) to do collaborative editing. Being pretty tired, I&#8217;ll keep this post short, but be sure to get an update on the plugin&#8217;s progress soon Credit goes to the rocking infinote API and Armin from gobby fame, where [...]]]></description>
			<content:encoded><![CDATA[<p>Just finished a big chunk of a new gedit plugin which uses the excellent infinote library (<a href="http://gobby.0x539.de/trac/">gobby</a>, <a href="http://infinote.0x539.de/libinfinity/API/libinfinity/">libinfinity</a>) to do collaborative editing. Being pretty tired, I&#8217;ll keep this post short, but be sure to get an update on the plugin&#8217;s progress soon <img src='http://blogs.gnome.org/jessevdk/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center"><a href="http://www.icecrew.nl/files/gedit/collaboration.png"><img class="aligncenter size-medium wp-image-42" src="http://www.icecrew.nl/files/gedit/collaboration.png" alt="" width="927" height="603" /></a></p>
<p>Credit goes to the rocking infinote API and Armin from gobby fame, where all the hard work is done. The code plugin is currently hosted on <a href="http://github.com/jessevdk/gedit-collaboration">github</a>, but we will most likely move it to gedit-plugins once it matures. If you want to try it out, be sure to fetch the libinfinity 0.4 stable branch from git (there were a few API additions and small bug fixes to make it work with gedit).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2010/02/14/47/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>About snippets</title>
		<link>http://blogs.gnome.org/jessevdk/2009/12/06/about-snippets/</link>
		<comments>http://blogs.gnome.org/jessevdk/2009/12/06/about-snippets/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 21:23:38 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=32</guid>
		<description><![CDATA[I think most people know that besides being a very light weight, and simple text editor for GNOME, gedit can also be &#8220;transformed&#8221; to a more powerful editor using the many plugins is supplies. One of those plugins is the Snippets plugin, and I would like to point out some of its more advanced features [...]]]></description>
			<content:encoded><![CDATA[<p>I think most people know that besides being a very light weight, and simple text editor for GNOME, gedit can also be &#8220;transformed&#8221; to a more powerful editor using the many plugins is supplies. One of those plugins is the Snippets plugin, and I would like to point out some of its more advanced features that even most of the gedit developers don&#8217;t know about.</p>
<p>Snippets is featured by virtually all source code editors in one way or another. It provides an easy way to insert/activate small templates in your document with some variables, or placeholders to quickly suit it to your specific use case. Placeholder can have default values, you can mirror placeholders in multiple locations, and you can specify where the cursor needs to end up when all the placeholders have been visited (you can read more on basic functionality of snippets in the gedit help). I would like to discuss four features that might be less well known.</p>
<h2>1. Python placeholders</h2>
<p>Python placeholders are placeholders that execute arbitrary python code to provide the text to be placed at the placeholder location. The placeholder syntax is as follows:</p>
<blockquote>
<pre>$&lt;n:[k]: <em>python code [return string]</em> &gt;</pre>
</blockquote>
<p>Here <em>n </em>is the optional placeholder tabstop as with other placeholders. If a python placeholder does not have any dependencies (implicit or explicit) on other placeholders, you will be able to tab to it by that tabstop. The tabstop can also be used to refer to this placeholders&#8217; contents in other placeholders. The second optional modifier is <em>[k]</em>, where <em>k </em>is one ore more comma separated tabstops referring to other placeholders. These indicate explicit dependencies (I&#8217;ll explain them later).  In the python code, you simply <em>return</em> the string you want at the placeholders location. In the code you can use gedit environment variables for snippets (like <em>$GEDIT_CURRENT_DOCUMENT_PATH</em>) and references to other placeholders (using <em>$n</em>). This will provide you with a kind of mirror placeholder doing a particular transformation on one ore more other placeholders. Python variables can be shared between multiple python placeholders  using <em>global. </em>This is where explicit dependencies come into play. Snippets does not automatically find out that another placeholder might depend on a change in a global variable, and thus should be updated. Defining the dependencies explicitly ensures the placeholder will be updated when any of its dependencies has changed.</p>
<p>For an example of this more advanced functionality, take a look at the gobject snippet provided for C headers and C sources. It makes extensive use of the python placeholders and is quite a nice way to bootstrap gobject classes.</p>
<h2>2. Regular expression placeholders</h2>
<p>Python placeholders are very powerful, and using the <em>re</em> module, you can do regular expression substitution quite easily. However, regular expression transformations are quite common, and a special placeholder is available which makes it easier and cleaner to use regular expressions. The syntax is the following:</p>
<blockquote>
<pre>${[n:]input/regular expression/substitution[/modifiers]}</pre>
</blockquote>
<p>Here <em>n</em> is the usual tabstop, <em>input</em> is the text on which you want to apply the regular expression. This can be either another placeholder (a number) or an environment variable such as GEDIT_SELECTED_TEXT (useful when you activate the snippet on selected text). The <em>regular expression</em> is a regular expression conform the python <em>re</em> module. This will be <em>searched</em> for in the input (<strong>note<em>: </em><span style="font-weight: normal;">this means it does not have to exactly match the input). The last part specifies how to substitute the match. Here you can use <em>\n</em> to backreference matched groups in the <em>regular expression</em>. Additionally, a special syntax allows you to apply a small number of transformations on the backreference using <em>\&lt;n,modifiers&gt;. </em>Modifiers can be one or more of the following:</span></strong></p>
<ul>
<li>U: Uppercase the matched group</li>
<li>L: Lowercase the matched group</li>
<li>u: Uppercase only the first character of the matched group</li>
<li>l: Lowercase only the first character of the matched group</li>
<li>t: Title case the matched group</li>
</ul>
<p>Combining them can be useful if you want to want to capitalize only the first word, for example: <em>\&lt;0,Lu&gt;</em>. This will first lowercase the match, and then uppercase only the first character.</p>
<p>The last part of the regular expression placeholder specifies a set of optional modifiers for the regular expression matching equal to the modifiers in the python <em>re</em> module. One last feature is the use of conditions in the <em>substitution</em> part of the placeholder. Using the syntax <em>(?n,truepart,falsepart)</em>, you can substitute a group depending on whether it matched or not (useful for optional groups). These can also be nested, so you can build more complex conditions.</p>
<h2>3. Dynamic snippets</h2>
<p>A new feature was recently developed and is currently available in the development releases (2.29.x): <em>dynamic snippets</em>. Snippets now exposes two functions on the gedit internal message bus (which is used to enable inter plugin communication). The message bus is similar to how you would use dbus, but just for internal use. It allows plugins to hook into each others functionality (for example, you can manipulate the file browser plugin in many useful ways using the bus). For snippets, the following two messages are available:</p>
<ol>
<li><em><strong>/plugins/snippets.activate</strong> </em>(<em>trigger[, view, iter]</em>)<br />
When this message is send, the snippet corresponding to the tab trigger &lt;<em>trigger&gt;</em> is activated. You can optionally specify the view and iter where to activate the snippet, by default the current view and cursor will be used.</li>
<li><strong><em>/plugins/snippets.parse-and-activate</em></strong> (<em>snippet[, view, iter]</em>)<br />
This message enables the dynamic snippets. Basicly, you provide the full snippet and optionally the iter and view where to activate it. This provides a very powerful mechanism to use all of the power of snippets from other plugins. I use this in one plugin (<em>gedit-commander</em> which I will talk about at some point) to dynamically build a snippet for a doxygen documentation of a function declaration.</li>
</ol>
<h2>4. GtkSourceCompletion integration</h2>
<p>The last thing I want to show is the recent integration with gtksourcecompletion <a title="nacho" href="http://blogs.gnome.org/nacho/2009/12/05/news-on-geditgtksourceview/">nacho</a> recently blogged about. Before, snippets implemented its own completion popup for when there are multiple snippets with the same trigger. This popup was really quite horrible and had a lot of usability problems. This has now been resolved in the development version (2.29.x) using gtksourcecompletion. One additional feature is the use of multiple default values for placeholders. Using the syntax <em>${n:[value1,value2,value3]}</em>, you can provide multiple choices for the default value. When you tab into this placeholder, a completion popup will show you the available choices so that you can quickly pick one. This is particularly useful for example for CSS snippets, where some CSS properties have a specific set of valid options.</p>
<div id="attachment_34" class="wp-caption aligncenter" style="width: 674px"><img class="size-full wp-image-34" title="multdefsnippet" src="http://blogs.gnome.org/jessevdk/files/2009/12/multdefsnippet.png" alt="Defining a placeholder with multiple defaults" width="664" height="393" /><p class="wp-caption-text">Defining a placeholder with multiple defaults</p></div>
<div id="attachment_35" class="wp-caption aligncenter" style="width: 633px"><img class="size-full wp-image-35" title="multdef" src="http://blogs.gnome.org/jessevdk/files/2009/12/multdef1.png" alt="Activating the snippet" width="623" height="351" /><p class="wp-caption-text">Activating the snippet</p></div>
<p>I&#8217;ll try to occasionally highlight other hidden gems in gedit, until then&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2009/12/06/about-snippets/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>gedit 2.28.2 released for OS X</title>
		<link>http://blogs.gnome.org/jessevdk/2009/11/15/gedit-2-28-2-released-for-os-x/</link>
		<comments>http://blogs.gnome.org/jessevdk/2009/11/15/gedit-2-28-2-released-for-os-x/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 14:53:03 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=29</guid>
		<description><![CDATA[Just a quick post to inform that gedit 2.28.2 has been release for OS X. This release includes the work to make it possible to open files with gedit from other parts of OS X (such as with finder, or using the command line &#8216;open&#8217; utility). There has also been a fix in the automatic [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post to inform that gedit 2.28.2 has been release for OS X. This release includes the work to make it possible to open files with gedit from other parts of OS X (such as with finder, or using the command line &#8216;open&#8217; utility). There has also been a fix in the automatic updates plugin so that it now actually works on OS X. Also, gtk+ has been updated to 2.18 in this release. Enjoy!</p>
<p>Download: http://ftp.acc.umu.se/pub/GNOME/binaries/mac/gedit/2.28/</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2009/11/15/gedit-2-28-2-released-for-os-x/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>New gedit plugin: multi edit</title>
		<link>http://blogs.gnome.org/jessevdk/2009/11/15/new-gedit-plugin-multi-edit/</link>
		<comments>http://blogs.gnome.org/jessevdk/2009/11/15/new-gedit-plugin-multi-edit/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 12:18:52 +0000</pubDate>
		<dc:creator>Jesse van den Kieboom</dc:creator>
				<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/jessevdk/?p=25</guid>
		<description><![CDATA[We recently landed a new gedit plugin in the gedit-plugins module named &#8216;multi-edit&#8217;. This plugin allows you to create multiple edit points in the document by which you can simultaneously edit your document at multiple places. I myself found the plugin very helpful in many, otherwise tedious, editing tasks. Although the plugin was written from [...]]]></description>
			<content:encoded><![CDATA[<p>We recently landed a new gedit plugin in the gedit-plugins module named &#8216;multi-edit&#8217;. This plugin allows you to create multiple edit points in the document by which you can simultaneously edit your document at multiple places. I myself found the plugin very helpful in many, otherwise tedious, editing tasks. Although the plugin was written from scratch, credits should go to Jon Walsh who wrote a similar plugin and on which the ideas for this plugin were based.</p>
<p>The new plugin introduces a new &#8216;mode&#8217; in which you can do multi editing. You enter this mode by <em>Ctrl+Shift+C</em>, and once enabled you can start inserting edit points manually by pressing <em>Ctrl+E</em> at any point in the document. Additionally, you can use <em>Ctrl+Home</em> and <em>Ctrl+End</em> to respectively insert edit points at the beginning or end of the line automatically (it will also skip to the previous/next line so you can quickly insert edit points at the beginning or end of some lines). When you start typing the inserts/deletes will be replicated in all the edit points. You can then press <em>Escape</em> to remove the additional edit points, and press <em>Escape</em> again to finally quit multi edit mode.</p>
<p>In addition to inserting multi edit points, it also features column editing when you are in multi edit mode. This means you can select a part of the text, and press <em>Enter</em> to make the selection into a column selection. When you then start editing, it will edit the whole column (just as if you would have inserted multiple edit points manually and removed the text in the column).</p>
<p>You can watch a short (somewhat lame <img src='http://blogs.gnome.org/jessevdk/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> ) movie showing this new plugin: <a href="http://www.icecrew.nl/files/gedit/multiedit.ogv">http://www.icecrew.nl/files/gedit/multiedit.ogv</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/jessevdk/2009/11/15/new-gedit-plugin-multi-edit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://www.icecrew.nl/files/gedit/multiedit.ogv" length="2506752" type="video/ogg" />
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/jessevdk/category/gedit/feed/ ) in 1.50293 seconds, on Feb 10th, 2012 at 7:50 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 10th, 2012 at 8:50 am UTC -->
