Index: PPIx-EditorTools/lib/PPIx/EditorTools/Outline.pm
===================================================================
--- PPIx-EditorTools/lib/PPIx/EditorTools/Outline.pm	(revision 19014)
+++ PPIx-EditorTools/lib/PPIx/EditorTools/Outline.pm	(working copy)
@@ -100,7 +100,8 @@
 						if grep { $thing->module eq $_ } (
 						'Method::Signatures',
 						'MooseX::Declare',
-						'MooseX::Method::Signatures'
+						'MooseX::Method::Signatures',
+						'Moose'
 						);
 				}
 			}
@@ -135,16 +136,20 @@
 				$_[1]->next_sibling->isa('PPI::Token::Whitespace') or return 0;
 				my $sib_content = $_[1]->next_sibling->next_sibling->content or return 0;
 
-				$sib_content =~ m/^\b(\w+)\b/;
-				return 0 unless defined $1;
+				my $name = eval $sib_content;
+				
+				# if eval() failed for whatever reason, default to original trimmed original token
+				$name ||= ($sib_content =~ m/^\b(\w+)\b/)[0];
+				
+				return 0 unless defined $name;
 
 				# test for MooseX::Declare class, role
 				if ( $_[1]->content =~ m/(class|role)/ ) {
 					$self->_Moo_PkgName( $cur_pkg, $sib_content, $_[1] );
-					return 1; # break out so we don't write Packae name as method
+					return 1; # break out so we don't write Package name as method
 				}
 
-				push @{ $cur_pkg->{methods} }, { name => $1, line => $_[1]->line_number };
+				push @{ $cur_pkg->{methods} }, { name => $name, line => $_[1]->line_number };
 
 				return 1;
 			}
@@ -168,23 +173,22 @@
 ########
 sub _Moo_Attributes {
 	my ( $self, $ma_node2, $ma_cur_pkg, $ma_thing ) = @_;
-
+	
+	my $line_num = $ma_thing->location->[0];
+	
 	# tidy up Moose attributes for Outline display
-	my $ma_has_att = $ma_node2->content;
-	my $space      = q{ };
-	$ma_has_att =~ s/^\[?(qw(\/|\())?$space?//;   # remove leading 'quote word'
-	$ma_has_att =~ s/(\/|\))?\]?$//;              # remove traling 'quote word'
-	$ma_has_att =~ s/(\'$space?)//g;              # remove Single-Quoted String Literals
-	$ma_has_att =~ s/($space?\,$space?)/$space/g; # remove commers add space
-	                                              # split mulitline attributes to one per line
-	my @ma_atts_found = split /$space/, $ma_has_att,;
-
-	foreach my $ma_att (@ma_atts_found) {
-
-		# add to outline
-		push @{ $ma_cur_pkg->{attributes} }, { name => $ma_att, line => $ma_thing->location->[0] };
-	}
-	return;
+	my $attrs = eval $ma_node2->content;
+	
+	# if eval() failed for whatever reason, default to original token
+	$attrs ||= $ma_node2->content;
+	
+        (ref $attrs eq 'ARRAY') ?
+          map {
+            push @{ $ma_cur_pkg->{attributes} },
+            { name => $_, line => $line_num }
+          } grep { defined } @{ $attrs }
+        :
+          push @{ $ma_cur_pkg->{attributes} }, { name => $attrs, line => $line_num };
 }
 
 ########
