2015-06-19 112 views
0

這是我嘗試設置ESLint'snew-cap規則接受"S"作爲允許函數名稱:ESLint:如何在文件中設置「新帽」規則的「capIsNewExceptions」選項?

/*eslint new-cap : [capIsNewExceptions : ["S"]] */ 
var S = require("string"); 
var lines = S(text).lines(); // <-- ESLint still gives a warning for cap 'S'! 

我ESLint解析器(內的IntelliJ)繼續給我new-cap警告,如上所述。

我試圖認真應用ESLint documentation

here,我看到一個例子規則,它看起來像這樣:/*eslint quotes: [2, "double"], curly: 2* /,我在其中收集了quotescurly規則設定,那quotes規則包含兩個選項,因此它被包含在括號因爲文檔中說If a rule has additional options, you can specify them using array literal syntax(它就是這個例子上面說的)。

然後,從the actual documentation for new-cap,我發現capIsNewExceptions作爲一個選項提供,並且該選項的值應該是一個所需函數名稱的數組 - 正如我在上面的代碼中試圖做的那樣。

但它不起作用。我仍然收到ESLint警告。

什麼是正確的語法,以支持使用定製new-cap規則中的capIsNewExceptions選項在JavaScript文件中使用以用於ESLint?

+0

這是一個很好的規則 - 爲什麼不跟進呢?當需要你想要的東西時,使用大寫字母。否則,小寫(所以功能,對象等)? – Cymen

+0

@Cymen我認爲這是一個非常出色的例外,也是'Node''String'庫的標準用法。 (請參閱https://www.npmjs.com/package/string#node-js) –

+0

這絕對是主觀的,但我傾向於使用'string'作爲該庫。 – Cymen

回答

4

嘗試

/*eslint new-cap: [2, {capIsNewExceptions: ["S"]}]*/ 
var S = require("string"); 
var lines = S(text).lines(); 

現在,它爲什麼這樣工作?

對於將選項傳遞給使用數組的規則是正確的,但是在the docs中他們提到該數組的第一個元素始終是「規則ID」:從0到2的數字,它定義瞭如何應用該規則:
0 - 禁用規則,
1 - 使其成爲一個警告,
2 - 使得它的錯誤。

我懶得檢查,但我認爲數組的其餘部分作爲contextoptions屬性傳遞給規則本身。從new-cap規則的source code,它看起來像它期待只有一個選擇,那是一個像capIsNewExceptionsnewIsCap可能的配置屬性的對象,等

+0

就是這樣。謝謝! –