.. | ||
lib | ||
LICENSE | ||
package.json | ||
README.md |
prettier-plugin-go-template
Formatter plugin for go template files. The only peer dependency is prettier. Test you own code on the playground.
npm install --save-dev prettier prettier-plugin-go-template
The following file types are detected automatically:
.gohtml
, .gotmpl
, .go.tmpl
, .tmpl
, .tpl
, .html.tmpl
Input | Output |
---|---|
|
|
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.
Note: The global setup additional requires setting your VSCode prettier path to your global prettier path. You can read in this issue how to set it up – should be doable in less than a minute if you have npm & VSCode already running.
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.12
- Fix several formatting issues
- Improve unformattable script & style detection
- Huge thanks to @jasikpark for validating & cleaning up the issues 🎉
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 🐛 |
Caleb Jasik 🐛 📖 💡 🤔 🚧 💬 |
Dan Gold 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!