比例字体IDE
我真的很想看到一个比例字体的IDE,即使我必须自己构建它(也可能是Visual Studio的扩展)。我的主要意思是对MS Word样式的代码进行编辑,看起来像《 C ++编程语言》一书中的印刷样式。
我想为缩进设置制表位,并排列函数签名和赋值语句的行,这些行可以以点而不是固定字符位置指定。我还要粗体和斜体。各种字体大小甚至样式表都很棒。
有没有人看到这样的东西,或者知道开始建造它的最佳方法?
解决方案
回答
当我上次查看Eclipse(现在是某个时候!)时,它允许我们选择要使用的所有已安装字体。不确定是否支持使用制表位缩进的概念。
看起来很酷,但是代码绝对更难阅读...
回答
我仍然希望看到流行的编辑器或者IDE实现弹性的制表符。
回答
我希望我们会对此建议不满意并接受,但是这个想法有些实际意义。
代码编辑器中传统"非比例"字体要求的主要优点是减轻了执行代码格式化的负担。
但是,随着现代IDE中发生的所有交互式自动格式设置,比例字体确实有可能提高代码的可读性(而不是妨碍它,因为我相信许多纯粹主义者会期望)。
一个叫做Roedy Green的人物(以他的"如何编写无法维护的代码"而著称),写了一篇关于基于Java的理论编辑器/语言的文章,名为Bali。它没有完全包含非比例字体,但确实包含了字体大小不一致的想法。
此外,这篇简短的Joel Spolsky帖子还发布了一种解决方案,即带有弹性制表符的制表符(如另一位评论者所述),这将有助于支持非比例(和可变大小)字体。
回答
Soeren:这很整洁,IMO。但是人们真的会这样排列评论吗?对于我的行尾注释,我总是使用一个空格,然后//或者/ *或者等价的空格,具体取决于我使用的语言。我从不尝试排列声明或者注释或者其他任何内容,而我所见过的唯一地方是教科书中的内容。
回答
@托马斯·欧文斯
But do people really line comments up like that? ... I never try to line up declarations or comments or anything, and the only place I've ever seen that is in textbooks.
是的,人们确实会排队评论和声明以及各种各样的事情。格式一致的代码易于阅读,易于阅读的代码也易于维护。
回答
@Brian Ensink:我发现这样格式的代码不容易阅读。
int var1 = 1 //Comment int longerVar = 2 //Comment int anotherVar = 4 //Command
相对
int var2 = 1 //Comment int longerVar = 2 //Comment int anotherVar = 4 //Comment
我个人觉得第一行比第二行更容易阅读。
回答
@托马斯·欧文斯
I don't find code formatted like that easier to read.
很好,这只是个人喜好,我们可以不同意。以我们认为最好的方式格式化它,我会尊重的。我经常问自己"我该如何格式化这东西?"我的答案始终是格式化它以提高可读性,我承认这可能是主观的。
关于示例,我只喜欢在右侧有一个对齐的列,它是左侧代码中快速的"索引"。话虽如此,我可能还是避免这样注释每一行,因为代码本身不需要太多解释。如果可以的话,我倾向于在代码上方写一个段落。
但是,请考虑原始海报中的此示例。我认为,在第二个评论中更容易发现评论。
for (size-type i = 0; i<v.size(); i++) { // rehash: size-type ii = has(v[i].key)%b.size9); // hash v[i].next = b[ii]; // link b[ii] = &v[i]; } for (size-type i = 0; i<v.size(); i++) { // rehash: size-type ii = has(v[i].key)%b.size9); // hash v[i].next = b[ii]; // link b[ii] = &v[i]; }
回答
思维风格建议我们使用喜欢的文字处理软件,如Word或者Writer。用丰富的XML创建程序代码,并使用XSLT提取与编译器相关的部分。 " Office"软件将提供所有高级文本处理和格式设置功能。
回答
比例字体的主要问题是它们破坏了代码的垂直对齐,这在编写代码时是一个相当大的损失。
垂直对齐允许通过轻松执行诸如剪切,复制,粘贴,删除和缩进,不缩进等的块操作来操纵跨多行的矩形代码块。
作为示例,请考虑以下代码片段:
a1 = a111; B2 = aaaa; c3 = AAAA; w4 = wwWW; W4 = WWWW;
在等宽字体中,=和;;全部排队。
现在,如果此文本嵌入到Word中并使用比例字体显示,则该文本将有效地变为以下形式:
注意:添加了额外的空格以显示=和;如何。不再排队:
a1 = a1 1 1; B2 = aaaa; c3 = A A A A; w4 = w w W W; W4 = W W W W;
随着垂直对齐的消失,那些漂亮的代码块实际上消失了。
另外,由于不再保证光标可以垂直移动(即,列号从一行到另一行并不总是恒定的),这使得编写旨在操纵相似外观的废弃宏脚本变得更加困难。
回答
我想知道为什么没人真正回答问题,为什么接受的答案实际上与问题没有任何关系。但不管怎么说...
比例字体IDE
在Eclipse中,我们可以选择系统上的任何字体。
为我的缩进设置制表位
在Eclipse中,我们可以配置自动缩进,包括将其设置为"仅制表符"。
排列函数签名和赋值语句行
在Eclipse中,自动缩进可以做到这一点。
可以用点而不是固定字符位置来指定。
抱歉,我认为Eclipse无法为我们提供帮助。但这是开源的。 ;-)
粗体和斜体
Eclipse有。
各种字体大小甚至样式表都很棒
我认为Eclipse对于每种文件类型(例如Java源文件)仅使用一种字体和字体大小,但是对于不同的文件类型,我们可以具有不同的"样式表"。
回答
所有人都在抱怨评论没有排成一列。
在我看来,有一个非常简单的解决方案:将单位空间定义为字体中最宽的字符。现在,按比例隔开所有字符(空格除外)。如果行中的所有前面的字符在字体中最宽,则该空间将占用尽可能多的空间,以便将下一个字符排成一行。
IE:
iiii_space_Foo
xxxx_space_Foo
会对齐" Foo"," i"后面的空格比" x"后面的空格宽得多。
因此称其为弹性空间。而不是制表符。
如果我们是个聪明的编辑者,请特别对待评论,但这不过是肉汁