#1821·penrose

特性: 域定义的文档字符串

作者: KyleleeSea创建于 2024年7月3日更新于 2024年7月8日
标签system:domainsystem:language

**您的功能请求是否与问题有关?请描述。** (来自与 @joshsunshine 的对话) Penrose 的愿景是,示例应具有可扩展性,以便用户可以使用实质中的组件创建自己的图表,而无需创建自己的组件。然而,通常不清楚示例程序如何使用域对象。例如:<img width="50%" alt="Screenshot 2024-07-03 at 1 38 48 PM" src="https://GitHub.com/penrose/penrose/assets/85892844/49b2ccdb-7efc-4349-a7f0-2d7ec225294e"> 用户需要浏览样式程序并进行实验,以了解每个对象的使用方式。 通过添加自动完成信息框和悬停工具提示,我们现在拥有更好的编辑器内文档,用于内置函数。我们可以想象这些功能用于在用户在实质中编辑时向他们展示每个域定义的对象的含义。 我们有一些示例,这些文档存在于域中,但如果这些信息在用户在实质中编辑时显示,则会很方便,这样他们就不需要来回滚动。<img width="50%" alt="Screenshot 2024-07-03 at 1 23 32 PM" src="https://GitHub.com/penrose/penrose/assets/85892844/28192b10-ac0a-46f4-a2ab-4c2a05c14307"> **请描述您想要的解决方案** 这可以通过两种方式解决: **A) 添加域语言功能** 例如,添加如下的域关键字:`Document([type/predicate/function/constructor name], documentation string)` **B) 创建域约定** 例如,第一个注释在声明上将被包含在文档字符串中。 注意:我不认为这是可取的。实现起来可能很麻烦,因为解析器目前会跳过注释,如果我们希望通过遍历解析树而不是使用正则表达式来获取注释,则不得不不再跳过注释。此外,一个未知此事的用户可能会将注释包含在声明中,而不希望它们成为文档字符串。还有一些情况,用户可能在声明上有注释,但它根本不适合作为文档(例如注释代码)。

内容来源: penrose/penrose