<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://techbase.kde.org/skins/common/feed.css?0.2"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;feed=atom&amp;action=history</id>
		<title>Development/Tutorials/Kate/KatePluginTutorial - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;action=history"/>
		<updated>2013-05-21T21:09:47Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=60595&amp;oldid=prev</id>
		<title>Neverendingo: Text replace - &quot;&lt;/code&gt;&quot; to &quot;&lt;/syntaxhighlight&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=60595&amp;oldid=prev"/>
				<updated>2011-06-29T20:52:40Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;quot;&amp;lt;/code&amp;gt;&amp;quot; to &amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:52, 29 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Name=Time &amp;amp; Date&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Name=Time &amp;amp; Date&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Comment=Insert current Time &amp;amp; Date&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Comment=Insert current Time &amp;amp; Date&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;There are important parts on this file:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;There are important parts on this file:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/MenuBar&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/MenuBar&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/kpartplugin&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/kpartplugin&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The header file ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The header file ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 164:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#endif // TIMEDATE_H&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#endif // TIMEDATE_H&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The source file ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The source file ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 281:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 281:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// the Q_OBJECT macro on the TimeDatePluginView class.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// the Q_OBJECT macro on the TimeDatePluginView class.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#include &amp;quot;timedate.moc&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#include &amp;quot;timedate.moc&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Building it all, the CMakeLists.txt ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Building it all, the CMakeLists.txt ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 307:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 307:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# on the services directory.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# on the services directory.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;install(FILES ktexteditor_timedate.desktop DESTINATION ${SERVICES_INSTALL_DIR})&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;install(FILES ktexteditor_timedate.desktop DESTINATION ${SERVICES_INSTALL_DIR})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The next part ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The next part ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Now you are ready for adding to this plugin a configuration dialog that lets the user customize the way the string is printed out on the screen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Now you are ready for adding to this plugin a configuration dialog that lets the user customize the way the string is printed out on the screen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wwwdeveloper:diff:version:1.11a:oldid:60241:newid:60595 --&gt;
&lt;/table&gt;</summary>
		<author><name>Neverendingo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=60241&amp;oldid=prev</id>
		<title>Neverendingo: Text replace - &quot;&lt;code&gt;&quot; to &quot;&lt;syntaxhighlight lang=&quot;text&quot;&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=60241&amp;oldid=prev"/>
				<updated>2011-06-29T20:44:55Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;quot;&amp;lt;code&amp;gt;&amp;quot; to &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:44, 29 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''timedateui.rc'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''timedateui.rc'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&amp;quot;text&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;!DOCTYPE kpartgui&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;!DOCTYPE kpartgui&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;kpartplugin name=&amp;quot;ktexteditor_timedate&amp;quot; library=&amp;quot;ktexteditor_timedate&amp;quot; version=&amp;quot;2&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;kpartplugin name=&amp;quot;ktexteditor_timedate&amp;quot; library=&amp;quot;ktexteditor_timedate&amp;quot; version=&amp;quot;2&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Neverendingo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=59990&amp;oldid=prev</id>
		<title>Neverendingo: Text replace - &quot;&lt;code bash&gt;&quot; to &quot;&lt;syntaxhighlight lang=&quot;bash&quot;&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=59990&amp;oldid=prev"/>
				<updated>2011-06-29T20:39:22Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;quot;&amp;lt;code bash&amp;gt;&amp;quot; to &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:39, 29 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 288:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 288:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For more details on CMake please read [[Development/Tutorials/CMake]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For more details on CMake please read [[Development/Tutorials/CMake]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code &lt;/del&gt;bash&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&amp;quot;&lt;/ins&gt;bash&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# We are calling our plugin &amp;quot;ktexteditor_timedate&amp;quot;, and it contains only&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# We are calling our plugin &amp;quot;ktexteditor_timedate&amp;quot;, and it contains only&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# one source file: timedate.cpp.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# one source file: timedate.cpp.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Neverendingo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=59904&amp;oldid=prev</id>
		<title>Neverendingo: Text replace - &quot;&lt;code ini&gt;&quot; to &quot;&lt;syntaxhighlight lang=&quot;ini&quot;&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=59904&amp;oldid=prev"/>
				<updated>2011-06-29T20:36:39Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;quot;&amp;lt;code ini&amp;gt;&amp;quot; to &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:36, 29 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''ktexteditor_timedate.desktop'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''ktexteditor_timedate.desktop'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code &lt;/del&gt;ini&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&amp;quot;&lt;/ins&gt;ini&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[Desktop Entry]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[Desktop Entry]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Encoding=UTF-8&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Encoding=UTF-8&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Neverendingo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=59662&amp;oldid=prev</id>
		<title>Neverendingo: Text replace - &quot;&lt;code cppqt&gt;&quot; to &quot;&lt;syntaxhighlight lang=&quot;cpp-qt&quot;&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=59662&amp;oldid=prev"/>
				<updated>2011-06-29T20:29:20Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;quot;&amp;lt;code cppqt&amp;gt;&amp;quot; to &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:29, 29 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 73:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The header file ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The header file ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''timedate.h'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''timedate.h'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code cppqt&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// Avoid multiple header inclusion&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// Avoid multiple header inclusion&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#ifndef TIMEDATE_H&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#ifndef TIMEDATE_H&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 168:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 168:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The source file ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== The source file ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''timedate.cpp'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''timedate.cpp'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code cppqt&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// Own includes&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// Own includes&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#include &amp;quot;timedate.h&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#include &amp;quot;timedate.h&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Neverendingo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=58091&amp;oldid=prev</id>
		<title>Odysseus at 23:06, 19 March 2011</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=58091&amp;oldid=prev"/>
				<updated>2011-03-19T23:06:38Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:06, 19 March 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;name=Creating your first Kate Plugin|&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;name=Creating your first Kate Plugin|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;pre=[http://mindview.net/Books/TICPP/ThinkingInCPP2e.html C++], [http://www.trolltech.com/products/qt/ Qt], [[Getting_Started/Build&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/KDE4&lt;/del&gt;|KDE4 development environment]]|&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;pre=[http://mindview.net/Books/TICPP/ThinkingInCPP2e.html C++], [http://www.trolltech.com/products/qt/ Qt], [[Getting_Started/Build|KDE4 development environment]]|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;next=Add a configuration dialog for it (Work in progress)|&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;next=Add a configuration dialog for it (Work in progress)|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Odysseus</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=13209&amp;oldid=prev</id>
		<title>Ereslibre: New page: {{TutorialBrowser|  series=Kate Plugin Tutorial|  name=Creating your first Kate Plugin|  pre=[http://mindview.net/Books/TICPP/ThinkingInCPP2e.html C++], [http://www.trolltech.com/products/...</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Development/Tutorials/Kate/KatePluginTutorial&amp;diff=13209&amp;oldid=prev"/>
				<updated>2007-08-23T10:21:40Z</updated>
		
		<summary type="html">&lt;p&gt;New page: {{TutorialBrowser|  series=Kate Plugin Tutorial|  name=Creating your first Kate Plugin|  pre=[http://mindview.net/Books/TICPP/ThinkingInCPP2e.html C++], [http://www.trolltech.com/products/...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Kate Plugin Tutorial|&lt;br /&gt;
&lt;br /&gt;
name=Creating your first Kate Plugin|&lt;br /&gt;
&lt;br /&gt;
pre=[http://mindview.net/Books/TICPP/ThinkingInCPP2e.html C++], [http://www.trolltech.com/products/qt/ Qt], [[Getting_Started/Build/KDE4|KDE4 development environment]]|&lt;br /&gt;
&lt;br /&gt;
next=Add a configuration dialog for it (Work in progress)|&lt;br /&gt;
&lt;br /&gt;
reading=[[Development/Tutorials/CMake|CMake]], [http://websvn.kde.org/trunk/KDE/kdelibs/kate/plugins/timedate The actual plugin code]&lt;br /&gt;
}}&lt;br /&gt;
==Abstract==&lt;br /&gt;
We are going to create a dummy plugin for Kate in this tutorial. Our plugin will be able to insert current Date &amp;amp; Time. For now, our plugin will add on the cursor position on the active document the next information:&lt;br /&gt;
&lt;br /&gt;
* MM-DD-YYYY HH:MM (something like &amp;quot;08-22-2007 23:45&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
On the next chapter we will learn how to customize this output string creating a configuration dialog for this plugin.&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
=== The .desktop file ===&lt;br /&gt;
Every plugin needs a .desktop file that describes it.&lt;br /&gt;
&lt;br /&gt;
'''ktexteditor_timedate.desktop'''&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Encoding=UTF-8&lt;br /&gt;
X-KDE-Library=ktexteditor_timedate&lt;br /&gt;
X-KDE-PluginInfo-Author=Konqui the Dragon&lt;br /&gt;
X-KDE-PluginInfo-Email=konqui@kde.org&lt;br /&gt;
X-KDE-PluginInfo-Name=ktexteditortimedate&lt;br /&gt;
X-KDE-PluginInfo-Version=0.1&lt;br /&gt;
X-KDE-PluginInfo-Website=http://kate.kde.org&lt;br /&gt;
X-KDE-PluginInfo-Category=Editor&lt;br /&gt;
X-KDE-PluginInfo-Depends=&lt;br /&gt;
X-KDE-PluginInfo-License=GPL&lt;br /&gt;
X-KDE-PluginInfo-EnabledByDefault=false&lt;br /&gt;
X-KDE-ParentApp=kate&lt;br /&gt;
ServiceTypes=KTextEditor/Plugin&lt;br /&gt;
Type=Service&lt;br /&gt;
Icon=korganizer&lt;br /&gt;
Name=Time &amp;amp; Date&lt;br /&gt;
Comment=Insert current Time &amp;amp; Date&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are important parts on this file:&lt;br /&gt;
&lt;br /&gt;
* '''X-KDE-Library''': will define the library that provides this plugin. It is _really_ important that this variable matches exactly the same with the actual name of the library being built. You will understand this better when getting to the finish of this tutorial on the part &amp;quot;Building it all, the CMakeLists.txt&amp;quot;.&lt;br /&gt;
* '''X-KDE-PluginInfo-Name''': no special characters. The name of the plugin.&lt;br /&gt;
* '''X-KDE-PluginInfo-Category''': important when the plugin selector loads it. Usually here you want always to put &amp;quot;Editor&amp;quot;.&lt;br /&gt;
* '''X-KDE-PluginInfo-Depends''': if your plugin depends on another, write here the corresponding X-KDE-PluginInfo-Name that is needed to be loaded too when loading this plugin.&lt;br /&gt;
* '''X-KDE-PluginInfo-EnabledByDefault''': whether the plugin is enabled by default. Applied when clicking on &amp;quot;Defaults&amp;quot; button on the plugin selector.&lt;br /&gt;
* '''X-KDE-ParentApp''': you want here always &amp;quot;kate&amp;quot;.&lt;br /&gt;
* '''ServiceTypes''': you will always need here &amp;quot;KTextEditor/Plugin&amp;quot;.&lt;br /&gt;
* '''Type''': in order to load it properly this is needed as &amp;quot;Service&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== The resource contents file ===&lt;br /&gt;
This file is the one that will let our plugin merge with the Kate environment (toolbars and/or menubars). In this case when our plugin is loaded this file tells the KDE XML classes that it will add a separator, and that there is an action named &amp;quot;tools_insert_timedate&amp;quot;. We will need to interact with this action later.&lt;br /&gt;
&lt;br /&gt;
'''timedateui.rc'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE kpartgui&amp;gt;&lt;br /&gt;
&amp;lt;kpartplugin name=&amp;quot;ktexteditor_timedate&amp;quot; library=&amp;quot;ktexteditor_timedate&amp;quot; version=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MenuBar&amp;gt;&lt;br /&gt;
 &amp;lt;Menu name=&amp;quot;tools&amp;quot;&amp;gt;&amp;lt;Text&amp;gt;&amp;amp;amp;Tools&amp;lt;/Text&amp;gt;&lt;br /&gt;
    &amp;lt;separator group=&amp;quot;tools_operations&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Action name=&amp;quot;tools_insert_timedate&amp;quot; group=&amp;quot;tools_operations&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/Menu&amp;gt;&lt;br /&gt;
&amp;lt;/MenuBar&amp;gt;&lt;br /&gt;
&amp;lt;/kpartplugin&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The header file ===&lt;br /&gt;
'''timedate.h'''&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
// Avoid multiple header inclusion&lt;br /&gt;
#ifndef TIMEDATE_H&lt;br /&gt;
#define TIMEDATE_H&lt;br /&gt;
&lt;br /&gt;
// Include the basics&lt;br /&gt;
#include &amp;lt;ktexteditor/plugin.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ktexteditor/view.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kxmlguiclient.h&amp;gt;&lt;br /&gt;
#include &amp;lt;klocalizedstring.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QtCore/QEvent&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QObject&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// This is the default string that will be printed out. As not everybody prints&lt;br /&gt;
// it by default as: MM-DD-YYYY HH:MM, but for example, on other cultures we can&lt;br /&gt;
// find DD-MM-YYYY HH:MM, we mark this default string for translators to translate&lt;br /&gt;
// it. With this macro I18N_NOOP2 we are able to add comments for making the translation&lt;br /&gt;
// easier and in context. If a translator sees &amp;quot;%m-%e-%Y %H:%M&amp;quot; can think: &amp;quot;what is this&lt;br /&gt;
// guy talking about?&amp;quot;. So we add the explanation on the first parameter.&lt;br /&gt;
// Anyway, this is not important, do not get stucked here. If you do not understand&lt;br /&gt;
// this declaration, think of it as:&lt;br /&gt;
//&lt;br /&gt;
// static QString localizedTimeDate = &amp;quot;%m-%e-%Y %H:%M&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static QString localizedTimeDate =&lt;br /&gt;
    I18N_NOOP2(&amp;quot;This is a localized string for default time &amp;amp; date printing on kate document.&amp;quot;&lt;br /&gt;
               &amp;quot;%e means day in XX format.&amp;quot;&lt;br /&gt;
               &amp;quot;%m means month in XX format.&amp;quot;&lt;br /&gt;
               &amp;quot;%Y means year in XXXX format.&amp;quot;&lt;br /&gt;
               &amp;quot;%H means hours in XX format.&amp;quot;&lt;br /&gt;
               &amp;quot;%M means minutes in XX format.&amp;quot;&lt;br /&gt;
               &amp;quot;Please, if in your language time or date is written in a different order, change it here&amp;quot;,&lt;br /&gt;
               &amp;quot;%m-%e-%Y %H:%M&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
  * This is the plugin class. There will be only one instance of this class.&lt;br /&gt;
  * We always want to inherit KTextEditor::Plugin here.&lt;br /&gt;
  */&lt;br /&gt;
class TimeDatePlugin&lt;br /&gt;
  : public KTextEditor::Plugin&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    // Constructor&lt;br /&gt;
    explicit TimeDatePlugin(QObject *parent = 0,&lt;br /&gt;
                            const QStringList &amp;amp;args = QStringList());&lt;br /&gt;
    // Destructor&lt;br /&gt;
    virtual ~TimeDatePlugin();&lt;br /&gt;
&lt;br /&gt;
    // Overriden methods&lt;br /&gt;
    // This method is called when a plugin has to be added to a view. As there&lt;br /&gt;
    // is only one instance of this plugin, but it is possible for plugins to&lt;br /&gt;
    // behave in different ways in different opened views where it is loaded, in&lt;br /&gt;
    // Kate plugins are added to views. For that reason we have the plugin itself&lt;br /&gt;
    // (this class) and then the plugin view class.&lt;br /&gt;
    // In this methods we have to create/remove TimeDatePluginView classes.&lt;br /&gt;
    void addView (KTextEditor::View *view);&lt;br /&gt;
    void removeView (KTextEditor::View *view);&lt;br /&gt;
&lt;br /&gt;
    void readConfig();&lt;br /&gt;
    void writeConfig();&lt;br /&gt;
&lt;br /&gt;
    virtual void readConfig (KConfig *) {}&lt;br /&gt;
    virtual void writeConfig (KConfig *) {}&lt;br /&gt;
&lt;br /&gt;
  private:&lt;br /&gt;
    QList&amp;lt;class TimeDatePluginView*&amp;gt; m_views;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
  * This is the plugin view class. There can be as much instances as views exist.&lt;br /&gt;
  */&lt;br /&gt;
class TimeDatePluginView&lt;br /&gt;
   : public QObject, public KXMLGUIClient&lt;br /&gt;
{&lt;br /&gt;
  Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
  public:&lt;br /&gt;
    explicit TimeDatePluginView(KTextEditor::View *view = 0);&lt;br /&gt;
    ~TimeDatePluginView();&lt;br /&gt;
&lt;br /&gt;
  private Q_SLOTS:&lt;br /&gt;
    void slotInsertTimeDate();&lt;br /&gt;
&lt;br /&gt;
  private:&lt;br /&gt;
    KTextEditor::View *m_view;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // TIMEDATE_H&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The source file ===&lt;br /&gt;
'''timedate.cpp'''&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
// Own includes&lt;br /&gt;
#include &amp;quot;timedate.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Include the basics&lt;br /&gt;
#include &amp;lt;ktexteditor/document.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;kgenericfactory.h&amp;gt;&lt;br /&gt;
#include &amp;lt;klocale.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kaction.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kactioncollection.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kdatetime.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Without this macro call, the library loader won't find our plugin when trying&lt;br /&gt;
// to load it. This macro adds code automagically that will let our plugin&lt;br /&gt;
// be loaded on runtime.&lt;br /&gt;
// The first parameter is the X-KDE-FactoryName on the .desktop file.&lt;br /&gt;
// As we haven't provided such parameter, in this case (because our library is only&lt;br /&gt;
// exporting one symbol, this plugin), we put here the X-KDE-LibraryName.&lt;br /&gt;
// The second parameter will determine which type is our class, in this case it is&lt;br /&gt;
// a TimeDatePlugin and the name of the X-KDE-FactoryName again. Same as before,&lt;br /&gt;
// as we do not have X-KDE-FactoryName, we put there the X-KDE-LibraryName.&lt;br /&gt;
// Is important to provide as last parameter &amp;quot;ktexteditor_plugins&amp;quot;.&lt;br /&gt;
K_EXPORT_COMPONENT_FACTORY(ktexteditor_timedate, KGenericFactory&amp;lt;TimeDatePlugin&amp;gt;(&amp;quot;ktexteditor_timedate&amp;quot;, &amp;quot;ktexteditor_plugins&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
// Constructor&lt;br /&gt;
TimeDatePlugin::TimeDatePlugin(QObject *parent, const QStringList &amp;amp;args)&lt;br /&gt;
    : KTextEditor::Plugin(parent)&lt;br /&gt;
{&lt;br /&gt;
    // Avoid warning on compile time because of unused argument&lt;br /&gt;
    Q_UNUSED(args);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Destructor&lt;br /&gt;
TimeDatePlugin::~TimeDatePlugin()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Create the plugin view class and add it to the views list&lt;br /&gt;
void TimeDatePlugin::addView(KTextEditor::View *view)&lt;br /&gt;
{&lt;br /&gt;
    TimeDatePluginView *nview = new TimeDatePluginView(view);&lt;br /&gt;
    m_views.append(nview);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Find the view where we want to remove the plugin from, and remove it.&lt;br /&gt;
// Do not forget to free the memory.&lt;br /&gt;
void TimeDatePlugin::removeView(KTextEditor::View *view)&lt;br /&gt;
{&lt;br /&gt;
    for (int z = 0; z &amp;lt; m_views.size(); z++)&lt;br /&gt;
    {&lt;br /&gt;
        if (m_views.at(z)-&amp;gt;parentClient() == view)&lt;br /&gt;
        {&lt;br /&gt;
            TimeDatePluginView *nview = m_views.at(z);&lt;br /&gt;
            m_views.removeAll(nview);&lt;br /&gt;
            delete nview;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// We do nothing on this methods since our plugin is not configurable yet&lt;br /&gt;
void TimeDatePlugin::readConfig()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void TimeDatePlugin::writeConfig()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Plugin view class&lt;br /&gt;
TimeDatePluginView::TimeDatePluginView(KTextEditor::View *view)&lt;br /&gt;
  : QObject(view)&lt;br /&gt;
  , KXMLGUIClient(view)&lt;br /&gt;
  , m_view(view)&lt;br /&gt;
{&lt;br /&gt;
    // Insert the plugin&lt;br /&gt;
    view-&amp;gt;insertChildClient(this);&lt;br /&gt;
    setComponentData(KGenericFactory&amp;lt;TimeDatePlugin&amp;gt;::componentData());&lt;br /&gt;
&lt;br /&gt;
    KAction *action = new KAction(i18n(&amp;quot;Insert Time &amp;amp;&amp;amp; Date&amp;quot;), this);&lt;br /&gt;
    // Here we need as first parameter the same we declared at the resource&lt;br /&gt;
    // contents file (timedateui.rc). We named the action &amp;quot;tools_insert_timedate&amp;quot;.&lt;br /&gt;
    // Here is where we connect it to an actual KDE action.&lt;br /&gt;
    actionCollection()-&amp;gt;addAction(&amp;quot;tools_insert_timedate&amp;quot;, action);&lt;br /&gt;
    action-&amp;gt;setShortcut(Qt::CTRL + Qt::Key_D);&lt;br /&gt;
    // As usual, we connect the signal triggered() to a slot here. When the menu&lt;br /&gt;
    // element is clicked, we go to the slot slotInsertTimeDate().&lt;br /&gt;
    connect(action, SIGNAL(triggered()), this, SLOT(slotInsertTimeDate()));&lt;br /&gt;
&lt;br /&gt;
    // This is always needed, tell the KDE XML GUI client that we are using&lt;br /&gt;
    // that file for reading actions from.&lt;br /&gt;
    setXMLFile(&amp;quot;timedateui.rc&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Destructor&lt;br /&gt;
TimeDatePluginView::~TimeDatePluginView()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// The slot that will be called when the menu element &amp;quot;Insert Time &amp;amp; Date&amp;quot; is&lt;br /&gt;
// clicked.&lt;br /&gt;
void TimeDatePluginView::slotInsertTimeDate()&lt;br /&gt;
{&lt;br /&gt;
    // We create a KDateTime object with the current time &amp;amp; date.&lt;br /&gt;
    KDateTime dt(QDateTime::currentDateTime());&lt;br /&gt;
    // We insert the information in the document at the current cursor position&lt;br /&gt;
    // with the default string declared on the header.&lt;br /&gt;
    m_view-&amp;gt;document()-&amp;gt;insertText(m_view-&amp;gt;cursorPosition(), dt.toString(localizedTimeDate));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// We need to include the moc file since we have declared slots and we are using&lt;br /&gt;
// the Q_OBJECT macro on the TimeDatePluginView class.&lt;br /&gt;
#include &amp;quot;timedate.moc&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building it all, the CMakeLists.txt ===&lt;br /&gt;
Finally, to put everything together you need to build everything, to tell cmake what needs to go where there is the CMakeLists.txt file.&lt;br /&gt;
&lt;br /&gt;
For more details on CMake please read [[Development/Tutorials/CMake]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# We are calling our plugin &amp;quot;ktexteditor_timedate&amp;quot;, and it contains only&lt;br /&gt;
# one source file: timedate.cpp.&lt;br /&gt;
kde4_add_plugin(ktexteditor_timedate timedate.cpp)&lt;br /&gt;
&lt;br /&gt;
# We need to link our plugin against kdecore libs, as well as ktexteditor&lt;br /&gt;
target_link_libraries(ktexteditor_timedate ${KDE4_KDECORE_LIBS} ktexteditor)&lt;br /&gt;
&lt;br /&gt;
# Well, we want to install our plugin on the plugin directory&lt;br /&gt;
install(TARGETS ktexteditor_timedate DESTINATION ${PLUGIN_INSTALL_DIR})&lt;br /&gt;
&lt;br /&gt;
# We also want to install the resource contents file on the data directory, at&lt;br /&gt;
# the subdirectory of our plugin name, so it does not mix up with other resource&lt;br /&gt;
# contents files.&lt;br /&gt;
install(FILES timedateui.rc DESTINATION ${DATA_INSTALL_DIR}/ktexteditor_timedate)&lt;br /&gt;
&lt;br /&gt;
# We want to install the desktop file that describes our plugin too. It will go&lt;br /&gt;
# on the services directory.&lt;br /&gt;
install(FILES ktexteditor_timedate.desktop DESTINATION ${SERVICES_INSTALL_DIR})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The next part ===&lt;br /&gt;
Now you are ready for adding to this plugin a configuration dialog that lets the user customize the way the string is printed out on the screen.&lt;/div&gt;</summary>
		<author><name>Ereslibre</name></author>	</entry>

	</feed>