# Search and Browse Specification ## Purpose 定义 sap-cli 的搜索和浏览功能行为,包括对象列表、引用查询和源码搜索。 ## Requirements ### Requirement: Object Listing 系统 SHALL 列出 SAP 系统中指定类型的开发对象。 #### Scenario: List by type with prefix - **WHEN** 用户执行 list 命令并指定对象类型和前缀筛选 - **THEN** 系统显示匹配的对象名称列表 #### Scenario: List without filter - **WHEN** 用户执行 list 命令但未指定筛选条件 - **THEN** 系统显示该类型的所有可访问对象 ### Requirement: Where-Used Query 系统 SHALL 查询指定对象在其他开发对象中的引用关系。 #### Scenario: Find references - **WHEN** 用户执行 whereused 命令并指定对象名称和类型 - **THEN** 系统显示所有引用该对象的开发对象列表 #### Scenario: No references found - **WHEN** 指定对象没有被任何其他对象引用 - **THEN** 系统显示无引用结果的信息 ### Requirement: Source Code Search 系统 SHALL 在 SAP 系统中搜索源代码内容。 #### Scenario: Search by keyword - **WHEN** 用户执行 search 命令并提供搜索关键词 - **THEN** 系统显示包含该关键词的对象名称、类型和匹配行 #### Scenario: Search no results - **WHEN** 搜索关键词没有匹配结果 - **THEN** 系统显示无搜索结果的信息 ### Requirement: Code Diff 系统 SHALL 对比本地源码与 SAP 系统中当前版本的差异。 #### Scenario: Diff with differences - **WHEN** 用户执行 diff 命令,本地文件与 SAP 版本存在差异 - **THEN** 系统显示差异内容(新增、删除、修改的行) #### Scenario: Diff identical - **WHEN** 本地文件与 SAP 版本完全一致 - **THEN** 系统显示无差异的信息 ### Requirement: CDS View Operations 系统 SHALL 支持 CDS View 的下载和创建操作。 #### Scenario: Download CDS view - **WHEN** 用户执行 cds download 命令并指定 CDS View 名称 - **THEN** 系统下载 CDS View 定义并保存到本地 #### Scenario: Create CDS view - **WHEN** 用户执行 cds create 命令并指定名称和描述 - **THEN** 系统在 SAP 中创建新的 CDS View ### Requirement: Package Operations 系统 SHALL 支持 ABAP 包的查询和创建操作。 #### Scenario: Query package info - **WHEN** 用户执行 package info 命令并指定包名 - **THEN** 系统显示包的描述、包含的对象数量等信息 #### Scenario: Create package - **WHEN** 用户执行 package create 命令并指定包名和描述 - **THEN** 系统在 SAP 中创建新的 ABAP 包