akalongman / akalongman/sublimetext-codeformatter

Wrong indents with multilevel switch

Aperta
#329 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
772
Fork
128
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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": []
},
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.