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 摘要。