Haskell 仅当打印效果良好时,才使用2种布局 我很喜欢打印C++方法声明,如果参数行的话,我希望参数列表以紧凑的形式呈现: void method(MyLongClassName& instance, const MyClass& c);
如果不符合以下条件,则在列中进行格式化:Haskell 仅当打印效果良好时,才使用2种布局 我很喜欢打印C++方法声明,如果参数行的话,我希望参数列表以紧凑的形式呈现: void method(MyLongClassName& instance, const MyClass& c);,haskell,pretty-print,Haskell,Pretty Print,如果不符合以下条件,则在列中进行格式化: void method( MyLongClassName& instance, const MyClass& c, int counter); 我想从考虑中排除所有其他布局。 这似乎是简单的,既没有也没有,如果不是黑客的来源 有什么想法吗?一个更普遍的问题的解决方案如何选择适合单行的布局,或者如果没有,使用替代品,可以在这里找
void method( MyLongClassName& instance,
const MyClass& c,
int counter);
我想从考虑中排除所有其他布局。
这似乎是简单的,既没有也没有,如果不是黑客的来源
有什么想法吗?一个更普遍的问题的解决方案如何选择适合单行的布局,或者如果没有,使用替代品,可以在这里找到:您是如何做到的?您是否正在从文件中读取源代码并尝试以您的格式打印它?或者你只是想格式化硬编码的字符串?检查可能输出的长度,如果它适合行,打印它,否则,自己创建一块板(2d序列或其他),填充每个单元格(第0列可能是返回类型,第1列可能是名称+(,第2列<代码>常量代码>,等等),找到每列的最大宽度,根据列的最大宽度在需要的地方打印空白,迭代每行。@JustinWood:对于任何正确的方法定义,它应该足够通用,所以没有困难-coding@gxtaillon:我很不愿意自己做这件事,因为这正是我们需要漂亮的打印库的原因。:)另一个缺点是,为了检查输出的长度,我需要呈现前面的方法声明,因此,基本上所有内容都渲染两次。@d8d0d65b3f7cf42:这就是我试图实现的全部想法:如果我更改了某些内容,将自动为我重新格式化代码:)对于表格修饰器,您可能需要查看Text.PrettyPrint.box()出于我的目的,它有一些缺点