Bamboo Soy

Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio
Aug 02, 2018
8 460
Syntax highlighting, autocompletion and static analysis for your closure template files.

Download plugin

Recent change notes

Release notes for 1.4

  • General stability and robustness improvements,
  • Added support for Map literals,
  • Fixed formatting of ternary expressions,
  • Fixed issue where the plugin was interfering with non-soy files,
  • Fixed parsing of HTML comments (made non-greedy),
  • Fixed parsing of {literal} tag content,

Release notes for 1.3

  • Formatter: Better support for spacing in and around expressions,
  • General stability and robustness improvements,
  • Fixed ClassCastException occurring when jumping to definitions,
  • More consistent handling of CSS literals,

Release notes for 1.2

  • Automatic insertion of closing characters for `"`, `'`, `(` and `[`,
  • Code style settings are now available,
  • Pressing enter after an open tag now places the cursor at the right indentation level,
  • Formatting improvements:
    • Continuation indent on multiline `alias`,
    • Continuation indent on tag attributes,
    • Improved frormatting for deeply nested tags,
  • Live templates for `{let}` and `{let /}`,
  • Add support for `stricthtml="true"` in template definition blocks,
  • Better context-detection for where variable autocompletion should trigger,
  • Fixed various NPEs and bugs that occured on partial/incomplete code constructs,

Release notes for 1.1

  • Autocompletion now respects block scoping
  • Performance improvements to parsing and indexing phase
  • Fixed bug where Soy parser would not correctly delegate to HTML

Release notes for 1.0

  • HTML highlighting and completion
  • Autoformatting
  • Structure view
  • Autoclosing of soy tags when typing "{/"
  • Doc comment support for @param, @inject and let statements
  • Completion improvements
    • Kind keyword and supported literals in string literal
    • Show type in parameter identifier suggestions
    • Only deltemplates are suggested for delcalls and vice verso for normal templates
  • Indexing of files is now persisted accross restarts
  • Stability and bug fixes

Release notes for 1.0-alpha.5

  • Added completion for visibility="private" in template open tags.
  • Recognize usage of variables inside string literals, like {msg desc="$variable"}.
  • Fix referencing of variables declared in let statements.
  • Disallow referencing @inject declarations from template call sites.
  • Fix checking for slash before closing brace on single-tag call statements.
  • Parser accepts index access of parenthesized expressions, like ($foo)[0]
  • Parser accepts `for` statements with empty body.

Release notes for 1.0-alpha.4

  • Fix issue where identifiers suggestions from let statements would begin with an invalid double-$,
  • Properly recognize map/list access as an expression (it would previously show as a parsing error in certain cases),
  • Remove auto-adding of single quote, it's annoying when typing vanilla text.

Release notes for 1.0-alpha.3

  • Improved alias support:
    • Suggest aliased namespaces in autocompletion results for templates in a {call},
    • Provide autocompletion after using a namespace alias as identifier
  • Adds support for union and record types in parameter definitions,
  • Autocompletion for `kind` of parameters {text, html, uri, attributes, ...},
  • Live template for {param} adds `kind="text"` as default based on usage stats.
  • Improvements to live templates:
    • Automatically open completion suggestions for {param} and {alias} live templates,
    • Renamed the single line {call} and {param} triggers to scall and sparam to avoid colliding with most probable case which is to have open-close tags.

Release notes for 1.0-alpha.2

  • Adds documentation tooltips for references ( Ctrl-hover to show or Ctrl-Q to trigger quick documentation),
  • Adds support for union and record types in parameter definitions,
  • Adds support for alias declaration that omit the alias identifier {alias my.namespace},
  • Adds support for identifiers that are part of identifier expressions. For example in {print($}, the identifier $foo is correctly recognized and will be a reference to the site where it�s declared,
  • Fixes parsing issues where `uri` was not allowed as parameter name,
  • Fixes NPE when desugaring aliases.