问题
I'm using the following style of array initialization in the code:
$a = array(
'one' => 123,
'two' => 456
);
But PDT/Zend Studio doesn't work properly in this case; after pressing [Return] key it places cursor under the $a (in my example) and ignores indentation. If array keys are numbers (at least not start with quotation marks) everything is working fine.
This is how it works currently (| — is a position where edtitor places caret after pressing [Return])
$a = array(
'one' => 123,[RETURN]
|
);
This is expected result:
$a = array(
'one' => 123,[RETURN]
|
);
So is it possible to force editor follow my indentation rules?
回答1:
I had recently exactly the same issue. I solved it in the Zend Studio (Eclipse based IDE) by going to
Preferences -> PHP -> Code Style -> Formatter
and then choose edit on the screen next to the fortmatter preset name. In the opened window go to the Line Wrapping tab and in the list choose
Expressions -> Array Initializers
.
Play with the settings to your likings.
Regards
Lukas
回答2:
I suggest you to create a account in the bugzilla tracklist, and voting for the following feature:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=320130
If there is enough people, they probably integrate such functionalities in further version of PDT.
回答3:
In ZendStudio you can apply the PhpCodeFormatter using Ctrl+Shift+F.
The formatter can be configured in window->preferences->PHP->Code Style->Formatter (Zend Studio 7.0) to Reformat arrays as described above.
PDT, (as far as i know) does not have this function.
回答4:
I'm not sure about Eclipse, but I had the same problem in TextMate. I switched to soft tabs (aka 4 spaces) instead of tabs and it now acts as "expected." Does ZendStudio have that option?
回答5:
@MGriesbach:Actually PDT(Eclipse) does have this function (under Source->Format)
@Sergei: Eclipse doesn't have this problem, but this sounds like something is wrong with your config. Are you sure you looked through all the options? You may also send an email to the Zend team, this sounds like a pretty trivial bug on heir side, as it encourages developers to write code not indented correctly.
-- edit--
My bad, Eclipse PDT does have this problem but i just got used to it:) The problem dissapears if i press tab, so it will indent the first line. The other lines will follow correctly.
回答6:
No, that's Eclipse bug.
I've faced it using ALL the Eclipse text editors (SQL, XML, YML, ShellEd, and o on).
However, it happens only to my Eclipse installation for Linux (Kubuntu Karmic) on x86_64. I've tested it on i386 Karmic at my work and it works fine.
回答7:
Try
Window->Preferences
PHP->Code Style->Formatter
Indentation->Dafault Indentation for array initializers = 1
来源:https://stackoverflow.com/questions/1338957/proper-indentation-in-array-initialization-pdt-zend-studio