2016-09-26 28 views
1

我在Atom中安裝了JSLint和Atom-beautify(我認爲它是jsbeautify的前端)。一般來說,這很漂亮,除了他們對三元運營商的爭吵(我認爲這是正確的術語)。所以,如果我做Atom - JSBeautify和JSLint不同意關於三元行破解

var theWindow = (thisObj instanceof Panel)? thisObj: new Window("palette", thisObj.scriptTitle, undefined, {resizeable: true}); 

JSBeautify將使它看起來像:

var theWindow = (thisObj instanceof Panel) 
    ? thisObj 
    : new Window("palette", thisObj.scriptTitle, undefined, {resizeable: true}); 

然後JSLint的會抱怨自己的斷行。

enter image description here

我看看JSBeautify文檔和文件的JSLint,但我找不到改變關於三元語法或者行爲的任何選項。任何人都可以告訴我如何改變它,所以我不必每次美化我的代碼時手動重新格式化所有三元函數?只要他們同意,我不介意哪一個流行。

回答

1

只需添加選項"preserve_ternary_lines":true in .jsbeautifyrc 三元線表達式不會再被打破。從原子美化

相關變化:atom-beautify/pull/726

1

你問jslint(「絨毛」),但在使用棉短絨實際上是jshint(「提示」)。

jshint

創建.jshintrc文件,並添加以下規則容忍多行字符串

{ 
    "multistr": true 
} 

威力必須設置"laxbreak"爲true,這樣可以承受可能不安全線唱到GS。見example所有可用的選項

的JSLint

同樣,你可以創建一個.jslintrc文件覆蓋的JSLint默認選項。使用example作爲參考。

+0

這就是爲什麼我問的問題。在JSLint文檔中,它表示對JSBEautify執行這些操作的方式感到滿意,實際上,在線jslint頁面抱怨*除非您有換行符。也許這只是JSLint的Atom實現而已。 – stib

+0

我剛剛注意到你混了'jshint'和'jslint',所以我編輯了我的答案。 – idleberg

+0

你是對的。當我開始使用JSHint而不是JSLint時(我安裝了一些並刪除了那些看起來不起作用的,包括JSLint,它似乎沒有執行.jsx文件),我對整個linting概念是新手。自從發佈這篇文章以來,我已經發現了JSCS,然後發現JSCS已經被棄用了,現在我已經轉向了ESLint,它們一起完成了美化和LINTING。 – stib