Plugin Latte Pro – chyba přidání custom paired tag, jak vyřešit ručně?

m.brecher
Generous Backer | 758
+
0
-

Ahoj,

zápolím s nově nainstalovaným pluginem Latte Pro. Plugin nezná latte tag {translate}, ani předchozí verze, musí se do pluginu přidat ručně.

V projektu jsem tag {translate}{/translate} používal a ve staré free verzi pluginu Latte jsem si ho přidal ručně (klik pravou myší na custom tag → Show context actions → „Add custom paired tag“) . Po odinstalování staré verze pluginu a instalaci nové verze Latte Pro v souborech latte nastaly s custom tagy problémy.

Ve všech souborech vytvořených před změnou latte pluginu lze psát nové tagy již dříve registrované tagy {translate}{/translate} bez problémů, plugin je zná.

V souborech .latte vytvořených nově po reinstalaci pluginu plugin tag {translate}{/translate} nezná a podtrhává ho červeně. Context action ale nabídne pouze nesprávnou akci „Add custom unpaired tag“ a to přestože jsem napsal řádný párový tag {translate}{/translate}.

Zkusil jsem přidat {translate}{/translate} jako nepárový tag akcí „Add custom unpaired tag“, ale to dle očekávání registruje pouze {translate}, takže se červeně podtrhává uzavírací tag {/translate}. V souborech vytvořených před reinstalací pluginu ale je registrován párový tag {translate}{/translate} správně.

Rád bych používal perspektivní verzi pluginu Latte Pro, ale jak vyřešit řádnou registraci {translate}{/translate}?

Podle chování pluginu to vypadá, že registrace custom tagu nefunguje v celém projektu a že mám {translate} registrovaný dvakrát – ve starých šablonách jako párový a v nových šablonách jako nepárový :(.

Předpokládám, že registrované tagy budou uloženy v nějakém xml konfiguračním souboru, kde by se editací dal problém vyřešit.

Otázka – neporadil by někdo, kde konfiguraci custom tagů v projektu najít a popř. jak data upravit?

Díky předem.

Marek Bartoš
Nette Blogger | 1171
+
0
-

V repozitáří můžeš založit issues pro chyby na které jsi narazil + se prokliknout na dokumentaci https://github.com/…e-pro-issues

To přidávání párového tagu z kontextu teď vskutku nefunguje, ale můžeš v konfiguraci IDE nastavit tagy správně (Settings → PHP → Latte), případně přes xml soubor (syntaxe se liší od původního pluginu)

m.brecher
Generous Backer | 758
+
0
-

@MarekBartoš

Díky,

V repozitáří můžeš založit issues pro chyby na které jsi narazil

Včera jsem tam už dvě bug issue napsal a bude jich celá řada, tak je tam postupně budu dokumentovat. Nový plugin má chyb víc než starý, ale chápu, že to zabere nějaký čas, než se to odladí.

případně přes xml soubor (syntaxe se liší od původního pluginu)

No a to bych právě potřeboval poradit kde ten xml soubor najdu a kde je popsaná syntaxe?

Editoval m.brecher (23. 2. 2023 18:21)

Marek Bartoš
Nette Blogger | 1171
+
0
-
m.brecher
Generous Backer | 758
+
0
-

@MarekBartoš

Ahoj,

díky za navedení správným směrem, hledal jsem dle dokumentace konfigurační soubor pluginu intellij-latte-pro.xml, protože jsem předpokládal, že ho plugin vytvořil, když jsem registroval custom tag.

Ne našel jsem ho, ale našel jsem v /project/.idea/latte-pro.xml, kde byl registrovaný custom tag

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="LatteSettings">
    <option name="a">
      <list>
        <LatteTagSettings name="translate" type="PAIR" />
      </list>
    </option>
  </component>
</project>

Tuto konfiguraci jsem zakomentoval a vytvořil dle dokumentace soubor intellij-latte-pro.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE latte PUBLIC "-//LATTE//Latte plugin XML V0.0.1//EN" ".idea/intellij-latte-pro/xmlSources/Latte.dtd">
<latte vendor="brecher/latte-plugin" version="1">
    <tags>
        <tag name="translate" type="PAIR" />
    </tags>
    <variables>
        <variable name="appDir" type="string" />
    </variables>
</latte>

Funguje to výborně. Tag {translate} i n:translate je napovídán a přidal jsem i napovídání proměnné $appDir.

Poslední dotaz – co udělat se souborem /project/.idea/latte-pro.xml – to je zřejmě nějaká stará verze, která se asi časem vypne. Smazat?

m.brecher
Generous Backer | 758
+
0
-

@MarekBartoš

Tak jsem zkusil odstranit starý konfigurační soubor /project/.idea/latte-pro.xml a nový konfigurační soubor intellij-latte-pro.xml nefunguje, rep. funguje registrace proměnné, ale nefunguje registrace custom tagu.

Nahlásím to @mesour na github a vrátím starý konfigurační soubor zpět.

Marek Bartoš
Nette Blogger | 1171
+
0
-

latte-pro.xml je project-specific config do kterého se propisuje co sis naklikal v konfiguraci. Nemazat. Závisí na něm i funkčnost tvých custom tagů.
intellij-latte-pro.xml je ten na který jsem odkazoval. Ten může být kdekoli v projektu i ve vendoru a načte se ti z něj vše při načtení IDE.

m.brecher
Generous Backer | 758
+
0
-

@MarekBartoš

Hmmm… tak to nějak nechápu, v intellij-latte-pro.xml configuruji custom tag a to nestačí? Musím ještě podruhé naklikat custom tag z IDE? On v souboru intellij-latte-pro.xml custom tag zvýraznil červeně s chybovým hlášením, že se má konfigurovat v Settings IDE – když byl soubor latte-pro.xml zakomentovaný, po odkomentování tato chybová hláška zmizela.

Potom konfigurace custom tagu v intellij-latte-pro.xml nedává moc smysl, protože stejně nefunguje a musí být konfigurace i naklikáním v IDE do latte-pro.xml. Ta funguje tak jako tak i když se konfigurace v intellij-latte-pro.xml zruší.

Mělo by to být udělané tak, že konfigurace custom tagu se bude provádět v intellij-latte-pro.xml a bude fungovat i bez naklikané konfigurace v IDE, která bude jako druhá varianta, nebo se zruší úplně, protože mě xml přijde daleko lepší.

mesour
Nette Blogger | 236
+
0
-

@mbrecher V intellij-latte-pro.xml se konfiguruje vše pro našeptávání, dokumentaci, inspections a tak. Ovšem problém je při parsingu souboru, parsing probíhá paralelně a proto nemůže parsing jednoho souboru záviset na parsingu druhého souboru. Proto je třeba mít tagy a jejich typy nakonfigurované v konfiguraci PhpStormu, která je při parsingu souborů již známá.

Editoval mesour (6. 4. 2023 16:41)

m.brecher
Generous Backer | 758
+
0
-

@mesour

Proto je třeba mít tagy a jejich typy nakonfigurované v konfiguraci PhpStormu, která je při parsingu souborů již známá.

Ahoj, díky za vysvětlení

V intellij-latte-pro.xml se konfiguruje vše pro našeptávání, dokumentaci, inspections a tak.

bylo by dobré časem do dokumentace Latte Pro pluginu doplnit podrobný návod jak xml soubor ke konfiguraci využít + informaci, že custom tagy a jejich typy je potřeba paralelně naklikat v PHPStormu

Marek Bartoš
Nette Blogger | 1171
+
0
-

Nepotřebuješ nic paralelně naklikávat. Definuješ si intellij-latte-pro.xml (kdekoli mimo interní .idea složku).
Při startu projektu se ti objeví notifikace, že je třeba soubor sesynchronizovat do interní (.idea) konfigurace, což je jedno kliknutí do oné notifikace.

m.brecher
Generous Backer | 758
+
0
-

@MarekBartoš

Aha, dík, teď už je to jasné, prostě si definuji vlastní tagy v xml a to je vše, pak už jenom po restartu odkliknu synchronizaci.

mesour
Nette Blogger | 236
+
0
-

@m.bracher ano přesně tak. Akorát ta notifikace ohledně synchronizace by se měla objevit po uložení intellij-latte-pro.xml v případě, že byl přidán nový tag a ne až po restartu.

Jinak by měla fungovat i funkce přímo v intellij-latte-pro.xml, pokud zapíši nový tag, tak by se měl jeho název v XML podbarvit červeně a po kliku by se měla objevit intention, která založí do konfigurace PhpStormu ten nový tag.

Právě jsem to testovat a obě varianty fungují tak, jak je zde popisuji.

Editoval mesour (10. 5. 2023 13:24)