簡體   English   中英

Eclipse Javascript格式化程序(ctrl-shift-f)

[英]Eclipse Javascript formatter (ctrl-shift-f)

我不喜歡問這個問題,但我老老實實地一直在尋找一種方法來解決這個問題很長一段時間。

這是一個簡單的問題。 我已經使用NetBeans很長一段時間了,但最近轉向Eclipse的原因有幾點我不打算進入。 無論如何,我發現javascript源格式化行為非常奇怪。

這是我自己格式化的javascript代碼示例塊:

function buildDatabase () {
    db.transaction(function (tx) {
        tx.executeSql('DROP TABLE IF EXISTS calendar');
        tx.executeSql('CREATE TABLE IF NOT EXISTS calendar(id UNIQUE, summary, description, location, startdate, enddate)');
    }, function (err) {
        document.querySelector('#debugLog').innerHTML += '<p><code>' + err.message + '</code></p>';
    });
}

非常簡單的東西。 現在,如果我按Ctrl + Shift + F進行格式化(因為坦率地說這個功能節省了很多時間),原因我無法理解它現在看起來像這樣:

function buildDatabase() {
    db
            .transaction(
                    function(tx) {
                        tx.executeSql('DROP TABLE IF EXISTS calendar');
                        tx
                                .executeSql('CREATE TABLE IF NOT EXISTS calendar(id UNIQUE, summary, description, location, startdate, enddate)');
                    },
                    function(err) {
                        document.querySelector('#debugLog').innerHTML += '<p><code>'
                                + err.message + '</code></p>';
                    });
}

為什么要將.transaction移動到新行? 它沒有接近80的線寬。看起來真的很亂。 它也與第二個.executeSql一樣,它仍然沒有正確包裝。 這很奇怪。

現在我當然知道Window> Preferences> JavaScript> Code Style,但無論我在這里做什么都修復了這個問題。 我希望有人有更多的Eclipse經驗,知道出了什么問題。

我安裝了Android Dev Tools和PDT。 但是,此行為預先存在這些插件的安裝。

任何幫助將不勝感激,謝謝。

這個問題可以通過訪問來解決

Preferences > JavaScript > Code Style > Formatter

繼續:

  1. 創建一個新的配置文件(因為您無法編輯已構建的配置文件),如果尚未Edit... ,請單擊Edit...
  2. 打開“ Line Wrapping選項卡。
  3. 在“ Maximum line width字段中,輸入9999
  4. 單擊Apply ,然后單擊Ok

對於具有超過9999個字符的代碼行,問題再次出現,但我可以忍受。

首選項> JavaScript>代碼樣式>格式化程序>行包裝(選項卡)

取消選中 >> prefer包裝外部表達式(將嵌套表達式保留在一行上)

我有同樣的問題。 我做的是安裝Aptana Studio插件並開始使用它附帶的JavaScript編輯器。 它比WTP附帶的好很多。

根據我的經驗,導致這個問題的是長而不易碎的線條。 很煩人。 嘗試將長字符串常量(如“'CREATE TABLE IF NOT EXISTS calendar(id UNIQUE,summary,description,location,startdate,enddate)'”)放入一個單獨的var中,或者如果它真的讓你感到煩惱,你可以把它分開和+結合。

我試過這個:

function buildDatabase() {
    var sql1 = 'CREATE TABLE IF NOT EXISTS calendar(id UNIQUE, summary, description, location, startdate, enddate)';

    db.transaction(function(tx) {
        tx.executeSql('DROP TABLE IF EXISTS calendar');
        tx.executeSql(sql1);
    }, function(err) {
        document.querySelector('#debugLog').innerHTML += '<p><code>'
            + err.message + '</code></p>';
    });
}

我也發現了這一點,這也是我大部分回到NetBeans的主要原因之一。

我沒有解決方案,但我可以給你一些對我有用的一般提示,至少在某種程度上。

  1. 而不是像這樣的括號:}); 嘗試將每一個放在一個新的行上。
  2. 而不是像這樣解析參數:

    calendar(id UNIQUE,summary,description,location,startdate,enddate)

也許試試

calendar(id 
UNIQUE, 
summary, 
description, 
location, 
startdate, 
enddate)

3.最后你可以嘗試在連接字符串時將+放在一個新行上。

就像我說的,我知道這並沒有解決你的問題,但我認為至少它可能會幫助你,直到一個更好的解決方案出現。

祝你好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM