1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
use strict;
use warnings;
package Code::TidyAll::Plugin::SortLines::Naturally;
$Code::TidyAll::Plugin::SortLines::Naturally::VERSION = '0.000003';
use Moo;
extends 'Code::TidyAll::Plugin';
use Unicode::Collate::Locale ();
has 'locale' => ( is => 'ro', default => 'en_US' );
sub transform_source {
my ( $self, $source ) = @_;
my $collator = Unicode::Collate::Locale->new( locale => $self->locale );
return
join( "\n", $collator->sort( grep {/\S/} split( /\n/, $source ) ) )
. "\n";
}
1;
=pod
=encoding UTF-8
=head1 NAME
Code::TidyAll::Plugin::SortLines::Naturally - Sort lines of a file using Unicode::Collate::Locale
=head1 VERSION
version 0.000003
=head1 SYNOPSIS
# In configuration:
[SortLines::Naturally]
select = .ispell* **/.gitignore
=head1 DESCRIPTION
Sorts the lines of a file; whitespace lines are discarded. Useful for files
containing one entry per line, such as C<.svnignore>, C<.gitignore>, and
C<.ispell*>.
=head1 CONFIGURATION
=over
=item locale
The locale to use for collation. Defaults to "en_US".
=back
=head1 ACKNOWLEDGEMENTS
This code was essentially pilfered from L<Code::TidyAll::Plugin::SortLines>
=head1 AUTHOR
Olaf Alders <olaf@wundercounter.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Olaf Alders.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
__END__
# ABSTRACT: Sort lines of a file using Unicode::Collate::Locale
|