PHPackages                             pluswerk/typoscript-auto-fixer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. pluswerk/typoscript-auto-fixer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

pluswerk/typoscript-auto-fixer
==============================

Provides an auto fixer based on the TypoScript linter from Martin Helmich

v0.0.1(6y ago)041[1 PRs](https://github.com/pluswerk/typoscript-auto-fixer/pulls)GPL-3.0-or-laterPHPPHP &gt;=7.2.0CI failing

Since Dec 9Pushed 3y ago2 watchersCompare

[ Source](https://github.com/pluswerk/typoscript-auto-fixer)[ Packagist](https://packagist.org/packages/pluswerk/typoscript-auto-fixer)[ RSS](/packages/pluswerk-typoscript-auto-fixer/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

[![Packagist](https://camo.githubusercontent.com/866784ec81e930a9cc1c4052ad462f56fbbe2feed2c41e1e8477e428e054cb53/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f706c75737765726b2f7479706f7363726970742d6175746f2d66697865722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pluswerk/typoscript-auto-fixer)[![Packagist](https://camo.githubusercontent.com/dc1266fdedcebea80d1e2f9ed4a1659fbe1ebb8260b62044e1d2a639ae9ac527/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f706c75737765726b2f7479706f7363726970742d6175746f2d66697865722e7376673f7374796c653d666c61742d737175617265)](https://opensource.org/licenses/LGPL-3.0)[![Build Status](https://camo.githubusercontent.com/2c3886e2eb2f2ad825ab3bd0b682cc826ddcdbacde91e5cd79dcfae26f5d0944/68747470733a2f2f7472617669732d63692e636f6d2f706c75737765726b2f7479706f7363726970742d6175746f2d66697865722e7376673f6272616e63683d6d6173746572)](https://travis-ci.com/pluswerk/typoscript-auto-fixer)[![Coverage Status](https://camo.githubusercontent.com/569c8e1189b4bd350c58d1b30479934b6fe0431831024d911e2f14118e0830e5/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f67682f706c75737765726b2f7479706f7363726970742d6175746f2d66697865722e7376673f7374796c653d666c61742d737175617265)](https://codecov.io/gh/pluswerk/typoscript-auto-fixer)[![Quality Score](https://camo.githubusercontent.com/33f6794451e49292d13a8e73fb6138627be627d617d3c121ebeb8cd360d4f924/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f706c75737765726b2f7479706f7363726970742d6175746f2d66697865722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/pluswerk/typoscript-auto-fixer)

typoscript-auto-fixer
=====================

[](#typoscript-auto-fixer)

This is an auto fixer for TYPO3 TypoScript code style based on [martin-helmich/typo3-typoscript-lint](https://github.com/martin-helmich/typo3-typoscript-lint) of Martin Helmich.

Quick guide
-----------

[](#quick-guide)

### Composer

[](#composer)

`composer require --dev pluswerk/typoscript-auto-fixer`

There is a default configuration, so no configuration must be given.

Usage
-----

[](#usage)

### Basic usage

[](#basic-usage)

```
./vendor/bin/tscsf [options] [file] [file] [...]
```

### Options

[](#options)

OptionDescription-t, --typoscript-linter-configurationUse typoscript-lint.yml file-g, --grumphp-configurationUse grumphp.yml file-c, --configuration-fileFor both options (-t, -g) a different file path can be given.#### Example

[](#example)

```
./vendor/bin/tscsf -g -c another-grumphp.yml some.typoscript other.typoscript
```

Configuration
-------------

[](#configuration)

The fixes are done based on the typoscript linter configuration. Only if a sniffer class is configured the corresponding fixer is executed.

The configuration is the same as [martin-helmich/typo3-typoscript-lint](https://github.com/martin-helmich/typo3-typoscript-lint).

If grumphp is used the configuration is done as here: [pluswerk/grumphp-typoscript-task](https://github.com/pluswerk/grumphp-typoscript-task).

### Fixers exist for following sniffer classes

[](#fixers-exist-for-following-sniffer-classes)

- EmptySection
- OperatorWhitespace
- Indentation
- NestingConsistency

For details see What is fixed section

What is fixed
-------------

[](#what-is-fixed)

### Line breaks

[](#line-breaks)

Multiple empty lines are reduced to one empty line.

#### Example

[](#example-1)

```
foo.bar = value

another.foo = value2

```

**fixed:**

```
foo.bar = value

another.foo = value2

```

### Operator whitespaces (configuration class: OperatorWhitespace)

[](#operator-whitespaces-configuration-class-operatorwhitespace)

#### Example

[](#example-2)

```
foo=bar

```

**fixed:**

```
foo = bar

```

### Indentation (configuration class: Indentation)

[](#indentation-configuration-class-indentation)

Depending on configuration the indentation is fixed. Possible characters:

- spaces
- tabs

Also the amount of characters can be set. See [martin-helmich/typo3-typoscript-lint](https://github.com/martin-helmich/typo3-typoscript-lint) for details.

#### Example

[](#example-3)

- character: space
- indentPerLevel: 2

```
foo {
bar = value
}

```

**fixed:**

```
foo {
  bar = value
}

```

### Empty section (configuration class: EmptySection)

[](#empty-section-configuration-class-emptysection)

Empty sections are removed.

#### Example

[](#example-4)

```
bar = value

foo {
}

another = foo

```

**fixed:**

```
bar = value

another = foo

```

### Nesting consistency (configuration class: NestingConsistency)

[](#nesting-consistency-configuration-class-nestingconsistency)

Nesting consistency is built if paths can be merged in a file. Indentation is used like described above in indentation fixer.

#### Example

[](#example-5)

```
foo {
  bar = value
}

foo.bar2 = value2

foo {
  bar2 {
    nested = nested value
  }
}

```

**fixed:**

```
foo {
  bar = value
  bar2 = value2
  bar2 {
    nested = nested value
  }
}

```

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2397d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/471387?v=4)[Matthias Vogel](/maintainers/Kanti)[@Kanti](https://github.com/Kanti)

![](https://www.gravatar.com/avatar/ce27306c234536251754f00414959671d4a775e9cf57cce2f5ea1dca158183d6?d=identicon)[andersundsehr](/maintainers/andersundsehr)

---

Top Contributors

[![DrWh0286](https://avatars.githubusercontent.com/u/12473862?v=4)](https://github.com/DrWh0286 "DrWh0286 (33 commits)")

---

Tags

TYPO3 CMSTypoScript

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/pluswerk-typoscript-auto-fixer/health.svg)

```
[![Health](https://phpackages.com/badges/pluswerk-typoscript-auto-fixer/health.svg)](https://phpackages.com/packages/pluswerk-typoscript-auto-fixer)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[altis/local-server

Local Server module for Altis

18221.6k3](/packages/altis-local-server)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
