欢迎!请参阅关于页面获取更多有关此功能的详细信息。
我已在cljs-devtools(以及dirac)中实现了一些“demunging”逻辑来在UI中显示原始用户友好的名称。
在我的测试中,我发现demunge存在一些错误的边缘情况和不正确的行为
1) 它过于激进行美元替换 - 一些美元可能作为原始名称的一部分是“真实”的美元2) 它没有撤销在munging过程中应用的js-reserved?转换3) 它对下划线/破折号视而不见 - 一些下划线在munging之前是“真实”的下划线(这可能并不完整)
我已就这些问题在我的侧做了处理,并实施了一些基于上下文的启发式方法(链接:1),但这远远不是完美的。
我不确定如何适当修复这些问题,因此我想打开一个讨论的工单。也许人们会有一些聪明的想法。
目前munging是有损的,出于兼容性原因我们可能不愿触及它。也许我们可以在某种方式下标记原始的下划线和美元符号,以便demunge可以正确地跳过它们。
1) 一种策略可能是使用某些(罕见的)Unicode字符,但这会给人们输入带来问题。2) 另一种策略可能是以某种方式转义原始美元和下划线(使用更多的美元和下划线 ;)。3) 更好的主意?
(链接:1)https://github.com/binaryage/cljs-devtools/blob/52899e61e33373df36be8dcb23c69377936821b2/src/lib/devtools/munging.cljs#L154-L185