Google 代码美化指南

Guidelines for Google Code Prettify

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

的支持

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

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

问题

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

should syntax highlighting work for invalid code or should it attempt to highlight such errors

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

在像 SO 这样的网站上,美化适用于新手和对其他语言非常熟悉并试图对现有代码片段进行现场编辑的维护人员编写的输入。

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

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

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


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

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

从第一种意义上说,没有格式错误的 PowerShell 程序这样的东西,只是一个不在语言中的字符串,因此根据规范没有语义。第二种,格式错误的PowerShell程序是PowerShell程序。

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