This extension adds support for formatting and indenting openHAB files like *.items
, *.sitemap
, etc. At the moment only *.items
and *.sitemap
files are supported. They can be formatted in a column channel-column or multiline style. In the future the other file types
and other format-types will be added. Feel free to add feature-requests on the github repository.
If you've found the extension helpful or useful, then please consider throwing a coffee my way to help support my work. As i am a student and would like to invest more time and effort in this project this would really help me.
The tool is available as a standard Visual-Studio-Code formatter as it uses the original vsc formatter API. You can force to formatting with right-clicking the document and clicking Format Document...
or Format Selection...
. If you have enabled the function in the vsc settings it even can
Format-On-Save
.
Column-Style:
Column-Channel-Style:
Multiline-Style:
Sitemap-Formatting:
With the new version (v2) of this extension there are introduced new Special Comment Tags you can use in your `.items file code, to change the way the extension is formatting your code.
New Group Tag
// #OHNG#
With this tag you can start a new formatting group for an item section. The tracking of the longest item parts is resetted and will be set to the longest item part in the new group. The following image shows an example of a formatting group:
New Formatting Style
// #OHFS#%FORMATTING_STYLE%#OHFS#
With this tag you can change the formatting of the following item definitions from the default formatting style selected in the VSC settings to a new style inserted in %FORMATTING_STYLE%
. So just replace %FORMATTING_STYLE%
with Column
, ChannelColumn
or Multiline
. The following image shows
an example of a Multiline formatted part in a ChannelColumn document:
The formatting is available for the following openhab file types:
.items
(Fully functional).sitemap
(Under development).things
(Under development)
With this option you can choose if you want to have a new line inserted after each item. If there is already a single empty line after an item this settings is ignored.
"oh-alignment-tool.newLineAfterItem": true
Whitespaces (tabs or spaces) in front of items get preserved and won't be deleted.
"oh-alignment-tool.preserveWhitespace": true
With this option you can control the amount of indent when using the Multiline format.
"oh-alignment-tool.multilineIndentAmount": 28
The format style option gives you two styles between you can choose.
- Column
- ChannelColumn
- Multiline
The Column style formats the files in a column-way. Each item will be on one line and the item parts are separated in columns. With the ChannelColumn style only the channel part of an item gets formatted into multiple lines. The Multiline format prints every part of an item in a new line and indents the different parts.
See Github Issues file for the details.
See CHANGELOG.md file for the details.
Enjoy!