import/format tools?
Boris Carvajal
boris2.9 at gmail.com
Sat Jan 18 11:16:56 UTC 2020
On Saturday, 18 January 2020 at 09:33:34 UTC, mark wrote:
> Is there a tool that will sort imports (e.g., as per the style
> guide), and that will also add the specific names used?
D-Scanner[1] will warn you about non sorted imports
You need to set imports_sortedness="enabled" on your dscanner.ini
file.
then:
dscanner --styleCheck <your file>
> Also, is there a D source formatting tool (ideally with options
> to set a max line length and choice of braces style)?
Check dfmt[2]
> Is there any runtime (or compiletime) cost to just listing
> imports at the start of a file without listing the specific
> functions?
AFAIK there is no difference at least for now. The imported
module have to be loaded and parsed completely, on the other hand
selective imports don't pollute the symbol table.
> Is there any advantage to doing imports inside functions,
Yes, if you do the import inside a template and this is not
instantiated the import never happens and you save precious
compilation time, the same with function templates. This is
really important, if you look at phobos code you can see the
tendency to reduce to the very specific case the import statement.
> or to listing specific imports?
It's always better to import more specific modules vs complete
packages like importing std.algorithm.sorting instead of
std.algorithm but there are a lot of stuff required between some
modules that we are talking about milliseconds of difference,
however using D you get used to fast compile times that you lose
patience if the thing takes longer than one second.
[1] https://github.com/dlang-community/D-Scanner
[2] https://github.com/dlang-community/dfmt
More information about the Digitalmars-d-learn
mailing list