問題タブ [oclint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
788 参照

objective-c - #import されたヘッダー ファイルを検出できないため、OCLint がコンパイラ エラーを報告する

OCLint 0.13 を統合して、ObjC ベースの iOS プロジェクトで lint 違反をチェックしようとしています。

このガイドに従って、Xcode で集計ターゲットを作成して を実行し、xcodebuild clean build続いoclint-xcodebuildcompile_commands.json. clang生成されたファイルからコマンドを実行できcompile_commands.jsonます。oclint-json-compilation-databaseただし、コマンドによって生成された html レポートでは、のようなファイルを処理しているときに、上記のヘッダー ファイルが に存在するにもかかわらず、 のNEORepos/Public/ResourceObservables/NEOAggregatedObservable.hようなコンパイラ エラーが表示されます。'NEOObservables/NEOObservable.h' file not foundNEOObservables/Public/Observables/NEOObservable.h

ここに画像の説明を入力

一部のソース ファイルが lint されるのを妨げているこれらのコンパイラ エラーを取り除くにはどうすればよいですか?

からclangコマンドを実行するとファイルがcompile_commands.json生成され.oますが、OCLintはjsonファイルを使用してコンパイルできないようです。さらにいくつかのインクルード パスを追加しようとしました-Iが、役に立ちませんでした。すべての提案と指針を歓迎します。

これが(編集された)ログの一部です...

xcode_clean_build_command = xcodebuild -workspace 'Neo.xcworkspace' -scheme 'NeoSampleApp' -configuration 'Debug' クリーン ビルド -dry-run -derivedDataPath /Users/username/Documents/git/ios-neo_linter/build/Neo -sdk iphonesimulator CLANG_ENABLE_MODULE_DEBUGGING=NO CODE_SIGNING_ALLOWED=NO CODE_SIGN_IDENTITY='' CODE_SIGNING_REQUIRED=NO ENABLE_BITCODE=NO COMPILER_INDEX_STORE_ENABLE=NO | ティー xcodebuild.log

...

/oclint-xcodebuild

...

compile_commands.json を生成しています ...

NEORepos/Public/ResourceObservables/NEOAggregatedObservable.m を選択 NeoSampleApp/main.m を選択

...

リンティング (283 個中 2 個) および新しい compile_commands.json の作成用に最終候補に挙げられたファイル

...

/Users/username/Documents/git/ios-neo_linter/NEORepos/Public/ResourceObservables/NEOAggregatedObservable.m のコンパイルに失敗しました - /Users/username/Documents/git/ios-neo_linter/NeoSampleApp/main.m のコンパイルに失敗しました - /Users/ の分析に成功しましたユーザー名/ドキュメント/git/ios-neo_linter/NeoSampleApp/main.m - 完了

...

lint レポートを生成しています (存在する場合)...

...

実行コマンド: oclint-json-compilation-database -e Pods -v -- -list-enabled-rules -no-analytics -enable-global-analysis -verbose --report-type html -o oclint.html -extra-arg =-何もない

...

/usr/local/bin/oclint -p /Users/username/Documents/git/ios-neo_linter -list-enabled-rules -no-analytics -enable-global-analysis -verbose --report-type html -o oclint. html -extra-arg=-Wno-everything /Users/username/Documents/git/ios-neo_linter/NEORepos/Public/ResourceObservables/NEOAggregatedObservable.m /Users/username/Documents/git/ios-neo_linter/NeoSampleApp/main.m

0 投票する
1 に答える
324 参照

objective-c - OCLint は html レポート ファイルでコンパイル エラーを受け取りましたが、プロジェクトのビルドは成功しました。どうして

oclint によって生成された html レポートの結果

xcodebuild -workspace ${myworkspace} -scheme ${myscheme} \ -sdk iphonesimulator \ -derivedDataPath ./build/derivedData \ -configuration Debug \ COMPILER_INDEX_STORE_ENABLE=NO \ | xcpretty -r json-compilation-database -o compile_commands.json

上記のコマンド ラインを実行してプロジェクトをビルドすると、ビルドは成功しますが、以下のコマンド ラインを実行して oclint html レポート ファイルを生成すると、15 個のコンパイラ エラーが発生します。

oclint-json-compilation-database -e Pods -- \ -extra-arg=-Wno-error=everything \ -report-type html \ -rc LONG_LINE=200 \ -rule MultipleUnaryOperator \ -max-priority-1=0 \ -max-priority-2=10 \ -max-priority-3=20 \ -o ./oclint_report.html

0 投票する
1 に答える
74 参照

c++ - clang での VarDecl のマクロ展開の決定

私は C++ の初心者で、Clang を使用して Objective-C コードをリントしようとしています。ノードとプロパティがASTでアクセスされる前に、マクロが最初に展開されることを理解しています。

という名前のマクロがNIL_CHECKあり、多数のファイルで使用されています。lint の実行中に、このマクロが展開/使用されている行の変数宣言をスキップしたいと考えています。

たとえば、この例の最初の行は lint する必要がありますが、2 行目はスキップして、マクロ展開があるときに誤検出がスローされないようにする必要があります。

次に示すのは、VisitVarDecl適切な lint チェックを実行するために各変数宣言をトラバースするビジター メソッドです。

マクロを特定し、そのような変数宣言をスキップするにはどうすればよいですか?