local Runner = require('tests.indent.common').Runner local XFAIL = require('tests.indent.common').XFAIL local run = Runner:new(it, 'tests/indent/java', { tabstop = 2, shiftwidth = 2, softtabstop = 0, expandtab = true, }) describe('indent Java:', function() describe('whole file:', function() run:whole_file('.', { expected_failures = {}, }) end) describe('new line:', function() run:new_line('method.java', { on_line = 1, text = 'void foo() {}', indent = 2 }) run:new_line('issue_2571.java', { on_line = 5, text = 'void bar() {}', indent = 2 }) run:new_line('enum.java', { on_line = 2, text = 'THING_B,', indent = 2 }) run:new_line('class_with_annotation.java', { on_line = 2, text = 'void foo() {}', indent = 2 }) run:new_line('enum_with_annotation.java', { on_line = 2, text = 'THING;', indent = 2 }) run:new_line('interface.java', { on_line = 1, text = 'void foo();', indent = 2 }) run:new_line('javadoc.java', { on_line = 2, text = '* Sample javadoc line', indent = 3 }) run:new_line( 'issue_2583.java', { on_line = 3, text = 'int x = 1;', indent = 4 }, 'broken tree', XFAIL ) run:new_line('issue_2583.java', { on_line = 4, text = 'int x = 1;', indent = 4 }) run:new_line('method_chaining.java', { on_line = 4, text = '.append("b");', indent = 6 }) run:new_line( 'constructor_with_arguments_on_multiple_lines.java', { on_line = 4, text = '}', indent = 2 } ) run:new_line( 'method_with_arguments_on_multiple_lines.java', { on_line = 4, text = '}', indent = 2 } ) run:new_line('annotation.java', { on_line = 1, text = 'abstract public Foo(){}', indent = 2 }) run:new_line('annotation_2.java', { on_line = 2, text = 'Bar.class', indent = 4 }) end) end)