Ticket #484: brace_match_select.patch

File brace_match_select.patch, 1.7 KB (added by karl.forner, 5 years ago)
  • Padre/lib/Padre/Action/Edit.pm

    old new  
    318318            Padre::Wx::Main::on_brace_matching(@_); 
    319319        }, 
    320320    ); 
     321     
     322    Padre::Action->new( 
     323        name        => 'edit.brace_match_select', 
     324        need_editor => 1, 
     325        label       => Wx::gettext('&Select to matching brace'), 
     326        comment     => Wx::gettext('Select to the matching opening or closing brace: {, }, (, )'), 
     327        shortcut    => 'Ctrl-4', 
     328        menu_event  => sub { 
     329            my $self = shift; 
     330            my $INVALID_POSITION = Wx::wxSTC_INVALID_POSITION; 
     331            my $page = $self->current->editor; 
     332            my $pos1 = $page->GetCurrentPos; 
     333            my $pos2 = $page->BraceMatch($pos1); 
     334            if ( $pos2 == $INVALID_POSITION ) { #Wx::wxSTC_INVALID_POSITION 
     335                if ( $pos1 > 0 ) { 
     336                    $pos1--; 
     337                    $pos2 = $page->BraceMatch($pos1); 
     338                } 
     339            } 
     340 
     341            if ( $pos2 != $INVALID_POSITION ) { #Wx::wxSTC_INVALID_POSITION 
     342                my $start = $page->GetSelectionStart(); 
     343                $page->SetSelection($start, $pos2+1); 
     344            } 
     345 
     346            return;          
     347        }, 
     348    ); 
    321349 
    322350    Padre::Action->new( 
    323351        name           => 'edit.join_lines', 
  • Padre/lib/Padre/Wx/Menu/Edit.pm

    old new  
    144144        $self, 
    145145        'edit.brace_match', 
    146146    ); 
     147     
     148    $self->{brace_match_select} = $self->add_menu_action( 
     149        $self, 
     150        'edit.brace_match_select', 
     151    ); 
    147152 
    148153    $self->{join_lines} = $self->add_menu_action( 
    149154        $self, 
     
    361366    $self->{quick_fix}->Enable($hasdoc); 
    362367    $self->{autocomp}->Enable($hasdoc); 
    363368    $self->{brace_match}->Enable($hasdoc); 
     369    $self->{brace_match_select}->Enable($hasdoc); 
    364370    $self->{join_lines}->Enable($hasdoc); 
    365371 
    366372    $self->{insert_special}->Enable($hasdoc);