coliff / prettier-plugin-go-template

Fixes prettier formatting for go templates 🐹

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

prettier-plugin-go-template

NPM Badge CodeCov Badge Contributions Badge

Fixes formatting for go template files. The only peer dependency is prettier.

npm install --save-dev prettier prettier-plugin-go-template

The following file types are detected automatically: .gohtml, .gotmpl, .go.tmpl, .tmpl, .tpl, .html.tmpl

GoHugo / .html

To use it with GoHugo and basic .html files, you'll have to override the used parser inside your .prettierrc file:

{
  overrides: [
    {
      files: ["*.html"],
      options: {
        parser: "go-template",
      },
    },
  ],
}

VSCode

Make sure to always have installed both dependencies:

  • prettier
  • prettier-plugin-go-template

Also make sure that they are installed inside the same scope. Install both globally (npm i -g) or locally – otherwise prettier may not pick up the plugin.

Additional Options

// .prettierrc
{
  /**
   * Enables & disables spacing between go statements.
   * E.g. {{ statement }} vs {{statement}}.
   * Default: true
   */
  "goTemplateBracketSpacing": true
}

Ignoring Code

Single Block

<div>
  <!-- prettier-ignore -->
  {{if }}
  {{end }}
</div>

Multiline

<html>
  {{/* prettier-ignore-start */}}
  <script>
    {{if }}
    Whatever.
    {{else }}
    Psych.
    {{end }}
  </script>
  {{/* prettier-ignore-end */}}
</html>

Changelog

v0.0.11

  • AST rewrite
  • Fix inline actions
  • If / Else / Else-If support
  • Ignore formatting for blocks with `{{/* prettier-ignore */}}
  • Ignore large code sections with `{{/* prettier-ignore-start /}}...{{/ prettier-ignore-end */}}
  • Tweak general formatting
  • Support for multiline actions

v0.0.10

  • Resolve bug #19: Fix template comments.

v0.0.9

  • Resolve bug of single line if statements.

v0.0.8

  • Go block statements will now be indented accordingly. Except for else.
    • if, range, block, with, define, end

v0.0.7

  • Fix broken shortcodes. Thanks to @alqu for discovering & fixing the bug.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


alqu

πŸ› ⚠️ πŸ’»

Gabriel Monteagudo

πŸ›

Bryan

πŸ›

Andreas Richter

πŸ›

Noah Brenner

πŸ’» πŸ“–

silverwind

πŸ€”

Charles Pence

πŸ›

This project follows the all-contributors specification. Contributions of any kind welcome!

About

Fixes prettier formatting for go templates 🐹

License:MIT License


Languages

Language:TypeScript 72.3%Language:HTML 27.7%