<?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>Martin Cohen &#187; Intype</title>
	<atom:link href="http://coh.io/blog/category/intype/feed" rel="self" type="application/rss+xml" />
	<link>http://coh.io/blog</link>
	<description>Intype, dizajn, vývoj a somári</description>
	<lastBuildDate>Sun, 23 May 2010 15:41:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DIY: PHPDoc podpora pre Intype [Intype]</title>
		<link>http://coh.io/blog/853-diy-phpdoc-podpora-pre-intype</link>
		<comments>http://coh.io/blog/853-diy-phpdoc-podpora-pre-intype#comments</comments>
		<pubDate>Sat, 06 Feb 2010 21:33:15 +0000</pubDate>
		<dc:creator>Martin Cohen</dc:creator>
				<category><![CDATA[Intype]]></category>

		<guid isPermaLink="false">http://coh.io//blog/?p=853</guid>
		<description><![CDATA[
<p>Som lenivý, preto som si pre PHPDoc vytvoril jednoduchú bundle. S novým
bundle editorom je to strašne pohodlné. Viem, že Ivo robil niečo podobné
pre JavaScript. Nasledujúce sa dá samozrejme použiť kdekoľvek, aj v Intype
0.3.1 (za predpokladu, že budete upravovať súbory na disku), ale v novom
0.3.5 to bude podstatne jednoduchšie ako pre gramatiky:</p>

<p>Tak pre snippety:</p>

<p>Existujúca gramatika pre PHP nerobí rozdiel medzi […]</p>

<!-- by Texy2! -->]]></description>
			<content:encoded><![CDATA[
<p>Som lenivý, preto som si pre PHPDoc vytvoril jednoduchú bundle. S novým
bundle editorom je to strašne pohodlné. Viem, že <a
href="http://centi.sk/">Ivo</a> robil niečo podobné pre JavaScript.
Nasledujúce sa dá samozrejme použiť kdekoľvek, aj v Intype 0.3.1 (za
predpokladu, že budete upravovať súbory na disku), ale v novom 0.3.5 to
bude podstatne jednoduchšie ako pre gramatiky:</p>

<div><img
src="http://martincohen.info/blog/wp-content/uploads/PHPDoc-Grammar.png" alt=""
/></div>

<p>Tak pre snippety:</p>

<div><img
src="http://martincohen.info/blog/wp-content/uploads/PHPDoc-Snippet.png" alt=""
/></div>

<p>Existujúca gramatika pre PHP nerobí rozdiel medzi obyčajným komentárom a
komentárom s dokumentáciou. To sa dá jednoducho zmeniť. Potrebujeme pridať
pravidlo ktoré v komentároch začínajúcich na <code>/**</code> nastaví
scope na <code>comment.block.doc.php</code>.</p>

<pre class="php"><code><span
class="php-comment">/**
 * Nech Ctrl+P zobraz&iacute; comment.block.doc.php! Tri&scaron;t&yacute;&yacute;&yacute;&yacute;&yacute;&yacute;&yacute;-ri!
 */</span></code></pre>

<p>Otvoríme PHP gramatiku a nájdeme v nej pravidlo pre
<code>comment.block</code>. Blok vyzerá takto:</p>

<pre class="js"><code><span
class="js-out">{
        begin: /\/\*/
        end: /\*\</span><span
class="js-comment">//
</span><span class="js-out">        name: </span><span
class="js-quote">'comment.block.php'</span><span
class="js-out">
        patterns: [ {
                match: /\@(a(ccess|uthor)|c(ategory|opyright)|global|l(ink|icense)|pa(ckage|ram)|</span><span
class="js-keywords1">return</span><span
class="js-out">|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion))\b/
                name: </span><span
class="js-quote">'keyword.other.phpdoc.php'</span><span
class="js-out">
        } ]
}</span></code></pre>

<p>Urobíme kópiu pravidla nad ním. Potrebujeme upraviť <code>begin</code>,
<code>name</code> a ešte z pôvodného pravidla pre komentár odmažeme
<code>patterns</code>:</p>

<pre class="js"><code><span
class="js-comment">// K&oacute;pia s na&scaron;imi &uacute;pravami pre PHPDoc
</span><span
class="js-out">{
        begin: /\/\*\*/
        end: /\*\</span><span
class="js-comment">//
</span><span class="js-out">        name: </span><span
class="js-quote">'comment.block.doc.php'</span><span
class="js-out">
        patterns: [ {
                match: /\@(a(ccess|uthor)|c(ategory|opyright)|global|l(ink|icense)|pa(ckage|ram)|</span><span
class="js-keywords1">return</span><span
class="js-out">|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion))\b/
                name: </span><span
class="js-quote">'keyword.other.phpdoc.php'</span><span
class="js-out">
        } ]
}
</span><span
class="js-comment">// P&ocirc;vodn&yacute; blok bez &quot;patterns&quot;
</span><span
class="js-out">{
        begin: /\/\*/
        end: /\*\</span><span
class="js-comment">//
</span><span class="js-out">        name: </span><span
class="js-quote">'comment.block.php'</span><span
class="js-out">
}</span></code></pre>

<p>Ok, čil, načo to bolo? No bolo to na to, aby sme mohli preťažiť klávesu
<em>Enter</em> v komentári tak aby nevkladala iba nový riadok, ale aby
k nemu prihodila i hviezdičku na začiatku. Čiže:</p>

<pre class="php"><code><span
class="php-comment">/**
 * &lt;- keď tam tun&aacute;k Enter, tak mi to vlož&iacute; dal&scaron;&iacute; riadok s hviezdičkou
 */</span></code></pre>

<p>Predtým ako to urobíme by to chcelo novú bundle, aby sme v tom nemali
bordel. Nazvime ju „PHPDoc“. Terazky vytvoríme nový snippet v tejto
bundle s menom „New line in PHPDoc comment“. Do nej nastavíme obsah
snippetu ako:</p>

<pre>* $0</pre>

<p>Čiže: nový riadok, medzera, hviezdička, medzera. Scope nastavíme na
<code>comment.block.doc.php</code> a klávesovú skratku na <em>Enter</em>.
<em>Ctrl+S</em> a môžeme to vyskúšať.</p>

<pre>/**
 *
 *
 *
 *
 *
 * Jaké dobré, héééj.
 */</pre>

<p>Teraz nám už len stačí vytvoriť sadu snippetov pre jednotlivé <a
href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html">PHPDoc
tagy</a>. Ten najpeknejší je <code>@param</code>, inštrukcie hír:</p>

<ol>
	<li>Vytvorte nový snippet v „PHPDoc“ s menom „@param“</li>

	<li>Snippet: <code>@param ${1:type} \$${2:name} $0</code></li>

	<li>Scope: <code>comment.block.doc.php</code></li>

	<li>Tab trigger: <code>@param</code></li>

	<li><em>Ctrl+S</em></li>
</ol>

<!-- by Texy2! -->]]></content:encoded>
			<wfw:commentRss>http://coh.io/blog/853-diy-phpdoc-podpora-pre-intype/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
