千家信息网

ABAP的语法高亮是怎么在浏览器里显示的

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容介绍了"ABAP的语法高亮是怎么在浏览器里显示的"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年12月01日ABAP的语法高亮是怎么在浏览器里显示的

本篇内容介绍了"ABAP的语法高亮是怎么在浏览器里显示的"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在S/4HANA里,我们现在能在浏览器里写ABAP了,并且支持语法高亮。


你也许会问,ABAP的语法高亮是如何在浏览器里显示的?下面跟我一起来通过调试的方式自己找到问题的答案。

(1). 在浏览器里敲个ABAP的关键字,比如data。发现被高亮了。通过Chrome开发工具发现高亮是通过一个叫ace_keyword的css类实现的。

在Chrome开发工具里以关键字".ace_keyword"搜索: 发现这个css类是硬编码在theme-sap-cumulus.js里的。

(2). 现在需要找到浏览器里进行ABAP代码编辑的编辑器的实现。在Chrome开发工具里Network tab里输入".xml"作为过滤条件,于是找到编辑器的Fiori实现: Editor.view.xml

具体的编辑器是实现在命名空间reuse的ABAPWrapper标签里。

根据这个命名空间找到实现ABAP编辑器的UI5应用,如下图: nw_aps_ext_lib.

打开ABAPWrapper-dbg.js, 在第68行设置断点。这个函数负责从ABAP后台取PAD文件,该文件和语法高亮有关。

刷新ABAP编辑器页面,断点触发,在调试器里观察PAD文件的内容:

所有的ABAP关键字都列在该PAD文件里,这样UI5就知道编辑器里哪些字符串应该做高亮显示。

(3). 最后一个问题就是,比如当我敲了一个ABAP关键字"new"之后,UI5应用具体哪行代码将对应的css类加到这个字符串对应的DOM节点上?

如下图,一旦我敲了一个字符w之后,字符串new作为一个关键字需要被高亮:

具体逻辑如下图:一旦敲入字符"w"后,onInput作为事件处理函数触发:

函数$renderLine负责生成对应的HTML源代码。输入字符"new"被传入函数getLineTokens来计算该字符串是关键字还是普通变量。

在文件AceRndTokenizer.js里, ABAP解析器按照我们期望的将"new"解析成关键字,因为解析器拥有PAD文件的引用,因此它知道哪些字符串是关键字,哪些是普通变量。

(4). DOM节点的源代码在此处生成,"ace"和"keyword"做连接操作,生成最后我们在Chrome开发工具里看到的完整css类ace_keyword.

"ABAP的语法高亮是怎么在浏览器里显示的"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

高亮 关键 关键字 字符 浏览器 浏览 文件 编辑器 语法 字符串 函数 工具 开发工具 开发 内容 生成 普通 代码 变量 断点 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 绝地求生服务器中文版 cdn服务器污染 it指的就是数据库技术 数据库带小数点 web应用软件开发设备 数据库字段命名需要驼峰吗 cs1.6开个服务器最低配置 50台网吧服务器 国际服体验服如何切换服务器 怪物猎人p3数据库电子书 win11无法解析服务器的DNS地址 r语言如何抓取股票数据库 exl同列重复数据库 互联网科技股基金最新排名 数据库表名忘了怎么找表 如何把服务器下载到桌面 网络安全需要哪些材料 服务器 geneva测试 数据库主从同步遇到的问题 地学与环境学适用数据库主要包括 计算机网络技术专升本跨专业 网络安全管理员与审核员 我的世界警察和杀手服务器 大咖齐聚羊城探讨网络安全 计算机网络技术冷门 王者荣耀服务器有哪些 客户端和服务器怎么建立链接 实施 网络安全法 实名 西山区智能化软件开发价格走势 拒绝网络暴力伤害维护网络安全
0