Changeset 5505


Ignore:
Timestamp:
06/23/09 06:27:55 (3 years ago)
Author:
azawawi
Message:

[Perl 6] Respect document newline
[Perl 6] Respect user's indentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Padre-Plugin-Perl6/lib/Padre/Plugin/Perl6/Perl6Document.pm

    r5504 r5505  
    221221    my ($self, $editor) = @_; 
    222222     
    223     my $new_line = $self->guess_newline; 
     223    my $nl = $self->guess_newline; 
    224224    my $current_line_no = $editor->GetCurrentLine; 
    225225     
     
    240240                        #Insert a variable declaration before the start of the current line 
    241241                        my $line_start = $editor->PositionFromLine( $current_line_no ); 
    242                         $editor->InsertText($line_start, "my $var_name;$new_line"); 
     242                        my $line_end   = $editor->GetLineEndPosition( $current_line_no ); 
     243                        my $line_text  = $editor->GetTextRange($line_start, $line_end); 
     244                        my $indent = ($line_text =~ /(^\s+)/) ? $1 : ''; 
     245                        $editor->InsertText($line_start, "${indent}my $var_name;$nl"); 
    243246                    }, 
    244247                }; 
     
    275278                        #Insert an empty routine definition before the current line 
    276279                        my $line_start = $editor->PositionFromLine( $current_line_no ); 
     280                        my $line_end   = $editor->GetLineEndPosition( $current_line_no ); 
     281                        my $line_text  = $editor->GetTextRange($line_start, $line_end); 
     282                        my $indent = ($line_text =~ /(^\s+)/) ? $1 : ''; 
    277283                        $editor->InsertText($line_start,  
    278                             "sub $routine_name {$new_line\t#XXX-implement$new_line}$new_line"); 
     284                            "${indent}sub $routine_name {$nl" . 
     285                            "${indent}\t#XXX-implement$nl" . 
     286                            "${indent}}$nl"); 
    279287                    }, 
    280288                }; 
     
    658666                    my $indent = ($selected_text =~ /(^\s+)/) ? $1 : ''; 
    659667                    $selected_text =~ s/^/\t/gm; 
    660                     my $line_text =  "${indent}try {\n" . 
    661                         "$selected_text\n" .  
    662                         "${indent}\tCATCH {\n" . 
    663                         "${indent}\t\twarn \"oops: \$!\";\n" . 
    664                         "${indent}\t}\n" . 
    665                         "${indent}}\n"; 
     668                    my $line_text =  "${indent}try {$nl" . 
     669                        "$selected_text$nl" .  
     670                        "${indent}\tCATCH {$nl" . 
     671                        "${indent}\t\twarn \"oops: \$!\";$nl" . 
     672                        "${indent}\t}$nl" . 
     673                        "${indent}}$nl"; 
    666674                    $editor->SetSelection( $line_start, $line_end ); 
    667675                    $editor->ReplaceSelection( $line_text ); 
Note: See TracChangeset for help on using the changeset viewer.