2011-02-03 35 views
1

我目前在自動縮進跨越多行的PHP數組時遇到困難。標準的TextFX> TextFX Edit> Reindent C++代碼在這裏失敗。Notepad ++中的Autoindent PHP數組?

例如,採取下面的代碼片段:

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

運行 「重新縮進C++代碼」,並得到這個:

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

算不上什麼我是後。

有什麼工具我失蹤或插件,可以正確縮進記事本+ +中的PHP數組?

+2

使用Netbeans http://www.netbeans。com – Petah 2011-02-03 03:08:44

+2

這是怎麼一回事呢?很長時間以來,SO問起IDE問題。只要看看記事本++標記。 – TheLQ 2011-02-03 03:38:05

回答

0

您的代碼出現錯誤 - 可能導致錯誤。 Netbeans向我顯示了這個錯誤,然後我修復了它。

嘗試改變這一行:

"nested" = array(

"nested" => array(

,看看記事本++如何處理它。

我爲此使用了netbeans,即使我正在寫另一個應用程序,我也會將其複製並粘貼到netbeans中進行整理。

Netbeans

Netbeans的返回:

<?php 

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

不幸的是,仍然(在本文寫作的時間),記事本+ +不具備比大括號{}塊以外的任何代碼縮進格式支持,在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; 
    } 
} 

這有額外的好處,允許您摺疊腳本的任意塊。

不幸的是,正如你發現的,方格[]和回合()括號不被格式化程序識別,並且數組對於大括號換行不是語法上有效的情況。

簡答題;對不起,我也試過了,你需要找/寫一個插件(我沒有;我只是住它