check_naming
Verify C++ identifier names comply with style conventions for variables, functions, classes, and other code elements to maintain consistent naming standards.
Instructions
检查 C++ 标识符命名是否符合规范
参数:
identifier: 要检查的标识符名称
category: 标识符类别,可选值:
- variable: 变量
- constant: 常量
- function: 函数
- class: 类
- namespace: 命名空间
- member_variable: 成员变量
- template_parameter: 模板参数
- file_naming: 文件命名
返回:
检查结果,包含是否符合规范、详细说明和建议
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| category | Yes |
Implementation Reference
- cpp_style_server.py:32-61 (handler)The main handler function for the 'check_naming' MCP tool. It is decorated with @mcp.tool() for registration, validates input parameters via type hints and docstring schema, calls the NamingChecker helper, and formats the output string with details and suggestions.@mcp.tool() def check_naming(identifier: str, category: str) -> str: """ 检查 C++ 标识符命名是否符合规范 参数: identifier: 要检查的标识符名称 category: 标识符类别,可选值: - variable: 变量 - constant: 常量 - function: 函数 - class: 类 - namespace: 命名空间 - member_variable: 成员变量 - template_parameter: 模板参数 - file_naming: 文件命名 返回: 检查结果,包含是否符合规范、详细说明和建议 """ checker = get_naming_checker() is_valid, details, suggestions = checker.check_naming(identifier, category) result = details if suggestions: result += f"\n推荐使用:\n" for sug in suggestions: result += f" • {sug}\n" return result
- Core implementation of naming check logic within the NamingChecker class. Loads conventions from JSON, validates identifier against style rules using regex patterns, generates suggestions, and constructs a detailed report with rules and examples.def check_naming(self, identifier: str, category: str) -> Tuple[bool, str, List[str]]: """ 检查标识符命名是否符合规范 Args: identifier: 要检查的标识符 category: 类别 (variable, constant, function, class, namespace, member_variable, template_parameter, file_naming) Returns: (是否符合规范, 详细说明, 建议列表) """ if category not in self.conventions: return False, f"未知的类别: {category}", [] conv = self.conventions[category] style = conv["style"] # 根据不同风格进行检查 is_valid, message = self._check_style(identifier, style, category) suggestions = [] if not is_valid: suggestions = self._generate_suggestions(identifier, style, category) # 构建详细说明 details = f"类别: {category}\n" details += f"推荐风格: {style}\n" details += f"标识符: {identifier}\n" details += f"检查结果: {'✓ 符合规范' if is_valid else '✗ 不符合规范'}\n" if message: details += f"说明: {message}\n" if suggestions: details += f"\n建议的命名:\n" for sug in suggestions: details += f" • {sug}\n" # 添加规则说明 details += f"\n规范要求:\n" for rule in conv.get("rules", []): details += f" • {rule}\n" # 添加示例 if "examples" in conv: details += f"\n正确示例: {', '.join(conv['examples']['good'])}\n" details += f"错误示例: {', '.join(conv['examples']['bad'])}\n" return is_valid, details, suggestions