7

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?

6
  • 7
    +1 : I've got exactly the same problem -- I indend the same way you do, and have never found a solution :-( Commented Aug 27, 2009 at 5:27
  • Just an idea: what happens if you surround this with brackets? {$a = array( ... );} Commented Aug 27, 2009 at 6:10
  • The same thing, no proper indentation. Commented Aug 27, 2009 at 6:24
  • Have you looked through the code formatting settings in the configuration windows? I found them to be relatively detailed. If the setting is not there, I would file it as a bug. Commented Aug 31, 2009 at 6:11
  • Yep, I've looked. There are no such thing, it realy looks like a bug. Commented Sep 1, 2009 at 7:56

7 Answers 7

3

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

Sign up to request clarification or add additional context in comments.

Comments

1

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.

1 Comment

nice feature, left my vote, but I don't think that it'll be included because it's one of the primary features of Zend Studio.
1

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.

Comments

0

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?

2 Comments

Strangely, I just opened up Flex Builder (also eclipse) and tested this and it works as expected. Something specific to Zend Studio? Maybe ask their support.
It looks like a PHP-bug (i.e. PDT, and Zend Studio is based on PDT).
0

@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.

Comments

0

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.

Comments

0

Try

Window->Preferences
PHP->Code Style->Formatter
Indentation->Dafault Indentation for array initializers = 1

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.