Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
ko_fi: maxbec
custom: ["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=58GE7PE2EAQAY&source=url"]
github: mannemiethe
custom:
- "https://www.buymeacoffee.com/mannemiethe"
- "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=58GE7PE2EAQAY&source=url" # Original developer: Maximilian Beckenbauer
3 changes: 3 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ client/node_modules/**
!client/node_modules/vscode-languageclient/**
!client/node_modules/vscode-languageserver-protocol/**
!client/node_modules/vscode-languageserver-types/**
**/node_modules/*
!**/node_modules/semver
!**/node_modules/semver/**
24 changes: 22 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
# openHAB Alignment Tool Change Log
# openHAB Config Aligner 2026 Change Log

All notable changes to the openHAB Alignment Tool extension will be documented in this file.
## [2.1.10] - 01.05.2026

- Moved support and original-author credit links to the top of the Marketplace README overview.
- Added extension sponsor metadata pointing to Manuel Miethe's Buy Me a Coffee page.


## [2.1.9] - 01.05.2026

- Updated Marketplace package identity to `ManuelMiethe.openhab-config-aligner-2026`.
- Renamed install-facing settings and command IDs to `openhab-config-aligner-2026.*`.
- Added README notes for the maintained fork, fixed formatting bugs, and support links.


## [2.1.8] - 01.05.2026

- First community-maintained release after the original project went quiet in 2021.
- Continued the upstream package version from `2.1.7` to `2.1.8` instead of resetting to a year-based version.
- Renamed extension package to `openhab-config-aligner-2026` / display name `openHAB Config Aligner 2026` to avoid colliding with the unmaintained original Marketplace listing.


All notable changes to the openHAB Config Aligner 2026 extension will be documented in this file.

## [2.1.6] - 30.04.2021

Expand Down
37 changes: 24 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
<div align="center">
<img width="400" src="https://raw.githubusercontent.com/MaxBec/openHAB-Alignment-Tool/master/images/logo_text.png">
<img width="400" src="https://raw.githubusercontent.com/mannemiethe/openHAB-Alignment-Tool/master/images/logo_text.png">
</div>
<br></br>

[![Build Status](https://maxbec.visualstudio.com/openHAB%20Alignment%20Tool/_apis/build/status/MaxBec.openHAB-Alignment-Tool?branchName=master)](https://maxbec.visualstudio.com/openHAB%20Alignment%20Tool/_build/latest?definitionId=1&branchName=master)
[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/max-beckenbauer.oh-alignment-tool?color=blue&label=Installs&logo=visual-studio-code)](https://img.shields.io/visual-studio-marketplace/i/max-beckenbauer.oh-alignment-tool?color=blue&label=Installs&logo=visual-studio-code)
[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/max-beckenbauer.oh-alignment-tool?color=orange&label=Version)](https://img.shields.io/visual-studio-marketplace/v/max-beckenbauer.oh-alignment-tool?color=orange)
[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/stars/max-beckenbauer.oh-alignment-tool?label=Rating&logo=visual-studio-code)](https://img.shields.io/visual-studio-marketplace/stars/max-beckenbauer.oh-alignment-tool?label=Rating&logo=visual-studio-code)
[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/ManuelMiethe.openhab-config-aligner-2026?color=blue&label=Installs&logo=visual-studio-code)](https://img.shields.io/visual-studio-marketplace/i/ManuelMiethe.openhab-config-aligner-2026?color=blue&label=Installs&logo=visual-studio-code)
[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/ManuelMiethe.openhab-config-aligner-2026?color=orange&label=Version)](https://img.shields.io/visual-studio-marketplace/v/ManuelMiethe.openhab-config-aligner-2026?color=orange)
[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/stars/ManuelMiethe.openhab-config-aligner-2026?label=Rating&logo=visual-studio-code)](https://img.shields.io/visual-studio-marketplace/stars/ManuelMiethe.openhab-config-aligner-2026?label=Rating&logo=visual-studio-code)

## Support & Credits

If this maintained fork helps you, please consider supporting the ongoing maintenance:

- ☕ [Buy Manuel Miethe a coffee](https://www.buymeacoffee.com/mannemiethe)

This extension is a maintained community fork of the original openHAB Alignment Tool by Maximilian Beckenbauer.
If you want to thank the original developer as well:

- 💙 [PayPal donation for Maximilian Beckenbauer, the original developer](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=58GE7PE2EAQAY&source=url)


This extension adds support for formatting and indenting [openHAB](http://www.openhab.org) 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.
## Maintained Fork / Fixed Bug

This 2026 maintained fork includes the upstream fixes and adds a fix for item channel binding configurations where curly braces inside quoted strings could break formatting. Example affected cases are channel parameters that contain JSON-like values or text with `{...}` inside quotes.

- [Ko-Fi Donation to MaxBec](https://ko-fi.com/C0C01XTXB)
- [PayPal Donation](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=58GE7PE2EAQAY&source=url)
It also corrects space-based column padding when `editor.insertSpaces` is enabled, so aligned columns stay consistent with the configured tab size.

## Features

Expand Down Expand Up @@ -75,19 +86,19 @@ The formatting is available for the following openhab file types:

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`
`"openhab-config-aligner-2026.newLineAfterItem": true`

### Preserve Whitespace

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

`"oh-alignment-tool.preserveWhitespace": true`
`"openhab-config-aligner-2026.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`
`"openhab-config-aligner-2026.multilineIndentAmount": 28`

### Format Style

Expand All @@ -102,11 +113,11 @@ the different parts.

## Known Issues

See [Github Issues](https://github.com/MaxBec/openHAB-Alignment-Tool/issues) file for the details.
See [Github Issues](https://github.com/mannemiethe/openHAB-Alignment-Tool/issues) file for the details.

## Release Notes

See [CHANGELOG.md](https://github.com/MaxBec/openHAB-Alignment-Tool/blob/master/CHANGELOG.md) file for the details.
See [CHANGELOG.md](https://github.com/mannemiethe/openHAB-Alignment-Tool/blob/master/CHANGELOG.md) file for the details.

---

Expand Down
16 changes: 8 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

75 changes: 42 additions & 33 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "oh-alignment-tool",
"displayName": "openHAB Alignment Tool",
"version": "2.1.6",
"publisher": "max-beckenbauer",
"name": "openhab-config-aligner-2026",
"displayName": "openHAB Config Aligner 2026",
"version": "2.1.10",
"publisher": "ManuelMiethe",
"contributors": [
"Manuel Miethe",
"Mark Hilbush"
],
"description": "Tool to format and indent openHAB files. At the moment only item and sitemap files can be formatted.",
"description": "Community-maintained config alignment and formatting tool for openHAB item and sitemap files.",
"author": {
"name": "Maximilian Beckenbauer",
"email": "max.bec92@gmail.com",
"url": "https://github.com/MaxBec/openHAB-Alignment-Tool"
"name": "Manuel Miethe",
"url": "https://github.com/mannemiethe"
},
"categories": [
"Other",
Expand All @@ -19,12 +19,11 @@
],
"icon": "images/logo.png",
"repository": {
"url": "https://github.com/MaxBec/openHAB-Alignment-Tool",
"url": "https://github.com/mannemiethe/openHAB-Alignment-Tool",
"type": "git"
},
"bugs": {
"url": "https://github.com/MaxBec/openHAB-Alignment-Tool/issues",
"email": "max.bec92@gmail.com"
"url": "https://github.com/mannemiethe/openHAB-Alignment-Tool/issues"
},
"engines": {
"vscode": "^1.55.0"
Expand All @@ -37,60 +36,60 @@
"contributes": {
"commands": [
{
"command": "extension.insert-item-generic",
"category": "openHAB Alignment",
"command": "openhab-config-aligner-2026.insert-item-generic",
"category": "openHAB Config Aligner",
"title": "Insert Item"
},
{
"command": "extension.insert-item-switch",
"category": "openHAB Alignment",
"command": "openhab-config-aligner-2026.insert-item-switch",
"category": "openHAB Config Aligner",
"title": "Insert Switch Item"
},
{
"command": "extension.insert-item-dimmer",
"category": "openHAB Alignment",
"command": "openhab-config-aligner-2026.insert-item-dimmer",
"category": "openHAB Config Aligner",
"title": "Insert Dimmer Item"
},
{
"command": "extension.insert-item-string",
"category": "openHAB Alignment",
"command": "openhab-config-aligner-2026.insert-item-string",
"category": "openHAB Config Aligner",
"title": "Insert String Item"
},
{
"command": "extension.insert-item-number",
"category": "openHAB Alignment",
"command": "openhab-config-aligner-2026.insert-item-number",
"category": "openHAB Config Aligner",
"title": "Insert Number Item"
},
{
"command": "extension.insert-item-datetime",
"category": "openHAB Alignment",
"command": "openhab-config-aligner-2026.insert-item-datetime",
"category": "openHAB Config Aligner",
"title": "Insert DateTime Item"
},
{
"command": "extension.whatsNew",
"command": "openhab-config-aligner-2026.whatsNew",
"title": "%extension.commands.whatsNew.title%",
"category": "%extension.commands.category.bookmarks%"
},
{
"command": "_extension.whatsNewContextMenu",
"command": "_openhab-config-aligner-2026.whatsNewContextMenu",
"title": "%extension.commands.whatsNewContextMenu.title%"
}
],
"configuration": {
"type": "object",
"title": "openHAB Alignment Tool",
"title": "openHAB Config Aligner 2026",
"properties": {
"oh-alignment-tool.preserveWhitespace": {
"openhab-config-aligner-2026.preserveWhitespace": {
"type": "boolean",
"default": false,
"description": "Preserves any leading whitespace when reformatting an item."
},
"oh-alignment-tool.newLineAfterItem": {
"openhab-config-aligner-2026.newLineAfterItem": {
"type": "boolean",
"default": false,
"description": "Choose if you want to have a new line inserted after each item."
},
"oh-alignment-tool.formatStyle": {
"openhab-config-aligner-2026.formatStyle": {
"type": "string",
"default": "Column",
"enum": [
Expand All @@ -104,12 +103,12 @@
"Formats the files in a multiline-style. E.g. in an items file each part of an item is written in a new line."
]
},
"oh-alignment-tool.minimumIndentAmount": {
"openhab-config-aligner-2026.minimumIndentAmount": {
"type": "number",
"default": 4,
"description": "Minimum separation of thing or item parts."
},
"oh-alignment-tool.enableBetaFeatures": {
"openhab-config-aligner-2026.enableBetaFeatures": {
"type": "boolean",
"default": false,
"description": "Enable beta features like sitemap formatting or thing file formatting."
Expand All @@ -125,7 +124,6 @@
"test": "node ./out/test/runTest.js"
},
"dependencies": {
"@types/semver": "^7.3.4",
"semver": "^7.3.5"
},
"devDependencies": {
Expand All @@ -136,9 +134,20 @@
"@types/vscode": "^1.55.0",
"glob": "^7.1.6",
"mocha": "^8.3.2",
"semver": "^7.3.5",
"tslint": "^5.20.1",
"typescript": "^4.2.4",
"vscode-test": "^1.5.2"
},
"homepage": "https://github.com/mannemiethe/openHAB-Alignment-Tool#readme",
"keywords": [
"openHAB",
"formatter",
"alignment",
"items",
"sitemap",
"config"
],
"sponsor": {
"url": "https://www.buymeacoffee.com/mannemiethe"
}
}
36 changes: 29 additions & 7 deletions src/contentProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class BookmarksContentProvider implements ContentProvider {
public provideHeader(logoUrl: string): Header {
return <Header>{
logo: <Image>{ src: logoUrl, height: 50, width: 40 },
message: `<b>openHAB Alignment Tool</b> This extension adds support for formatting and indenting <a href="http://www.openhab.org)">openHAB</a>
message: `<b>openHAB Config Aligner 2026</b> This extension adds support for formatting and indenting <a href="http://www.openhab.org)">openHAB</a>
files like <code>*.items</code>, <code>*.sitemap</code>, etc. At the moment only
<code>*.items</code> and <code>*.sitemap</code> 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.
Expand All @@ -21,6 +21,28 @@ export class BookmarksContentProvider implements ContentProvider {
public provideChangeLog(): ChangeLogItem[] {
const changeLog: ChangeLogItem[] = [];

changeLog.push({ kind: ChangeLogKind.VERSION, detail: { releaseNumber: "2.1.9", releaseDate: "May 2026" } });
changeLog.push({
kind: ChangeLogKind.FIXED,
detail: "Fixed formatting for item channel binding configurations where curly braces inside quoted strings could break alignment.",
});
changeLog.push({
kind: ChangeLogKind.FIXED,
detail: "Fixed space-based column padding when editor.insertSpaces is enabled, keeping aligned columns consistent with the configured tab size.",
});
changeLog.push({
kind: ChangeLogKind.CHANGED,
detail: "This maintained fork is published as openHAB Config Aligner 2026 under ManuelMiethe.openhab-config-aligner-2026.",
});
changeLog.push({
kind: ChangeLogKind.CHANGED,
detail: "Support ongoing maintenance: Buy Manuel Miethe a coffee at https://www.buymeacoffee.com/mannemiethe",
});
changeLog.push({
kind: ChangeLogKind.CHANGED,
detail: "Original developer support: PayPal donation for Maximilian Beckenbauer is still linked in the README and support section.",
});

changeLog.push({ kind: ChangeLogKind.VERSION, detail: { releaseNumber: "2.1.0", releaseDate: "April 2021" } });
changeLog.push({
kind: ChangeLogKind.FIXED,
Expand Down Expand Up @@ -63,14 +85,14 @@ export class BookmarksContentProvider implements ContentProvider {
public provideSupportChannels(): SupportChannel[] {
const supportChannels: SupportChannel[] = [];
supportChannels.push({
title: "Get me a coffee on Ko-Fi",
link: "https://ko-fi.com/C0C01XTXB",
message: "Buy me a coffe :)",
title: "Buy Manuel Miethe a coffee",
link: "https://www.buymeacoffee.com/mannemiethe",
message: "Support ongoing maintenance",
});
supportChannels.push({
title: "Donate via PayPal",
title: "PayPal donation for the original developer",
link: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=58GE7PE2EAQAY&source=url",
message: "Donate via PayPal",
message: "Support Maximilian Beckenbauer, the original developer",
});
return supportChannels;
}
Expand Down Expand Up @@ -122,7 +144,7 @@ export class BookmarksSocialMediaProvider implements SocialMediaProvider {
return [
{
title: "Follow me on GitHub",
link: "https://github.com/MaxBec",
link: "https://github.com/mannemiethe",
},
];
}
Expand Down
Loading