]> git.lizzy.rs Git - rust.git/blobdiff - src/checkstyle.rs
Merge pull request #3472 from devinalvaro/add-print-current-config
[rust.git] / src / checkstyle.rs
index 1eb74a99bbf84968997d28f31275f4c3fc5724b1..169a3741be46860d8de5d02a5f9ecbe87b7c862e 100644 (file)
@@ -1,72 +1,52 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-use rustfmt_diff::{Mismatch, DiffLine};
-use std::io::{self, Write, Read, stdout};
-use WriteMode;
+use std::io::{self, Write};
+use std::path::Path;
 
+use crate::rustfmt_diff::{DiffLine, Mismatch};
 
-pub fn output_heading(mode: WriteMode) -> Result<(), io::Error> {
-    let stdout = stdout();
-    let mut stdout = stdout.lock();
-    match mode {
-        WriteMode::Checkstyle => {
-            let mut xml_heading = String::new();
-            xml_heading.push_str("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
-            xml_heading.push_str("\n");
-            xml_heading.push_str("<checkstyle version=\"4.3\">");
-            try!(write!(stdout, "{}", xml_heading));
-            Ok(())
-        }
-        _ => Ok(()),
-    }
+/// The checkstyle header - should be emitted before the output of Rustfmt.
+///
+/// Note that emitting checkstyle output is not stable and may removed in a
+/// future version of Rustfmt.
+pub fn header() -> String {
+    let mut xml_heading = String::new();
+    xml_heading.push_str("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+    xml_heading.push_str("\n");
+    xml_heading.push_str("<checkstyle version=\"4.3\">");
+    xml_heading
 }
 
-pub fn output_footing(mode: WriteMode) -> Result<(), io::Error> {
-    let stdout = stdout();
-    let mut stdout = stdout.lock();
-    match mode {
-        WriteMode::Checkstyle => {
-            let mut xml_tail = String::new();
-            xml_tail.push_str("</checkstyle>");
-            try!(write!(stdout, "{}", xml_tail));
-            Ok(())
-        }
-        _ => Ok(()),
-    }
+/// The checkstyle footer - should be emitted after the output of Rustfmt.
+///
+/// Note that emitting checkstyle output is not stable and may removed in a
+/// future version of Rustfmt.
+pub fn footer() -> String {
+    "</checkstyle>\n".to_owned()
 }
 
-pub fn output_checkstyle_file<T>(mut writer: T,
-                                 filename: &str,
-                                 diff: Vec<Mismatch>)
-                                 -> Result<(), io::Error>
-    where T: Write
+pub fn output_checkstyle_file<T>(
+    mut writer: T,
+    filename: &Path,
+    diff: Vec<Mismatch>,
+) -> Result<(), io::Error>
+where
+    T: Write,
 {
-    try!(write!(writer, "<file name=\"{}\">", filename));
+    write!(writer, "<file name=\"{}\">", filename.display())?;
     for mismatch in diff {
         for line in mismatch.lines {
-            match line {
-                DiffLine::Expected(ref str) => {
-                    let message = xml_escape_str(&str);
-                    try!(write!(writer,
-                                "<error line=\"{}\" severity=\"warning\" message=\"Should be \
-                                 `{}`\" />",
-                                mismatch.line_number,
-                                message));
-                }
-                _ => {
-                    // Do nothing with context and expected.
-                }
+            // Do nothing with `DiffLine::Context` and `DiffLine::Resulting`.
+            if let DiffLine::Expected(ref str) = line {
+                let message = xml_escape_str(str);
+                write!(
+                    writer,
+                    "<error line=\"{}\" severity=\"warning\" message=\"Should be `{}`\" \
+                     />",
+                    mismatch.line_number, message
+                )?;
             }
         }
     }
-    try!(write!(writer, "</file>"));
+    write!(writer, "</file>")?;
     Ok(())
 }