CQLinq

CQLinq

CQLinq 是 CppDepend 的代码查询语言。它基于 LINQ(语言集成查询),允许您编写查询来探索代码库、发现代码异味并强制执行编码标准。

使用 CQLinq,您可以编写查询来查找符合特定条件的类型、方法、字段和其他代码元素。您还可以编写在某些条件满足时发出警告的规则。

CQLinq 是一个用于代码探索、重构和质量保证的强大工具。它在 CppDepend 中被广泛用于各种分析任务。

CQLinq入门

要开始使用CQLinq,您可以使用 查询和规则浏览器 CppDepend 中的面板。此面板包含一个预定义查询和规则的列表,您可以针对代码库运行它们。

您也可以使用编写自己的查询 CQLinq编辑器 编辑器提供语法高亮、代码补全和错误检查,帮助您快速准确地编写查询。

CQLinq 查询使用类似 SQL 但具有 C# 风格的语法编写。下面是一个简单的 CQLinq 查询示例:

from m in Application.Methods
where m.NbLinesOfCode > 30
select m

此查询查找应用程序中代码超过 30 行的所有方法。

查询示例

以下是一些可用于探索代码库的 CQLinq 查询示例:

查找参数超过 5 个的所有公共方法

from m in Application.Methods
where m.IsPublic && m.NbParameters > 5
select m

查找实现特定接口的所有类型

from t in Application.Types
where t.Implement("MyNamespace.IMyInterface")
select t

查找所有从未被调用的方法

from m in Application.Methods
where m.NbMethodsCallingMe == 0 && m.IsPublic
select m

代码规则

CQLinq也可用于编写 代码规则 代码规则是在满足特定条件时生成警告的查询。

要创建代码规则,您需要编写 CQLinq 查询并添加 warniffailif 子句开头。这是一个例子:

warnif count > 0
from m in Application.Methods
where m.CyclomaticComplexity > 20
select m

此规则会为圈复杂度大于 20 的每个方法生成警告。

度量与聚合

CQLinq支持广泛的 度量 供您在查询中使用。这些包括代码行数、圈复杂度和继承深度等代码度量,以及传入和传出耦合等依赖度量。

您也可以使用 聚合函数 在查询中计算整个代码库的统计信息。下面是一个示例:

from m in Application.Methods
select new { m, m.NbLinesOfCode, m.CyclomaticComplexity }

立即试用 CppDepend

开始 14 天免费试用,畅享全部文档功能。无需信用卡。