資源簡介
這是一個 Sonar 的插件,實現對 Objective-C 語言的分析。可分析角度包括:
Complexity
Design
Documentation
Duplications
Issues
Size
Tests
標簽:Sonar
標簽:Sonar

代碼片段和文件信息
/*
?*?Sonar?objective-C?Plugin
?*?Copyright?(C)?2012?OCTO?Technology
?*?dev@sonar.codehaus.org
?*
?*?This?program?is?free?software;?you?can?redistribute?it?and/or
?*?modify?it?under?the?terms?of?the?GNU?Lesser?General?Public
?*?License?as?published?by?the?Free?Software?Foundation;?either
?*?version?3?of?the?License?or?(at?your?option)?any?later?version.
?*
?*?This?program?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the?GNU
?*?Lesser?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?Lesser?General?Public
?*?License?along?with?this?program;?if?not?write?to?the?Free?Software
?*?Foundation?Inc.?51?Franklin?Street?Fifth?Floor?Boston?MA??02
?*/
package?org.sonar.objectivec;
import?java.io.File;
import?java.util.Collection;
import?org.sonar.objectivec.api.objectiveCGrammar;
import?org.sonar.objectivec.api.objectiveCMetric;
import?org.sonar.objectivec.parser.objectiveCParser;
import?org.sonar.squidbridge.AstScanner;
import?org.sonar.squidbridge.CommentAnalyser;
import?org.sonar.squidbridge.SquidAstVisitor;
import?org.sonar.squidbridge.SquidAstVisitorContextImpl;
import?org.sonar.squidbridge.api.SourceCode;
import?org.sonar.squidbridge.api.SourceFile;
import?org.sonar.squidbridge.api.SourceProject;
import?org.sonar.squidbridge.indexer.QueryByType;
import?org.sonar.squidbridge.metrics.CommentsVisitor;
import?org.sonar.squidbridge.metrics.LinesOfCodeVisitor;
import?org.sonar.squidbridge.metrics.LinesVisitor;
import?com.sonar.sslr.impl.Parser;
public?class?objectiveCAstScanner?{
????private?objectiveCAstScanner()?{
????}
????/**
?????*?Helper?method?for?testing?checks?without?having?to?deploy?them?on?a?Sonar?instance.
?????*/
????public?static?SourceFile?scanSingleFile(File?file?SquidAstVisitorjectiveCGrammar>...?visitors)?{
????????if?(!file.isFile())?{
????????????throw?new?IllegalArgumentException(“File?‘“?+?file?+?“‘?not?found.“);
????????}
????????AstScannerjectiveCGrammar>?scanner?=?create(new?objectiveCConfiguration()?visitors);
????????scanner.scanFile(file);
????????Collection?sources?=?scanner.getIndex().search(new?QueryByType(SourceFile.class));
????????if?(sources.size()?!=?1)?{
????????????throw?new?IllegalStateException(“Only?one?SourceFile?was?expected?whereas?“?+?sources.size()?+?“?has?been?returned.“);
????????}
????????return?(SourceFile)?sources.iterator().next();
????}
????public?static?AstScannerjectiveCGrammar>?create(objectiveCConfiguration?conf?SquidAstVisitorjectiveCGrammar>...?visitors)?{
????????final?SquidAstVisitorContextImpljectiveCGrammar>?context?=?new?SquidAstVisitorContextImpljectiveCGrammar>(new?SourceProject(“objective-C?Project“));
????????final?ParserjectiveCGrammar>?parser?=?objectiveCParser.create(conf);
????????AstScanner.BuilderjectiveCGrammar>?builder?=?AstScanner.jectiveCGrammar>?builder(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件?????????153??2015-01-29?22:12??sonar-ob
?????文件????????4620??2015-01-29?22:12??sonar-ob
?????文件?????????547??2015-01-29?22:12??sonar-ob
?????文件????????6421??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件???????97620??2015-01-29?22:12??sonar-ob
?????文件????????2106??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件????????4458??2015-01-29?22:12??sonar-ob
?????文件????????1412??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件????????1321??2015-01-29?22:12??sonar-ob
?????文件????????4462??2015-01-29?22:12??sonar-ob
?????文件????????1522??2015-01-29?22:12??sonar-ob
?????文件????????2296??2015-01-29?22:12??sonar-ob
?????文件????????1223??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件????????1246??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件????????1943??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????文件????????1258??2015-01-29?22:12??sonar-ob
?????文件????????1720??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
?????目錄???????????0??2015-01-29?22:12??sonar-ob
............此處省略72個文件信息
評論
共有 條評論