Skip to content

This extension adds support for formatting and indenting openHAB files. At the moment only the item-files are supported.

License

Notifications You must be signed in to change notification settings

hkalle/openHAB-Alignment-Tool

 
 

Repository files navigation



Build Status Visual Studio Marketplace Installs Visual Studio Marketplace Version Visual Studio Marketplace Version

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.

Features

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.

Item-Formatting:

Column-Style:

formatting item gif

Column-Channel-Style:

formatting item gif

Multiline-Style:

formatting item gif

Sitemap-Formatting:

formatting sitemap gif

Special Comment Tags

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 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:

new formatting style

Limitations

The formatting is available for the following openhab file types:

  • .items (Fully functional)
  • .sitemap (Under development)
  • .things (Under development)

Extension Settings

New Line After Item

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

Preserve Whitespace

Whitespaces (tabs or spaces) in front of items get preserved and won't be deleted.

"oh-alignment-tool.preserveWhitespace": true

Multiline Indent Amount

With this option you can control the amount of indent when using the Multiline format.

"oh-alignment-tool.multilineIndentAmount": 28

Format Style

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.

Known Issues

See Github Issues file for the details.

Release Notes

See CHANGELOG.md file for the details.


For More Information

Enjoy!

About

This extension adds support for formatting and indenting openHAB files. At the moment only the item-files are supported.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 79.7%
  • CSS 16.7%
  • HTML 3.6%