首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

星号在 ABAP 中的十大应用场景之补充:代码自动补全(Code Completion)

笔者之前的文章,介绍了特殊符号星号 * 在 ABAP 世界的十一种用法:

ABAP 里星号 * 的十种用法

星号在 ABAP 中的十大应用场景之补充:搜索和字符串操作

本文再补充一种用法,这种用法只适用于 ABAP Development Tool 里的 ABAP 开发。SAPGUI 里无效。

在 ABAP Development Tool 里编辑代码时,我们可以用 " * ",来限定 ABAP Code Completion 结果列表里的记录。

举个例子:

我在下图第 37 行代码中,输入 `l*_a*`, 意思是在代码自动补全的列表里,我只期望看到那些以 l 开头,中间包含 `_a` 的属性或者方法。

比较一下,如果我直接输入 `l`, 那么可供选择的条目数太多了,效率比较低:

以上这个功能在 SAPGUI 里不可用。

多说一句,ABAP Development Tool 里当我们键入下列特殊符号时,代码补全(Code Completion) 会自动触发。

-

~

=>

->

除此以外,我们可以使用默认的快捷键 Ctrl + Space 来手动触发。但这个组合键和操作系统的输入法切换快捷键冲突了。此时可以在 ABAP Development Tool 的 Preference 设置里,选择 General->Keys, 将 Content Assist 对应的快捷键另外设置一个就好了。

ABAP Development Tool 里 Code Completion 如何实现的?

选择 ABAP Development Tool 的 Show View,打开 ABAP Communication Log 视图:

然后点击 Start Logging:

重新触发 Code Completion 操作,就可以观察 ABAP Development Tool 发送到 ABAP 后台的请求和响应明细了:

Restful API 请求的 url 和请求明细:

/sap/bc/adt/abapsource/codecompletion/proposal

ABAP 后台返回的 Code Completion 分析结果:

在 ABAP 后台使用 SICF 事务码,查看 adt 节点的 handler class,在其 HANDLE_REQUEST 方法设置断点,就可以慢慢单步调试进去,查看 ABAP Code Completion 在后台的实现原理了。

关于 SICF 事务码的更多介绍,请参阅笔者的文章:

从 ABAP Netweaver 的 SICF 到 SAP Kyma 的 Lambda Function

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O2g7Z8u67c2HxmFqpbOIDCXQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券