40 columns                              |
>>> does not wrap long import string (#16366)
import 'package:some/very/long/import/path.dart';
<<<
import 'package:some/very/long/import/path.dart';
>>> wrap import at as
import 'package:some/very/long/import/path.dart' as path;
<<<
import 'package:some/very/long/import/path.dart'
    as path;
>>> import keeps shows on one line
import 'foo.dart'show Ape,Bear,Cat;
<<<
import 'foo.dart' show Ape, Bear, Cat;
>>> import moves all shows to next line
import 'foo.dart'show Ape,Bear,Cat,Dog;
<<<
import 'foo.dart'
    show Ape, Bear, Cat, Dog;
>>> import moves all shows each to their own line
import 'foo.dart'show Ape,Bear,Cat,Dog,Echidna,FlyingFox,Gorilla;
<<<
import 'foo.dart'
    show
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox,
        Gorilla;
>>> import keeps hides on one line
import 'foo.dart'hide Ape,Bear,Cat;
<<<
import 'foo.dart' hide Ape, Bear, Cat;
>>> import moves hides to next line
import 'foo.dart'hide Ape,Bear,Cat,Dog;
<<<
import 'foo.dart'
    hide Ape, Bear, Cat, Dog;
>>> import moves hides each to their own line
import 'foo.dart'hide Ape,Bear,Cat,Dog,Echidna,FlyingFox,Gorilla;
<<<
import 'foo.dart'
    hide
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox,
        Gorilla;
>>> single line both
import 'foo.dart'hide Ape show Bear;
<<<
import 'foo.dart' hide Ape show Bear;
>>> multiline first
import 'foo.dart'hide Ape,Bear,Cat,Dog, Echidna, FlyingFox show Ape,Bear,Cat,Dog;
<<<
import 'foo.dart'
    hide
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox
    show Ape, Bear, Cat, Dog;
>>> multiline second
import 'foo.dart'hide Ape,Bear,Cat,Dog show Ape,Bear,Cat,Dog, Echidna, FlyingFox;
<<<
import 'foo.dart'
    hide Ape, Bear, Cat, Dog
    show
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox;
>>> multiline both
import 'foo.dart'hide Ape,Bear,Cat,Dog, Echidna, FlyingFox show Ape,Bear,Cat,Dog, Echidna, FlyingFox;
<<<
import 'foo.dart'
    hide
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox
    show
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox;
>>> multiline both
import 'foo.dart'hide Ape,Bear,Cat,Dog, Echidna, FlyingFox show Ape,Bear,Cat,Dog, Echidna, FlyingFox;
<<<
import 'foo.dart'
    hide
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox
    show
        Ape,
        Bear,
        Cat,
        Dog,
        Echidna,
        FlyingFox;
>>> double line both
import 'foo.dart'hide Ape,Bear,Cat,Dog show Ape,Bear,Cat,Dog;
<<<
import 'foo.dart'
    hide Ape, Bear, Cat, Dog
    show Ape, Bear, Cat, Dog;
>>> force both keywords to split even if first would fit on first line
import 'foo.dart' hide Ape, Bear show Ape, Bear, Cat, Dog;
<<<
import 'foo.dart'
    hide Ape, Bear
    show Ape, Bear, Cat, Dog;
>>> force split in list
import 'foo.dart' hide First, //
Second;
<<<
import 'foo.dart'
    hide
        First, //
        Second;