2

我希望从 Google 的 Code-Prettify 项目中获得第 295期;即添加对lang-powershell.

虽然我找到了一些代码示例,但我找不到任何关于如何编写此代码的文档或任何提交指南(例如,语法突出显示是否应该适用于无效代码,或者它是否应该尝试突出显示此类错误)?

具有讽刺意味的是,我尝试过谷歌搜索,但没有任何乐趣。我能找到的最好的是他们的风格指南

问题

请有人指点我向 Google Code Prettify 提交新语言支持脚本的文档吗?

4

1 回答 1

1

语法高亮应该适用于无效代码还是应该尝试高亮此类错误

Prettify 通常应用于代码片段,因此您可以假设片段从令牌边界开始,但不应假设它从顶级生产开始。

在像 SO 这样的网站上,prettify 被应用于由对其他语言有一定了解并试图对现有代码片段进行现场编辑的新手和维护者编写的输入。

Prettify 应该让对语言有深刻理解的人可以轻松快速地扫描代码片段中的问题。

您应该尽最大努力从错误中恢复。例如,如果代码片段只包含单行标记,那么一行上的无效标记不应阻止对后续每一行进行美化。如果这是不可避免的,那么无效的令牌不应阻止美化以前的令牌——查看令牌化失败的地方可以向扫描代码片段以查找问题的人传达有用的信息。

如果你想找出明显的错误,比如未闭合的字符串文字,那很好。我会应用.err,然后想要应用红色下划线的样式可以这样做。我很乐意为此接受对默认样式表的更改。


我的想法是 prettify 弥合了两种语言概念之间的差距:

  1. 在解析器理论中,“语言”是一组字符串。PowerShell语言是由规范文档中的语法定义的字符串集。
  2. 在常见的描述性用法中,“语言”将相关语言社区中的说话者或作者产生的内容与他们产生字符串时的想法联系起来。当程序员坐下来编写 PowerShell 脚本时,即使他们做得不好,或者他们的 PowerShell 心智模型与规范文档有很大不同,他们也会生成该语言中的字符串。

首先,不存在格式错误的 PowerShell 程序之类的东西,只是一个不在语言中的字符串,因此根据规范没有语义。第二种,格式错误的 PowerShell 程序是 PowerShell 程序。

请记住第二个定义,并记住 prettify 不需要处理代码生成器的输出。

于 2017-06-20T15:35:15.773 回答