比例字体IDE

时间:2020-03-05 18:40:21  来源:igfitidea点击:

我真的很想看到一个比例字体的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"后面的空格宽得多。

因此称其为弹性空间。而不是制表符。

如果我们是个聪明的编辑者,请特别对待评论,但这不过是肉汁