2013-03-01 12 views
5

Mam problem z zaszyfrowaniem mojego skryptu JavaScript. W tym pierwszym przykładzie, to zachowuje się zgodnie z oczekiwaniami (nie długość drugiego URL):Szalony program do formatowania JavaScript Eclipse (zbyt dużo wyściółek)

Behaving good

Ilekroć mam dłuższą url, zaćmienie szaleje formatowania mojego kodu i uzyskać dodatkową wyściółkę wszędzie, podobnie jak Przykład poniżej:

Behaving bad

Dlaczego formater JavaScript zachowuje się w ten sposób, i jak to naprawić?

(Tylko w przypadku: Nie zainstalowano dowolny plugin formater, po prostu korzystać z domyślnego, że pochodzi z Eclipse Juno)

+0

Nie umieszczaj długich adresów URL w środku swoich funkcji. Określ je gdzie indziej. –

+0

Już o tym myślałem, ale naprawdę nie chcę mieć wielu zmiennych łańcuchowych. Wiem, że mógłbym stworzyć obiekt JSON, ale wciąż tak duża platforma jak Eclipse nie powinna zachowywać się w ten sposób. – Twinone

+0

Nie trzeba hackować! Spójrz na moją odpowiedź. –

Odpowiedz

10

Długa url w przykładzie wpływa "$ .ajax (..." i "$ (function() ...".

chodzi o "$ (function() ...", to ustawienie jest w Preferences/JavaScript/Style kodu/Formatter/Line Owijanie/Wywołania funkcji/Argumenty. "Nie owijaj" jest dostępny

Co do "$ .ajax (...", jest podobny do "Kwalifikowanego wywołanie 'w formaterie Java. (Preferencje/Java/Styl kodu/Formatter/Zawijanie wiersza/Wywołania funkcji) Niestety, JSDT nie ma w tym celu interfejsu użytkownika (Preferencje/JavaScript/Styl kodu/Formatowanie/Zawijanie wiersza/Wywołania funkcji)

To jest sztuczka dla JSD T 1.4.1 (WTP R3.4.1).

  1. start Eclipse
  2. Otwórz Preferencje/JavaScript/Kod Styl/formater
  3. Kliknij 'nowy'
  4. Wejście nazwa profilu, jak chcesz, wybierz 'Eclipse [Built-in]' (lub Konwencje JavaScript) w polu listy, odznacz „Otwórz okno dialogowe edycji teraz” (nie ma potrzeby edycji), a następnie kliknij „OK”
  5. Zamknij preferencje i zjazd Eclipse
  6. Otwórz następujący plik w edytorze tekstowym
    workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.core.prefs
  7. Wyszukiwanie po linii i zastąpić 16 do 0
    org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
  8. Zapisz to
  9. start Eclipse

(skoro masz swój własny profil, może 1-5 są zbędne)

Ten hack zostanie przywrócony, gdy edytujesz ustawienia formatera w preferencjach. - (Aby zapobiec nadpisywaniu, wszystko, co musisz zrobić, to wyeksportować profil formatyzatora, edytować plik XML i zmienić "org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" na 0. Zapisz i ponownie importuj ponownie. stałe.

I nie sądzę, że to zaspokaja swoje potrzeby, to lepiej użyć innego formatowania (plugin 3rd party), tak myślę.

+0

Nie trzeba hackować. [Zobacz moją odpowiedź] (http://stackoverflow.com/a/16187151/636561). –

1

Znalazłem tymczasowe rozwiązanie:

  1. Go do Window -> Preferences -> JavaScript -> Code Style -> Formatter

  2. Ustaw aktywny profil na konwencje JavaScript.

  3. Kliknij Edit

  4. W zakładce Indentation ustawić tylkoTab policy do przestrzeniach.

  5. Ustaw oba Indentation size i Tab size na .

  6. Ponieważ nie można przesłonić domyślnych profili, zmień nazwę profilu i zapisz.

  7. Prasa Ctrl + Przesunięcie + F i cieszyć się.

UWAGA: Nie lubię mający 3 spacje, wolałbym wolę moje stare dobre 4 spacje, ale jest to rozwiązanie tymczasowe, aż ktoś znajdzie lepszy sposób na rozwiązanie tego. Po prostu miałem ochotę się dzielić.

+0

Prawdopodobnie twoje rozwiązanie zależy od długości napisu. Uczyń sznurek dłużej i to się powtórzy. Ma to związek z marginesem strony, jeśli wyjdziesz poza to. Naprawię to, wstawiając "+" do środka długich literałów. To jest brzydkie rozwiązanie, ale działa. – codefactor

11

problem może być rozwiązany poprzez dostęp

Preferences > JavaScript > Code Style > Formatter 

Oto kroki:

  1. Utwórz nowy profil (ponieważ nie możesz edytować wbudowanego), jeśli jeszcze go nie masz, i kliknij Edit....
  2. Otwórz zakładkę Line Wrapping.
  3. W polu wpisz .
  4. Kliknij Apply i Ok.

Problem pojawia się ponownie dla linii kodu, które mają więcej niż 9999 znaków, ale mogę z tym żyć.

+0

Właściwie to też próbowałem, ale to tylko opóźnia problem, gdy masz ciąg 500 długości, wtedy nawiasy nadal będą zachowywać się źle. – Twinone

+0

Ja osobiście wolę to od hackowania, które w każdym razie reprezentuje rozwiązanie tymczasowe, do momentu, gdy trzeba zmienić ustawienia formatera z dowolnego powodu. Zmieniłem swoją odpowiedź, aby wprowadzić maksymalną wartość przyjętą przez Eclipse: od 500 do 9999. –

+0

Dzięki, ten działa dla mnie –

Powiązane problemy