Statistics
96
38
20h
Badges
Tags
ide

Latte Plugin for IntelliJ IDEA / PhpStorm

Provides support for Latte – a template engine for PHP.

Supported Features

  • Syntax highlighting
  • Code completion for PHP, classic HTML, attribute tags and more
  • Registering custom tags, filters and custom functions

Installation

Settings → Plugins → Browse repositories → Find "Latte" → Install Plugin → Restart IDE

Testing EAP versions

Latte plugin for IntelliJ is downloadable from the JetBrains plugin repository directly in the PHPStorm. Latte plugin for IntelliJ using channel eap which contains the latest release candidate.

  • Here is, how to set up custom release channels in PHPStorm: Custom release channels
  • You have to add this link: https://plugins.jetbrains.com/plugins/eap/list to your Custom plugin repositories
  • After you add the link above, you can refresh your plugins Marketplace and you will see RC versions for Latte plugin

Donate

You can now sponsor this open-source project through Patreon.

Does Nette plugins save you development time? Send a couple of 💸 a month my way too. Thank you!

One-time donations through PayPal are also accepted. To request an invoice, contact me through e-mail.

Building

Plugin uses Gradle to build, but before build you need to install Grammar-Kit plugin to Intellij Idea, right click in file explorer to LatteParser.bnf located in com.jantvrdik.intellij.latte, click to Generate Parser Code, then select PSI root to src/main/gen/com/jantvrdik/intellij/latte/psi and generated parser as src/main/gen/com/jantvrdik/intellij/latte/parser/LatteParser.class

After generating parser files, you need to generate a .flex file from the same .bnf file, right click to file and choose option Generate JFlex Lexer and generate _LatteLexer.flex in the same folder.

Now you can build plugin using gradle, and it will automatically generate another classes from .flex files, if you want you can help us automate system, so next time no one must do the manual generation work.

$ gradlew build

To build .jar file to local install to IDE run gradle task buildPlugin. .jar file with plugin will be located in build/libs

Run IDE for testing

Create file local.properties in project and insert next content with path to IDE directory:

For your current OS see default IDE paths: https://www.jetbrains.com/help/idea/tuning-the-ide.html#default-dirs

runIdeDirectory = /Users/<user id>/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/201.7223.96/PhpStorm 2019.3 EAP.app/Contents

And run gradle task :runIde ideally by run configurations in IDEA (it supports debugging).

Known Limitations

  • Low-level macros {syntax} is not supported, {contentType} is supported partially.

Screenshot

  • v1.0.2 v1.0.2

    • added code style settings (settings for use tabs or spaces) (issue #46, #30)
    • added support for define variable in tag {default $foo = 123}
    • added class namespaces completion
    • added support for define variables by {php [$foo, $bar] = $arr}
    • implemented some performance improvements
    • fixed resolving methods if a type is more classes FooClass|BarClass
    • fixed completion for unpaired macro after if missing end }
    • fixed filters on variables (issue #47)
    • fixed wrong indent for elseifset (issue #42)
    • fixed multiple variable definitions in for/foreach cycles
    • fixed auto-complete (disabled in strings, more improvements)
    • increased minimum compatibility to 2018.3
  • v1.0.1 v1.0.1

    • Fixed compatibility issues
    • Fixed structure view (added n:tags and images)
  • v1.0.0 v1.0.0 - PHP content support

    • Added PHP content support
  • v0.3.3

    • fixed null pointer exception
  • v0.3.2

    • fixed disappearing comments
    • Latte 2.4: added new macros
    • Latte 2.4: added AUTO_EMPTY support
    • Latte 2.4: added info about deprecated macro(s)
  • v0.3.1

    Fixed compatibility with PhpStorm 9.0

  • v0.3.0

    • fixed comment parsing ("todo" support)
    • added "modifier not allowed" inspection
    • added structure view
    • improved macro folding
  • v0.2.0

    • html/xml support
    • better macro content parsing
    • parsing of n:macros content

Is this addon outdated? Did you find an issue? Please report it.

Componette Componette admin@componette.com