首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >智能缩进算法文档?

智能缩进算法文档?
EN

Stack Overflow用户
提问于 2009-08-23 16:41:00
回答 4查看 3.6K关注 0票数 16

我非常喜欢记录IDE特性的适当行为,这些特性对代码流有着微妙而重要的影响--比如自动完成选择和注释/取消注释代码--您可能没有意识到您利用了这些代码,但是最终您所做的事情比您可能要做的要多一些。我这么做是希望我必须使用的其他语言服务包含这个特性,从而改善我的日常编码生活。“真正的”智能缩进,即Visual 2008 C#编辑器,就是这些特性之一。

基本的块代码缩进是相当简单的,可以在合理的时间内将代码合并在一起,这样就可以完成任务。另一方面,真正的智能缩进很可能是我迄今为止在IDE中实现的最具技术挑战性的任务,而且我已经实现了我应得的份额。即使是全面启动的自动代码重新格式化也更容易;它只是为繁重的工作提供了智能缩进。

我正在寻找高层次的讨论通用智能缩进算法。特别是,我希望研究智能缩进策略,或者客观地描述所有正常和“边缘”的情况,以确保结果是可重复的、无错误的。最终想要提供功能的详细工作流程,为实际实现该功能提供一个具体的基础,并最终组装语言特定的版本并将其集成到我的语言服务中。

PS: Visual 2010的C#编辑器在这个特性中有几个小错误。我自己实施了它,我对它所需要的工作有一种全新的尊重。

编辑(8/25):当智能缩进位于代码注释中时,设法对应该如何处理事情进行了把规则草案写下来。我可能会从C++/C#的角度来研究规则,但是稍后它们应该能够为其他语言的各个方面进行参数化。

EN

回答 4

Stack Overflow用户

发布于 2009-08-24 12:59:59

压痕引擎基础. 模式手册:

JS2-模式:一种新的Emacs JavaScript模式. 史蒂夫·叶格博客咆哮:

引用后者的话:“令人惊讶的是,令人惊讶的是,与直觉相反的是,缩进问题几乎与解析和语法验证完全正交。”

票数 5
EN

Stack Overflow用户

发布于 2009-08-26 02:18:37

您正在寻找的神奇搜索短语可能是"漂亮的指纹“。

票数 3
EN

Stack Overflow用户

发布于 2009-09-03 03:30:44

与另一个响应程序一样,执行此操作的关键思想是prettyprinting,即从代码的抽象语法结构生成文本。

基本上,你可以利用树的嵌套来产生印刷文本的嵌套。关键思想是从树的叶子上构建原始字符串的概念,将文本的水平框与其他来自精细树的框粘在一起,以提供水平构图,以及在另一个树冠上粘贴框以获得更大的垂直框。

棘手的部分:用树叶的格式信息重新生成langauge文字(该二进制浮点数有多少前导零?),通过允许替代的框布局和回溯处理右边距溢出,以及模式匹配复杂的树结构以很好的方式打印特定的树(例如嵌套的if-然后-如果-然后-如果.)

以下是主题为研究论文(PDF全文)

下面是我们在印刷上做了什么DMS软件重组工具包一起打印由大规模元编程生成的AST。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1318976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档