Skip to content

Commit 3caa157

Browse files
fix: checkstyle line numbers
1 parent 1643d72 commit 3caa157

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/emitter/checkstyle.rs

+7-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ impl Emitter for CheckstyleEmitter {
2929
formatted_text,
3030
}: FormattedFile<'_>,
3131
) -> Result<EmitterResult, io::Error> {
32-
const CONTEXT_SIZE: usize = 3;
32+
const CONTEXT_SIZE: usize = 0;
3333
let filename = ensure_real_path(filename);
3434
let diff = make_diff(original_text, formatted_text, CONTEXT_SIZE);
3535
output_checkstyle_file(output, filename, diff)?;
@@ -47,13 +47,18 @@ where
4747
{
4848
write!(writer, r#"<file name="{}">"#, filename.display())?;
4949
for mismatch in diff {
50+
let begin_line = mismatch.line_number;
51+
let mut current_line;
52+
let mut line_counter = 0;
5053
for line in mismatch.lines {
5154
// Do nothing with `DiffLine::Context` and `DiffLine::Resulting`.
5255
if let DiffLine::Expected(message) = line {
56+
current_line = begin_line + line_counter;
57+
line_counter += 1;
5358
write!(
5459
writer,
5560
r#"<error line="{}" severity="warning" message="Should be `{}`" />"#,
56-
mismatch.line_number,
61+
current_line,
5762
XmlEscaped(&message)
5863
)?;
5964
}

tests/writemode/target/checkstyle.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<checkstyle version="4.3"><file name="tests/writemode/source/fn-single-line.rs"><error line="2" severity="warning" message="Should be `fn foo_expr() { 1 }`" /><error line="2" severity="warning" message="Should be `fn foo_stmt() { foo(); }`" /><error line="2" severity="warning" message="Should be `fn foo_decl_local() { let z = 5; }`" /><error line="2" severity="warning" message="Should be `fn foo_decl_item(x: &amp;mut i32) { x = 3; }`" /><error line="2" severity="warning" message="Should be `fn empty() {}`" /><error line="2" severity="warning" message="Should be `fn foo_return() -&gt; String { &quot;yay&quot; }`" /><error line="2" severity="warning" message="Should be `fn foo_where() -&gt; T`" /><error line="2" severity="warning" message="Should be `where`" /><error line="2" severity="warning" message="Should be ` T: Sync,`" /><error line="2" severity="warning" message="Should be `{`" /><error line="52" severity="warning" message="Should be `fn lots_of_space() { 1 }`" /><error line="59" severity="warning" message="Should be ` fn dummy(&amp;self) {}`" /><error line="59" severity="warning" message="Should be `trait CoolerTypes {`" /><error line="59" severity="warning" message="Should be ` fn dummy(&amp;self) {}`" /><error line="59" severity="warning" message="Should be `fn Foo&lt;T&gt;()`" /><error line="59" severity="warning" message="Should be `where`" /><error line="59" severity="warning" message="Should be ` T: Bar,`" /><error line="59" severity="warning" message="Should be `{`" /></file></checkstyle>
2+
<checkstyle version="4.3"><file name="tests/writemode/source/fn-single-line.rs"><error line="5" severity="warning" message="Should be `fn foo_expr() { 1 }`" /><error line="7" severity="warning" message="Should be `fn foo_stmt() { foo(); }`" /><error line="9" severity="warning" message="Should be `fn foo_decl_local() { let z = 5; }`" /><error line="11" severity="warning" message="Should be `fn foo_decl_item(x: &amp;mut i32) { x = 3; }`" /><error line="13" severity="warning" message="Should be `fn empty() {}`" /><error line="15" severity="warning" message="Should be `fn foo_return() -&gt; String { &quot;yay&quot; }`" /><error line="17" severity="warning" message="Should be `fn foo_where() -&gt; T`" /><error line="18" severity="warning" message="Should be `where`" /><error line="19" severity="warning" message="Should be ` T: Sync,`" /><error line="20" severity="warning" message="Should be `{`" /><error line="55" severity="warning" message="Should be `fn lots_of_space() { 1 }`" /><error line="60" severity="warning" message="Should be ` fn dummy(&amp;self) {}`" /><error line="63" severity="warning" message="Should be `trait CoolerTypes {`" /><error line="64" severity="warning" message="Should be ` fn dummy(&amp;self) {}`" /><error line="67" severity="warning" message="Should be `fn Foo&lt;T&gt;()`" /><error line="68" severity="warning" message="Should be `where`" /><error line="69" severity="warning" message="Should be ` T: Bar,`" /><error line="70" severity="warning" message="Should be `{`" /></file></checkstyle>

0 commit comments

Comments
 (0)