2013-03-01 24 views
5

我很難得到eclipse格式我的JavaScript很好。 在第一個例子,它的行爲預期(沒有第二個URL的長度):Eclipse的JavaScript格式化程序瘋狂(例如:太多的填充)

Behaving good

每當我有一個較長的URL,蝕去瘋狂格式化我的代碼,我得到微胖無處不在,像

Behaving bad

爲什麼JavaScript的格式化表現這個樣子,以及如何解決它:下面的例子嗎?

(以防萬一:我還沒有安裝任何插件格式,我只是用自帶的Eclipse的朱諾默認)

+0

請勿在您的函數中間放置長URL。將它們定義在其他地方。 – 2013-03-01 14:18:40

+0

我已經想到了,但我真的不想擁有一堆字符串變量。我知道我可以創建一個JSON對象,但是仍然像Eclipse這樣的大平臺不應該像這樣行事。 – Twinone 2013-03-01 23:28:32

+0

無需破解!看看我的答案。 – 2013-04-24 11:34:37

回答

10

例子中的長的URL會影響 「$阿賈克斯(...」 和 「$(函數()......」。

至於 「$(函數()...」,在設置在Preferences/JavaScript/Code Style/Formatter/Line Wrapping/Function Calls/Arguments中。'Do not wrap'可用。

至於「$ .ajax(...」,它類似於'Qualified (Preferences/Java/Code Style/Formatter/Line Wrapping/Function Calls)不幸的是,JSDT沒有這個用戶界面(Preferences/JavaScript/Code Style/Formatter/Line Wrapping/Function Calls)

這是JSD的一招T 1.4.1(WTP R3.4.1)。

  1. 啓動Eclipse
  2. 打開首選項/ JavaScript的/代碼樣式/格式化
  3. 點擊 '新建'
  4. 輸入配置文件名,只要你喜歡,選擇 '日蝕[內置]'(或JavaScript約定)在列表框中,取消用文本編輯器「現在打開編輯對話框」(無需編輯),然後單擊「確定」
  5. 關閉選項並退出Eclipse的
  6. 打開下面的文件
    workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.core.prefs
  7. 查找下面的行和替換16 0
    org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
  8. 保存
  9. 啓動Eclipse

(因爲你有你自己的空間,也許1-5是不必要的)

當您在首選項中編輯格式化程序設置時,此黑客程序將被還原。 - (爲了防止覆蓋,你需要做的就是導出格式化配置文件,編輯XML並將'org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation'更改爲0.現在再次保存並重新導入。永久性的。

我不認爲這符合你的需求,這是更好地使用一些其他格式(第三方插件),我猜。

+0

無需破解。 [看我的回答](http://stackoverflow.com/a/16187151/636561)。 – 2013-06-12 11:47:55

1

我已經找到了一個臨時解決方案:

  1. 轉到 Window -> Preferences -> JavaScript -> Code Style -> Formatter

  2. 將活動配置文件設置爲JavaScript約定。

  3. 點擊編輯

  4. Indentation選項卡,設置只Tab policy空間。

  5. Indentation sizeTab size設置爲。

  6. 由於您無法覆蓋默認配置文件,請更改配置文件名稱並保存。

  7. 按下Ctrl鍵++˚F和享受。

注:我不喜歡有3位,我寧願喜歡我的好老4位,但是這是一個臨時的解決方案,直到有人發現一個更好的辦法來解決這個問題。我只是覺得分享。

+0

可能您的解決方案取決於字符串的長度。讓字符串變長,它會再次發生。如果你超越它,它必須處理頁邊距。我通過在長字符串文字的中心插入「+」來解決這個問題。這是一個糟糕的解決方案,但它的工作原理。 – codefactor 2013-03-02 03:59:19

11

這個問題可以通過訪問

Preferences > JavaScript > Code Style > Formatter 

來解決這些是步驟:

  1. 創建新的配置文件(因爲您無法編輯內置的配置文件),如果您還沒有,請點擊Edit...
  2. 打開Line Wrapping選項卡。
  3. Maximum line width字段中,輸入。
  4. 點擊ApplyOk

問題再次出現在超過9999個字符的代碼行中,但我可以忍受它。

+0

其實我也試過,但實際上這只是推遲問題,當你有一個500長度的字符串,然後括號仍然會表現不好。 – Twinone 2013-04-26 09:52:12

+0

我個人比黑客更喜歡這種方式,無論如何這只是一種臨時解決方案,直到您因任何原因需要更改格式化程序設置爲止。我編輯了我的答案,將Eclipse承認的最大值設置爲:從500到9999。 – 2013-05-09 15:22:27

+0

謝謝,這個對我有用 – 2014-11-14 14:11:26