Notepad ++中的Autoindent PHP数组?

时间:2011-02-03 03:05:33

标签: php notepad++

我目前在使用跨多行的自动缩进PHP数组时遇到困难。标准TextFX> TextFX编辑> Reindent C ++ Code在这里失败了。

例如,请使用以下代码段:

<?php
$something = array(
    "test" => $var,
    "nested" => array(
        "subnest" = array(
            "low" => "yes",
            "foo" => "bar",
            ),
        "bar" => "baz",
        ),
    "last" => "yes",
    );

运行“Reindent C ++ Code”并获取:

<?php
$something = array(
"test" => $var,
"nested" => array(
"subnest" = array(
"low" => "yes",
"foo" => "bar",
),
"bar" => "baz",
),
"last" => "yes",
);

不是我真正想要的。

我是否缺少任何可以在Notepad ++中正确缩进PHP数组的工具或插件?

2 个答案:

答案 0 :(得分:1)

不幸的是,仍然(在撰写本文时)Notepad ++不支持除大括号{}块之外的任何代码缩进格式,PHP和大多数其他语言它支持。

switch是另一个:

switch ($value) {
    case 1:
        foo();
        break;
    case 2:
        bar();
        break;
    case 3:
        qux();
        break;
}

变为:

switch ($value) {
    case 1:
    foo();
    break;
    case 2:
    bar();
    break;
    case 3:
    qux();
    break;
}

我发现的解决方案(至少使用PHP )是使用花括号进行格式化,因为它们在语法上有效,但不会更改程序结构:

switch ($value) {
    case 1: {
        foo();
        break;
    }
    case 2: {
        bar();
        break;
    }
    case 3: {
        qux();
        break;
    }
}

这有额外的好处,允许您对脚本的任意块进行代码折叠。

不幸的是,正如您所发现的那样,格式化程序无法识别方括号[]和方括号(),并且数组不会是大括号包装的语法有效案例。

答案简短;对不起,我也尝试了很多,你需要找/写一个插件(我没有;我只是和它一起生活

答案 1 :(得分:0)

您的代码中存在错误 - 可能导致错误。 Netbeans向我展示了这个错误,然后我修复了它。

尝试更改此行:

"nested" = array(

"nested" => array(

并了解Notepad ++如何处理它。

我使用了netbeans,即使我在另一个应用程序中编写,我也会将其复制并粘贴到netbeans上以便整理它。

Netbeans

Netbeans回归:

<?php

$something = array(
    "test" => $var,
    "nested" => array(
        "subnest" => array(
            "low" => "yes",
            "foo" => "bar",
        ), "bar" => "baz",),
    "last" => "yes",
);
?>