Vytváření odkazů do dokumentace
V JavaScriptovém zvýrazňovači syntaxe JUSH jsem od začátku lpěl na sledování kontextu a jeho přepínání. Je to hezky vidět i u jednoduchého kódu <?php mysql_query("SET sql_mode = ''")
, kde jsou hned čtyři kontexty:
- Z HTML kódu se přepne do PHP, kde se zvýrazní funkce
mysql_query
. - Z PHP se přepne do kontextu MySQL, kde se zvýrazní příkaz
SET
. - Zde se přepne do kontextu SQL nastavení, kde se zvýrazní
sql_mode
. - A odtud se zase přepne zpátky do kontextu SQL příkazu a PHP.
Sledují se prakticky všechny kontexty, které se u webových aplikací používají, namátkou:
<div style="color: black;" onclick="alert('');">
<meta http-equiv="Content-Type: text/html">
header("Content-Type: text/html")
mail("", "", "", "From:")
ini_set("display_errors", true)
SELECT NOW()
(podpora MySQL, SQLite, PostgreSQL a MS SQL)xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest')
(JavaScript)php_value display_errors On
(Apache)
Kontextů je tolik, až si říkám, jestli jsou vlastně všechny potřeba. Jak chcete zvýraznit SQL nastavení uvnitř MySQL příkazu uvnitř PHP řetězce uvnitř HTML kódu? Hlavní výhoda tak spočívá ve vytvoření odkazů do patřičných dokumentací. Nevím jak vám, ale mě tyhle odkazy náramně pomáhají a ocenil bych je ve všech ukázkách kódu, které kde čtu.
Schopnost vytváření odkazů do patřičné dokumentace používám i při psaní článků. Když chci popsat funkci highlight_file
, tak jednoduše napíšu <code class="jush-php">highlight_file</code>
, čímž se odkaz sám vytvoří.
No ale ze všeho nejužitečnější by bylo mít tuto schopnost kontextového odkazování napojenou na nápovědu editoru. Tuto možnost JUSH také nově nabízí. Skript jush-help.wsf
pro Windows se používá snadno:
WScript jush-help.wsf filename line column [tabsize] [word]
Soubor prožene zvýrazněním syntaxe a pak se podívá, jestli je na dané pozici nějaký odkaz. Když ano, tak ho spustí, jinak alespoň nabídne hledání aktuálního slova v Google. To se mi ostatně často taky hodí – chci něco najít o slovu, které se v kódu používá třeba uvnitř řetězce. Napojení na editor SciTE je bezproblémové:
file.patterns.jush=*.htm;*.html;*.php;*.sql;*.js;*.css;php.ini;*.conf;.htaccess command.1.$(file.patterns.jush)=WScript jush-help.wsf "$(FilePath)" $(SelectionStartLine) $(SelectionStartColumn) $(tabsize) "$(CurrentWord)" command.name.1.$(file.patterns.jush)=JUSH help command.subsystem.1.$(file.patterns.jush)=2 command.save.before.1.$(file.patterns.jush)=1
Spuštění z příkazového řádku je fungl nové, takže uvítám jakékoliv připomínky. Když by se někomu chtělo kód přepsat do jiného běhového prostředí (např. Rhino), tak budu samozřejmě taky rád.
Diskuse
cucací potřeby:
aha. ten článek je tak "2007". a teď teprve koukám, že už na ni Jakub odkazuje. Tak nic, no. Jakube, co na tu zmíněnou námitku, že v té době JUSH nezvýrazňoval SQL ve funkcích PostgreSQL?Mno, a aby měl tento příspěvek aspoň nějakou hodnotu, tak dám zpětnou vazbu tu, že s pomalým internetem, který mám, začne být aplikace, používající JUSH (phpMinAdmin, ve své době) časem otravný - pomalé odezvy, a tak dále. Ale to se dá každopádně čekat.
Jakub Vrána
:
JUSH už delší dobu umí kromě MySQL zvýrazňovat i SQLite, PostgreSQL a MS SQL.
Co se pomalé odezvy týče, tak stahovaný skript lze kešovat, takže se stáhne jen jednou (nebo alespoň ne vždy).


Ladislav Prskavec:
Umi JUSH zvyraznovat napr. $_SERVER, nejak mi to nedela odkaz na http://cz.php.net/manual/en/reserved.variables.server.php kam bych to cekal.

Jakub Vrána
:
V SVN už ano... Díky za tip.


Diskuse je zrušena z důvodu spamu.

