Skip to main content

コマンド:クローンを検索

関数:コマンドは、オープンのプログラムコードを検索します CODESYS-コピーされたコードのプロジェクトとビューを開きます 検索結果のクローンを作成する 見つかったクローンコードブロックを表示します。特定のサイズより大きいコードのブロックのみがクローンと見なされます。非常に小さなコードはクローンとして表示されません。

この点にも注意してください 抽出機能 と指示 コードクローンの検出

電話

  • メニュー 作成→静的分析

  • コンテキストメニュー 静的解析

要件CODESYS Static Analysis-プロジェクトは開いています。

次のプロパティがある場合、2つのコードはクローンと見なされます。

  • 同じ構造設計

  • 変数のデータ型は同じです

  • 変数名は異なる場合があります(例外:コンポーネントアクセス)。ただし、コードに複数回含まれている識別子は、両方のコードで同じ位置にある必要があります。

  • リテラルのデータ型は同じです

  • リテラルは異なる場合があります。コードに複数回出現するリテラルは、両方のコードの同じ位置に出現する必要があります。

3. 意見 検索結果のクローンを作成する

_san_icon_info.png まとめ

検索結果を表示するためのタブ

  • 見つかった複製されたコードブロックの数

  • 比較されたステートメントの数

  • 複製されたコード内のステートメントの数

  • クローン部分:パーセントでの仕様: 複製されたコード内のステートメントの数 / 比較されたステートメントの数

_san_icon_result.png 結果

タブでは、コードクローンがツリービューに表示され、コマンドとフィルターオプションを使用できます。

重複のセットから重複が最初に発生した場合は、ルートノードと見なされます。子ノードの背景色は、コードが異なるか同一かを表します。同じ色は「同じコード」を意味します。ツリービューの内容は、重複したコード内のステートメントの数の降順で並べ替えられます。

タブ内のコマンドとフィルター _san_icon_result.png結果

サブモジュール/クローン

コードブロック内のサブモジュール(命令)の数

サブモジュールの数が20未満の場合、コードクローンは考慮されません。

オブジェクトでフィルタリング

の入力フィールド 物体、クローンのコレクションがフィルタリングされます

選択したクローンを表示する

要件:同じ親ノードの2つの子ノードが選択されている。

比較のために、2つのプログラミングオブジェクトがビューの上部に表示されます。コードの重複はマークされ、相違点(異なる変数名など)は異なる色で強調表示されます。

コードクローンのリスト

  • 説明

  • サブモジュール/クローン

  • 物体

  • ポジション

子ノードをダブルクリックすると、対応するプログラミングオブジェクトが開き、重複したコードブロックが選択されます。