Ticket #775: JavascriptSyntaxCheck.diff

File JavascriptSyntaxCheck.diff, 2.9 KB (added by holli, 5 years ago)
  • Padre-Plugin-JavaScript/lib/Padre/Plugin/JavaScript.pm

     
    3030    return ('JavaScript' => [ 
    3131        'JavaScript Beautifier', sub { $self->js_eautifier }, 
    3232        'JavaScript Minifier',   sub { $self->js_minifier }, 
     33        'JavaScript Syntax Check', sub { $self->js_syntax_check }, 
    3334    ]); 
    3435} 
    3536 
    3637sub js_eautifier { 
    3738    my ( $self ) = @_; 
    38     my $main = $self->main; 
     39    my ($main,$src,$doc,$code) = $self->_get_code; return unless $code; 
    3940 
    40     my $src = $main->current->text; 
    41     my $doc = $main->current->document; 
    42     return unless $doc; 
    43     my $code = $src ? $src : $doc->text_get; 
    44     return unless ( defined $code and length($code) ); 
    45  
    4641    require JavaScript::Beautifier; 
    4742    JavaScript::Beautifier->import('js_beautify'); 
    4843         
     
    6156 
    6257sub js_minifier { 
    6358    my ( $self ) = @_; 
    64     my $main = $self->main; 
     59    my ($main,$src,$doc,$code) = $self->_get_code; return unless $code; 
    6560 
    66     my $src = $main->current->text; 
    67     my $doc = $main->current->document; 
    68     return unless $doc; 
    69     my $code = $src ? $src : $doc->text_get; 
    70     return unless ( defined $code and length($code) ); 
    71  
    7261    require JavaScript::Minifier::XS; 
    7362    JavaScript::Minifier::XS->import('minify'); 
    7463         
     
    8271    } 
    8372} 
    8473 
     74sub js_syntax_check 
     75{ 
     76    my ( $self ) = @_; 
     77    my ($main,$src,$doc,$code) = $self->_get_code; return unless $code; 
     78 
     79    require JE; 
     80 
     81    if ( JE->new->parse($code) ) 
     82    { 
     83        $main->message( Wx::gettext('Syntax ok'), 'Info' ); 
     84    } 
     85    else 
     86    { 
     87        $main->message( Wx::gettext($@), 'Info' ); 
     88    } 
     89} 
     90 
     91sub _get_code 
     92{ 
     93    my ( $self ) = @_; 
     94    my $main = $self->main; 
     95 
     96    my $src = $main->current->text; 
     97    my $doc = $main->current->document; 
     98    return unless $doc; 
     99    my $code = $src ? $src : $doc->text_get; 
     100    return unless ( defined $code and length($code) ); 
     101    return ($main,$src,$doc,$code); 
     102} 
     103 
    851041; 
    86105__END__ 
    87106 
  • Padre-Plugin-JavaScript/Makefile.PL

     
    1212requires       'Class::Autouse'          => '1.26'; 
    1313requires       'JavaScript::Beautifier'  => '0.03'; 
    1414requires       'JavaScript::Minifier::XS'; 
     15requires       'JE'; 
    1516 
    1617test_requires  'Test::More'              => '0.47'; 
    1718test_requires  'Test::NeedsDisplay'      => '1.05'; 
  • Padre-Plugin-JavaScript/Changes

     
    1  
     10.26    2009.11.30 
     2        add JE (Syntax Check) 
     3         
    240.25    2009.2.1 
    35        for Padre 0.26 
    46