X-Git-Url: http://nitlanguage.org diff --git a/src/nitpretty.nit b/src/nitpretty.nit index 545eb58..9667f81 100644 --- a/src/nitpretty.nit +++ b/src/nitpretty.nit @@ -39,17 +39,24 @@ redef class ToolContext var opt_inline_do = new OptionBool("Force do keyword on the same line as the method signature", "--inline-do") + # Force formatting on empty lines. + # + # By default empty lines are kept as they were typed in the file. + # When enabling this option, `nitpretty` will decide where to break lines + # and will put empty lines to separate properties and code blocks. + var opt_skip_empty = new OptionBool("Force formatting of empty lines", "--skip-empty") + # Check formatting instead of pretty printing. # - # This option create a tempory pretty printed file then check if - # the output of the diff command on the source file and the pretty - # printed one is empty. + # This option creates a temporary pretty printed file then checks if the + # output of the diff command on the source file and the pretty printed one is + # empty. var opt_check = new OptionBool("Check format of Nit source files", "--check") end # Return result from diff between `file1` and `file2`. private fun diff(file1, file2: String): String do - var p = new IProcess("diff", "-u", file1, file2) + var p = new ProcessReader("diff", "-u", file1, file2) var res = p.read_all p.wait p.close @@ -63,6 +70,7 @@ var opts = toolcontext.option_context opts.add_option(toolcontext.opt_dir, toolcontext.opt_output) opts.add_option(toolcontext.opt_diff, toolcontext.opt_meld, toolcontext.opt_check) opts.add_option(toolcontext.opt_break_str, toolcontext.opt_inline_do) +opts.add_option(toolcontext.opt_skip_empty) toolcontext.tooldescription = "Usage: nitpretty [OPTION]... \n" + "Pretty print Nit code from Nit source files." @@ -95,14 +103,16 @@ end if toolcontext.opt_inline_do.value then v.inline_do = true end +if toolcontext.opt_skip_empty.value then + v.skip_empty = true +end for mmodule in mmodules do - if not mbuilder.mmodule2nmodule.has_key(mmodule) then + var nmodule = mbuilder.mmodule2node(mmodule) + if nmodule == null then print " Error: no source file for module {mmodule}" return end - - var nmodule = mbuilder.mmodule2nmodule[mmodule] var file = "{dir}/{mmodule.name}.nit" var tpl = v.pretty_nmodule(nmodule) tpl.write_to_file file