akalongman / akalongman/sublimetext-codeformatter
Wrong indents with multilevel switch
- Dominant language
- Python
- Stars
- 772
- Forks
- 128
- PR merge metrics
- No merged PRs in 30d
Description
Hi, there is something wrong with indentation when using multiple levels of switch clauses.
Current formatting is:
```
switch ($s)
{
case 'a':
if ($y)
{
echo 'y';
}
switch ($b)
{
case 'ab':
if ($x)
{ <-- this
}
switch ($c)
{ <-- this
case 'aba':
if ($z)
{ <-- this
echo 'z';
}
break;
}
break;
}
if ($y)
{ <-- this
echo 'y';
}
break;
case 'b':
if ($y)
{
echo '';
}
break;
}
```
It should be:
```
switch ($s)
{
case 'a':
if ($y)
{
echo 'y';
}
switch ($b)
{
case 'ab':
if ($x)
{ <-- this
}
switch ($c)
{ <-- this
case 'aba':
if ($z)
{ <-- this
echo 'z';
}
break;
}
break;
}
if ($y)
{ <-- this
echo 'y';
}
break;
case 'b':
if ($y)
{
echo '';
}
break;
}
```
My settings are:
```
"codeformatter_php_options": {
"syntaxes": "php", // Syntax names which must process PHP formatter
"php_path": "C:/Program Files/Programming/PHP/php.exe", // Path for PHP executable, e.g. "/usr/lib/php" or "C:/Program Files/PHP/php.exe". If empty, uses command "php" from system environments
"format_on_save": false, // Format on save
"php55_compat": false, // PHP 5.5 compatible mode
"psr1": false, // Activate PSR1 style
"psr1_naming": false, // Activate PSR1 style - Section 3 and 4.3 - Class and method names case
"psr2": true, // Activate PSR2 style
"indent_with_space": 4, // Use spaces instead of tabs for indentation
"enable_auto_align": false, // Enable auto align of = and =>
"visibility_order": true, // Fixes visibility order for method in classes - PSR-2 4.2
"smart_linebreak_after_curly": true, // Convert multistatement blocks into multiline blocks
"yoda": true,
// Enable specific transformations. Example: ["ConvertOpenTagWithEcho", "PrettyPrintDocBlocks"]
// You can list all available transformations from command palette: CodeFormatter: Show PHP Transformations
"passes": ["AllmanStyleBraces", "AutoSemicolon", "IndentTernaryConditions", "OrderAndRemoveUseClauses", "ReindentSwitchBlocks", "StripSpaceWithinControlStructures"],
// Disable specific transformations
"exclude": []
},
```
Contributor guide
Assessment
This issue has not been assessed yet.