Wrong indents with multilevel switch
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": []
},
@SylwesterZarebski, because you should remove "AllmanStyleBraces" from passes and use open bracket on the same line. Or have you solved this problem another way?
I cannot remove AllmanStyleBraces because it change whole formatting and i do not want open bracket on the same line. I did not solve the problem and more often use another editor which has better formatting tools.
@SylwesterZarebski, can you tell me what editor do you use?
I'm mostly back to Netbeans, but i'm also trying to customize VSCode addons to have the same effect.