新闻代码分割/格式 - 需要权威提及

时间:2012-10-26 09:59:20

标签: java c++ python ruby formatting

我正在寻找快速而有效的方法来分割代码并将其用于新闻。我正在为编码杂志工作,为印刷机准备代码总是一个很大的问题,因为一栏中的空间有限。现在我手动完成,非常烦人。让我给你举个例子。这是我正在处理的代码(已经按照我自己的风格格式化/吐出),它适用于Android:

private void GetFiles() {
  listBox1.Items.Clear();
  var storeFile = IsolatedStorageFile. 
    GetUserStoreForApplication();
  string fileString = System.IO.Path.GetFileName("*");
  string[] files = storeFile.GetFileNames("*");
  for (int i = 0; i < storeFile.GetFileNames("/" + 
      fileString).Length; i++) {
    String fileName = storeFile.GetFileNames(fileString)[i];
    String ext = fileName.Substring(fileName.Length - 3);
    if (ext == "png") listBox1.Items.Add(fileName);

} }

请注意

var storeFile = IsolatedStorageFile. 
    GetUserStoreForApplication();

是一行。对于按列来说太长了,这就是为什么我用最近的逻辑断点(此处为 - 点)拆分并用4个空格缩进行的第二部分(内联总是缩进2个空格)。我知道,这不是最好的方式,很难理解。这就是我从广泛的软件开发人员那里寻找权威答案的原因。我不仅需要使用C ++代码,还需要使用Assembler,JavaScript,Ruby和Python。最后一个是一个单独的问题 - 它是缩进的,所以我必须特别小心缩进。

所以,问题是:这是在杂志有限空间格式化代码的最佳方式吗? 更喜欢哪种方式?请提出自己的想法。每个答案都受到高度赞赏。

UPD :以下是杂志现在的样子:Current look。它可以帮助您理解问题。太长的行被'\'分割,行的最后一部分缩进。不太明显,不是吗? =(

2 个答案:

答案 0 :(得分:3)

为什么不简单地使用Eclipse内置的代码格式化程序。您可以轻松配置最大长度等。然后你只需使用ctrl + shift + f根据你定义的代码风格进行格式化。

啊,我没有意识到这不是一个特定的Java问题。您在此处粘贴的代码无法编译,编辑器拒绝对其进行格式化。但是,如果我使用你的截图,它默认看起来像这样(我改变了最大行长度):

if (Input.GetKeyDown("space")) {
    Vector3 prosition = new Vector3(
        tranform.position.x,
        transform.position.y + 1,
        transform.position.z);
    }
    Instantiate(ProjectilePrefab, position,
            Quaternion.Identiy);
}

答案 1 :(得分:1)

所以...在这个循环中你要检索一个完整的文件列表,测试长度,然后再次获得完整的文件列表(除了略有不同,因为你遗漏了"/"前缀)并希望那里仍然是i元素。您可以像文件一样多次重复此过程,以实现O(2n^2)的美味时间复杂度。

你当然是将这个功能作为不做的例子发布,对吗?

为了给出我对布局的偏好,我宁愿你分开=如果它适合......但是现在你已经用样本图像进行了编辑,看起来你的空间更小了与你第一次暗示相比。

如果您实际上尝试发布较便宜的算法,则可以选择将结果搜索存储在变量中,并缩短该循环中的大部分行...