RSS
 

PhpStorm: Syntax-Highlighting für PHP Codeblöcke in Smarty

16 Nov

Ein zugegebenermassen sehr spezielles Problem:

In unserer Web-Applikation nach MVC Architektur übernimmt Smarty (Version 2.6.26) die Darstellung. Obwohl es nicht dem MVC-Konzept entspricht, übernimmt Smarty die Erstellung von Excel Reports via PHPExcel. Um in Smarty „native“ PHP Code schreiben zu können, braucht man die {php}…{/php} Anweisungen. Und da diese Code-Blöcke unter Umständen sehr lange werden können wäre es praktisch wenn meine IDE PhpStorm hier PHP Syntax-Highlighting anwenden würde.

Die perfekte Lösung – nämlich das Definieren von {php}…{/php} als Auslöser für das Highlighten analog zu <?php … ?> – habe ich leider nicht gefunden. Aber einen brauchbaren Workaround:

Code ohne Syntaxhighlighting

Bei uns haben alle Excel-Exports das Namensschema exportX.inc.tpl, wobei X eine Zahl ist. Das mache ich mir zu Nutze und erweitere in den Einstellungen (CTRL+ALT+S) die registrierten Patterns für PHP Dateien:

PhpStorm 5.0.4 Einstellungsdialog

Die PHP Code-Blöcke werden allerdings immer noch nicht farbig hervorgehoben dargestellt. Dazu muss man einen kleinen Trick anwenden:

Code ohne Syntaxhighlighting

Die {*<?php*} Anweisung in der ersten Zeile „verwirrt“ den PhpStorm Syntax-Highlighter und sorgt dafür, dass PHP Code in der ganzen Datei (!) hervorgehoben dargestellt wird. Die Smarty Template Engine stört sich nicht an dem Tag, weil in Smarty Block-Kommentare mit {* und *} definiert werden.

Wie gesagt, das Problem ist sehr speziell und der Workaround hat auch seine Nachteile (siehe rot unterwellte Bereiche im Screenshot), aber für meine Zwecke perfekt.

 
 

Kommentare