1

我們使用Sonar 3.4.1來分析我們的持續集成服務器上的JavaScript。使用alert的聲納編碼規則()

我已經添加了很多自定義規則;例如:如果使用任何console.*調試功能,則發出阻塞違規。

一個例子XPath查詢:

//callExpression/memberExpression[count(*) = 3 and primaryExpression[@tokenValue = "console"] and identifierName[@tokenValue = "log"]] 

我要添加爲alert(...)使用的規則,但我似乎無法得到它的正常工作。

我已經嘗試了很多變化對XPath查詢,例如像:

//callExpression/memberExpression[count(*) = 2 and primaryExpression[@tokenValue = "alert"]] 

我可以管理,以獲得最佳的是,alert() s的發現,但像$varName.alert()東西也是,這是一個誤報。

如何自行查詢alert()的用法?

而AST(抽象語法樹)上的任何資源都會很有幫助,所以我可以在將來爲其他規則弄清楚這一點。 (教人捕魚和所有...)

回答

2

下面這個簡單的XPath表達式爲我工作:

//primaryExpression[@tokenValue = "alert"] 
+1

難道你不知道,在那裏人們可以找到XPathes /檢查的擴展集聲納? (例如,JetBrains產品的JS檢查或規則的jshint/eslint集合?) – SublimeYe 2013-12-18 20:58:12