Nový plugin NEON Nette Support

před 3 lety od Matouš Němec  

Pluginy pro IDE přinášejí pohodlí při vývoji a zjednodušují práci. Vývoj pluginů pro IntelliJ platformu mě baví a rád bych vám dodal co nejlepší produkty. Dnes vám představím nový plugin NEON Nette Support pro PhpStorm, který je defacto bleskový i ve velkých projektech a ušetří vám spoustu práce.

Znáte současný NEON plugin? Ten obarvuje soubory a poskytuje základní našeptávání. To je dobré pro začátek nebo pro jiné využití, než jsou konfigurační soubory Nette. Ale co když chcete od NEON pluginu víc, minimálně to, že rozumí vaší Nette aplikaci, pomůže s refaktoringem, má pokročilé našeptávání apod? Aby rozeznal parametry %param% a služby @serviceName a znal jejich typ a mnoho dalšího? Podívejte se sami na přehled nejdůležitějších funkcí nového pluginu.

Funkce nového pluginu

Veškeré screenshoty jsou pouze ilustrativní a neukazují ideální způsob psaní konfigurace, mají pouze ukázat co nejvíce funkcí pluginu.

Obarvení syntaxe

Obarvení syntaxe je pokročilejší než v předchozí verzi pluginu, která pouze obarvovala klíče oranžovou barvou. Také jsem rozšířil stránku s nastavením barev pro NEON. Posuďte sami:

Našeptávání klíčů

Plugin obsahuje také funkci pro našeptávání klíčů. Zatím našeptává klíče ze základních Nette rozšíření, ale v dalších verzích pluginu přibude možnost konfigurovat klíče pro rozšíření třetích stran. Mimo našeptávání dokáže podtrhávat klíče, které nezná, a u hodnot dokáže validovat správný typ.

Našeptávání tříd a jmenných prostorů

Našeptávání PHP tříd a jmenných prostorů je samozřejmostí. Dokáže podtrhnout neexistující třídy nebo prostory. Dovede také u tříd z PHP kódu dohledat, v jakých je použitá konfiguračních souborech. A pokud použitá je, neoznačuje ji jako unused (toto se týká i metod, property a konstant).

Našeptávání metod a properties

Plugin také našeptává metody a property. A to jak při použití přímo v kombinaci s názvem třídy Foo\Bar::method, tak při použití za názvem služby @serviceName::method. Navíc umí našeptávat metody a property i pod klíčem setup v definici služby, a to i na místech, kde se služba přímo nedefinuje, ale pouze se na instanci služby volají nějaké setupy navíc.

Toto funguje u výchozích služeb Nette a do budoucna přibude možnost chování definovat i pro vlastní služby, které se vytvářejí přes rozšíření.

Součástí jsou také inspections na neexistující metody, property a konstanty. Kontrolují, zda prvky existují a jsou public, nejsou deprecated a další drobnosti.

Funguje i dohledání metody/property/konstanty z PHP, v jakých je použitá konfiguračních souborech.

Našeptávání parametrů a odkazů na služby

V pluginu funguje našeptávání názvů služeb za znakem @ a našeptávání parametrů za znakem %. Také funguje proklik z názvu služby/parametru na jeho definici, případně zobrazí výběr s informací o názvu souboru, pokud je definovaný na více místech.

Refactoring

Plugin rozšiřuje možnosti refactoringu. Takže když v PHP přejmenujete nějaký element pomocí refactoringu, tak se tato změna propíše do konfiguračních souborů na všechny místa, kde je daný element použitý. A dokonce lze refaktorovat přímo z NEON souboru a propíše se to do PHP souboru a ostatních konfigurací, pokud je v nich přejmenovávaný element použitý. Týká se to tříd, jmenných prostorů, metod, property, konstant, NEON parametrů %param% a služeb @serviceName.

Inspections

První verze pluginu má inspections pro nedefinované symboly a nepoužité parametry. V dalších verzích pak přijdou inspections pro deprecated elementy, validace správného typu hodnoty klíče apod. Všechny inspections jsou oddělené a lze je tedy v nastavení vypnout nebo upravit jejich severity.

Sekce includes

V sekci includes funguje našeptávání souborů. Reference na vkládané soubory lze dohledat pomocí funkce find usages.

Další novinky

Dále plugin poskytuje drobečkovou navigaci, structure view, při psaní doplňuje koncové závorky nebo uvozovky, nabízí vytvoření nového NEON souboru. Přidal jsem nové obrázky a u nich velikost pro Retina displeje a další drobnosti.

Pohled do zákulisí

Se zlepšením kvality mi hlavně pomohl úplně nově napsaný jFlex lexer a BNF parser pro parsování .neon souborů. Na ten jsem vytvořil přes stovku testů. Tyto testy pomáhají s tím, že při upgradu parseru vše parsuje stejně a nic se nerozbije. S parserem úzce souvisejí jednotlivé elementy kódu, které generuje. Na tyto elementy jsem také vytvořil přes sto testů a každý kontroluje, zda metody elementů fungují jak mají. S performance zase souvisí správné cachování složitých operací nad elementy a vyhledávání pomocí indexů. Jakmile byl hotový tento nejdůležitější základ, tak už bylo možné se věnovat implementaci jednotlivých featur.

Abych zajistil podporu vývoje, rozhodl jsem se udělat nový plugin NEON Nette Support placený. JetBrains marketplace přímo podporuje placené pluginy, takže by se platba prováděla ve vašem JetBrains účtu, stejně jako platba za produkty od JetBrains.

A kolik to celé bude stát?

Toto všechno vás bude stát měsíčně jako pouhé dvě piva. Tedy 78 Kč po dobu prvního roku, druhý rok o 20 % méně a třetí a další roky o 40 % méně. Při roční platbě navíc ušetříte dva měsíce, tak jak jste zvyklí z produktů od JetBrains. Uvedená cena je bez DPH. Detaily pricingu jsou na JetBrains NEON Nette plugin page.

Kde to stáhnout a vyzkoušet?

Plugin je možné před koupí vyzkoušet na 30 dní zdarma jako všechny produkty od JetBrains. Pokud aktuálně používáte bezplatný Neon plugin, musíte jej před instalací NEON Nette Support odinstalovat. NEON Nette Support se instaluje jako normální pluginy přes menu v PhpStormu Preferences -> Plugins -> Marketplace. Plugin se jmenuje NEON Nette Support. Více informací k instalaci najdete v dokumentaci.

Komentáře

  1. Tak to je top strop 🙏👍

    před 3 lety
  2. Je to skvělý! 👌

    před 3 lety
  3. Skvělá práce @mesour 👍

    před 3 lety
  4. 🚀
    az sa niekedy vratim k Nette, urcite podporim.

    před 3 lety

Chcete-li odeslat komentář, přihlaste se