欢迎!请查看关于页面,了解更多关于这个系统如何工作的信息。
我在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