ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Twig

A Sublime Text package that provides enhanced syntax highlighting, completions, snippets & more for PHP Twig templates.

Labels Twig, templates, PHP, syntax

Details

Installs

  • Total 106K
  • Win 45K
  • Mac 35K
  • Linux 25K
Jul 6 Jul 5 Jul 4 Jul 3 Jul 2 Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25 Jun 24 Jun 23 Jun 22 Jun 21 Jun 20 Jun 19 Jun 18 Jun 17 Jun 16 Jun 15 Jun 14 Jun 13 Jun 12 Jun 11 Jun 10 Jun 9 Jun 8 Jun 7 Jun 6 Jun 5 Jun 4 Jun 3 Jun 2 Jun 1 May 31 May 30 May 29 May 28 May 27 May 26 May 25 May 24 May 23 May 22
Windows 7 11 8 2 2 6 5 4 12 5 5 1 11 8 10 8 4 7 4 7 8 9 8 9 5 3 8 8 2 2 8 2 4 2 6 9 3 4 5 5 5 5 7 5 4 3
Mac 4 5 2 1 1 1 5 5 5 6 4 2 2 2 4 7 3 0 0 2 3 5 5 5 1 1 4 6 2 1 3 1 2 5 5 8 5 6 1 3 5 4 4 5 2 1
Linux 3 3 2 1 2 3 8 3 5 5 1 1 6 3 3 5 3 1 2 6 9 3 5 3 2 0 4 10 1 5 1 0 1 5 3 1 4 5 2 6 4 3 4 6 5 4

Readme

Source
raw.​githubusercontent.​com

BetterTwig

LICENSE Sublime Text Tag Downloads Syntax tests

A Sublime Text package that offers enhanced syntax highlighting, snippets, completions and much more for PHP Twig templates. Read more for the full documentation.

Features

  • Indentation for code blocks.
  • Snippets for common code blocks.
  • Key bindings to make your life easier.
  • Enhanced syntax highlighting for Twig templates.
  • Autocompletions for built in tags, filters, functions, tests & loop variables.

Installation

Package Control

The best way is to install it via Package Control. Once you have Package Control setup in Sublime Text, open the command palette and search for Package Control: Install Package. Search for Twig. There should be a package with the URL as https://github.com/Sublime-Instincts/BetterTwig. Install it. Package Control will take care for of automatically updating the package for you if there are new releases.

You can also use Package Control: Add Repository. Copy the github url (without the .git at the end) and enter it into the input panel that pops up at the bottom when you select Package Control: Add Repository. Now use Package Control: Install Package and search for BetterTwig and install it.

Documentation

How to use this package ?

By default, this package supports the following Twig extensions,

  1. .twig
  2. .htm.twig
  3. .html.twig

Since a user can have more than one templating language package installed, this package doesn't support .html directly. To get highlighting for .html files with Twig code and all the other features this package provides, you can follow any of the two approaches given below

  1. Go to the bottom right status bar item that displays information on current syntax and click on that when the currently open file is any .html file. From there go to Open all with current extensions as ... and scroll to select HTML (Twig). You should now be good to go.

  2. When the currently open file is a .twig file, from the main menu, go to Preferences -> Settings -- Syntax Specific. This should open a 2 column new window, with the default settings on the right and a user settings on the left. In the user settings, add the following, save & close.

{
    "extensions": [
        ".html"
    ]
}

Key bindings

  • The key bindings are configured so that pressing shift + { twice will automatically add spaces on both sides for the inner brace expression block & place the cursor in the center, like so {{ | }}.
  • |||ly pressing shift + % within {} will add spaces on both sides of the inner % like so {% | %}
  • Use ctrl + / or ctrl + shift + / for Twig comments ({# This is a Twig comment #})
  • Use # within strings, to get the interpolation expression, like so #{|}.

Auto completions

In order to get the auto completions, go to Preferences: Settings from the command palette and paste the following in the Preferences.sublime-settings -- User (the right hand window)

"auto_complete_selector": "text.html.twig, meta.tag - punctuation.definition.tag.begin, source - comment - string.quoted.double.block - string.quoted.single.block - string.unquoted.heredoc",
"auto_complete_triggers":
[
    {"characters": "<", "selector": "text.html"},
    {"selector": "text.html.twig, text.html.basic"},
]

If you already have these in your user settings, then just copy the Twig related portions into them.

Snippets

BetterTwig only adds basic snippets for common code blocks. If you want more snippets, then please follow the official documentation on snippets and create your own.

Tab Trigger Twig Code Block
tapply {% apply %}{% endapply %}
tautoescape {% autoescape %}{% endautoescape %}
tblock {% block %}{% endblock %}
tdeprecated {% deprecated %}
tembed {% embed %}{% endembed %}
textends {% extends %}
tfor {% for %}{% endfor %}
tforelse {% for %}{% else %}{% endfor %}
tmacro {% macro %}{% endmacro %}
tsandbox {% sandbox %}{% endsandbox %}
tset {% set %}
tverbatim {% verbatim %}{% endverbatim %}
twith {% with %}{% endwith %}

If you want to ignore the snippets that are provided by default, you can use the ignored_snippets setting.

"ignored_snippets": ["BetterTwig/*"]

Reporting issues.

There is always scope for improvements, so please do report any bug(s) that you encounter.

Please follow the issue template that has been setup while reporting any bug(s) (So as to stay as organised as possible).

Use the Twig playground if you want to share a particular snippet of template while creating a specific issue.

Acknowledgements.

The syntax_test.yml is taken & used (with some modifications) from the official Packages repository. So full credit goes to them for it.

License

The MIT License (MIT)

Copyright 2020-2022 © Ashwin Shenoy

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.