# 智能提示设计原则

`dotNet.AntdUI` 扩展库的智能提示目标是“高频、够用、轻量”，而不是完整复制全部 .NET API。AntdUI 公开类型很多，如果把所有继承自 WinForms 的属性、低频重载和内部辅助类型都写入提示，会让库文件膨胀，也会降低输入时的命中质量。

## 收录原则

- 收录常用控件构造函数与核心枚举。
- 收录最常输入的属性、方法、事件。
- 表格、选择器、树、菜单、静态弹层、聊天等高频组件优先。
- 复杂配置对象与低频高级 API 放入文档，不强行塞入提示。
- 新增上游组件时先确认当前 DLL 是否公开对应类型，再决定是否加入顶层提示。

## 不收录或少收录

- WinForms 继承来的大量基础属性，例如 `Handle`、`CreateParams`、无关设计器属性。
- 设计器专用属性、内部类型、编译器生成类型。
- 很少手写的重载方法。
- 过深的事件参数成员；事件参数更适合在文档中说明。

## 反射核对示例

```aardio
import dotNet.reflection;

var data = dotNet.reflection.exportAssembly(
    "~\lib\dotNet\AntdUI\.res\AntdUI.dll",
    {
        typeNames = [
            "AntdUI.Button",
            "AntdUI.Table",
            "AntdUI.Chat.MsgList",
            "AntdUI.Chat.ChatList"
        ];
        includeMethods = true;
        includeEvents = true;
        includeFields = false;
    }
);

var md = dotNet.reflection.toMarkdown(data);
```

## 维护流程

1. 用反射脚本确认类型、构造函数、属性、事件和链式方法是否存在。
2. 查上游 wiki / 示例，判断 API 是否高频。
3. 高频成员加入 `dotNet.AntdUI` 智能提示；低频成员写入对应组件文档。
4. 修改后执行隔离重载与冒烟测试，避免提示块语法破坏库文件。

## 命名建议

- 顶层 `AntdUI.Xxx` 只列组件、数据项、关键枚举和静态类。
- 组件提示块使用 `!AntdUIXxx` 命名。
- 嵌套类型可按实际使用写为 `!AntdUIModalConfig`、`!AntdUITextChatItem` 等，尽量保持短而清晰。
