2012-10-28 14 views
6

mogę ustawić preferowaną tablicy initializer wcięcia Preferencje> PHP> Code Style> Fromatter> Linia pakowania, ale podczas pisania inicjatorów tablicy wcięcie jest źle:Niewłaściwy tablica initializer wcięcie podczas pisania PHP w Eclipse

$arr = array([ENTER] 
····[CURSOR]) 

podczas I "Oczekuję:

$arr = array([ENTER] 
··[CURSOR] 
) 

jak to się dzieje przy edycji kodu JavaScript. Zauważ, że nieprawidłowe wcięcie występuje tylko podczas pisania, podczas gdy jawny CTRL + SHIFT + F inicjuje inicjały tablic poprawnie. (Więc nie duplikat wielu innych pytań z pytaniem, jak ustawić wcięcie, ponieważ tutaj wcięcie jest ustawione, ale nie jest stosowane podczas pisania.)

Jak mogę uzyskać prawidłowe wcięcie podczas wpisywania inicjalizatorów macierzy?

Odpowiedz

2

Spróbuj ustawić zasady wcięcia do Indent by one (zamiast Default Indentation) dla Method Declarations -> parameters

+0

To nie działa. Wygląda na to, że reguły formatujące PHP nie wpływają na wcięcie na żywo (przynajmniej dla inicjatorów tablic). –

+0

@Heruan Wypróbuj za pomocą narzędzia Formatter -> Tab policy = Spaces and Indentation Size = 1 – Pigueiras

+0

Spowoduje to ustawienie wcięcia o 1 pole i nie jest to tym, czego chcę. Sądzę, że Eclipse PDT w jakiś sposób zakodowała podwójne wcięcie dla inicjalizatorów tablic, które nie mogą być przeciążone przez wtyczkę formatującą. –

2

w Eclipse Juno, spróbuj z PHP -> Code Style -> Formatowanie -> Default wcięcie dla intializers Array = 1. To działa na mnie .

3

Moje ustawienia na Zend Eclipse dla programistów PHP, pod PHP>Code Style>Formatter:

  • Indentation>Tab policy>Spaces
  • Indentation>Indentation size>2
  • Indentation>Tab size>2
  • Indentation>Default indentation for array initializers>2
  • Line Wrapping>Expressions>Array initializers>Indentation policy>Indent by one
+1

jedno z nich pomogło, aby działało. Prawdopodobnie flaga z wcięciami. Musiałem zrestartować Eclipse. Nie działało bez niego. – MonkeyMonkey

+0

Świetne, to samo z standardem kodowania Drupal –

2

W moim przypadku systemu Windows, konieczne jest ponowne uruchomienie Eclipse, aby zastosować zmiany tego ustawienia:

PHP > Code Style > Formatter > Default indentation for array intializers

na innych instancje nie są wymagane. Nie mam pojęcia dlaczego.