akalongman / akalongman/sublimetext-codeformatter

Wrong indents with multilevel switch

未關閉
#329 4 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
772
分支
128
PR 合併指標
30 天內沒有已合併 PR

描述

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

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。