【问题标题】:Autoindent PHP Array in Notepad++?Notepad ++中的自动缩进PHP数组?
【发布时间】:2011-06-20 10:00:21
【问题描述】:

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

例如取如下代码sn-p:

<?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 数组的工具或插件?

【问题讨论】:

  • 使用 Netbeans netbeans.com
  • 这到底是怎么回事? IDE 问题长期以来一直被问到 SO。看看notepad++标签就行了。
  • @Petah 虽然我喜欢 Netbeans,但很多时候我需要一些更轻的东西。
  • 您要使用哪种格式?就像在你的代码 sn-p 中一样,或者...?
  • @bob-the-destroyer 我在让 Np++ 正确缩进这段代码 sn-p 之后(第一个实际上是我所追求的,但 Np++ 像第二个一样重新格式化它)。问题在于大型 PHP 文件中的所有缩进都正确,除了这个,阻止我一直使用它。

标签: php notepad++


【解决方案1】:

您的代码中有一个错误 - 这可能是导致它的原因。 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",
);
?>

【讨论】:

  • 这更像是一个示例而不是实际代码。但我确实做了改变,没有区别。正如我对@Petah 所说,我大部分时间都使用 Np++,因为我需要更轻的东西。
  • 它更轻的原因可能是它没有强大的代码格式化程序。我的大部分开发都使用 Coda,它有一个可怕的格式化插件。
【解决方案2】:

不幸的是,除了大括号 {} 块之外,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;
    }
}

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

不幸的是,正如您发现的那样,方括号 [] 和圆括号 () 无法被格式化程序识别,并且数组在语法上不是花括号换行的有效案例。

简短的回答是;抱歉,我也试过了,你需要找到/编写一个插件(我没有;我只是忍受它

【讨论】:

    猜你喜欢
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2011-12-13
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多