2012-11-15 8 views
6

nasıl uzun biçimlendirmek için perltidy yapılandırabilirsiniz eğer böyle ifadeler:perltidy biçimlendirme kompleksi eğer

if (
    ('this is an example' =~ /an.*example/ and 1 * 2 * 3 == 6) or 
    ('hello world' =~ /world/ and 6 = 3 * 2 * 1) 
) { 
    print "hello\n"; 
} 

veya bu

if (
    ('this is an example' =~ /an.*example/ and 1 * 2 * 3 == 6) 
    or ('hello world' =~ /world/ and 6 == 3 * 2 * 1) 
) { 
    print "hello\n"; 
} 

Edit1 gibi:

--maximum-line-length=100 
--indent-columns=4 
--default-tabsize=4 
--continuation-indentation=4 
--closing-token-indentation=0 

--no-indent-closing-brace 

--paren-tightness=2 
--square-bracket-tightness=2 
--block-brace-tightness=0 

--trim-qw 

--nospace-terminal-semicolon 
--nospace-for-semicolon 

--indent-spaced-block-comments 
--ignore-side-comment-lengths 

--cuddled-else 

--no-opening-brace-on-new-line 
--no-opening-sub-brace-on-new-line 
--no-opening-anonymous-sub-brace-on-new-line 
--no-brace-left-and-indent 

--blanks-before-comments 
--blank-lines-before-subs=1 
--blanks-before-blocks 
--maximum-consecutive-blank-lines=1 

perltidyrc

Düzenleme 2: İlk ( ve son )'dan sonra { ile yeni bir satırın olması için yeni bir satıra sahip olmaktır. Bu mümkün değilse, daha iyi biçimlendirme için diğer öneriler takdir edilecektir.

cevap

4

Varsayılan perltidy stili, mümkünse Perl Style Guide'u takip etmektir. Bu çıktıda hangi sonuçlar oluşur?

if ( ('this is an example' =~ /an.*example/ and 1 * 2 * 3 == 6) 
    or ('hello world' =~ /world/ and 6 == 3 * 2 * 1)) 
{ 
    print "hello\n"; 
} 

Kıvrık parantezleri yeni bir satırda olsun veya olmasın kontrol edebilirsiniz. Parantezlerin sıkılığını kontrol edebilirsiniz. Bununla birlikte, kod bloklarındaki parantez için yeni satırları kontrol edemezsiniz.

Varsayılan stil, istediğiniz çıktıya ulaşacağınız kadar yakındır. o saçma sapan uzun olursa

+0

Eğer ifade çok satırlı ise dış parantez öncesi/sonrası boşluk eklemenin bir yolu var mı? (p.s. Onları içine kaldırdığım perltidyrc ekledim) – bliof

+0

@bliof, hayır, stil blokları için seçenekler oldukça sınırlıdır. – titanofold

2

, bir fikri n her satırın maksimum uzunluğu ise -l=n, her satırın maksimum uzunluğu sınırlamak için olabilir:

$ cat perltidy_test.pl 
if (
    ('this is an example' =~ /an.*example/ and 1 * 2 * 3 == 6) or('hello world' =~ /world/ and 6 = 3 * 2 * 1) 
) { 
    print "hello\n"; 
} 

$ perltidy -l=60 perltidy_test.pl 
$ cat pertidy_test.pl.tdy 
if (
    (
     'this is an example' =~ /an.*example/ 
     and 1 * 2 * 3 == 6 
    ) 
    or ('hello world' =~ /world/ and 6 == 3 * 2 * 1) 
) 
{ 
    print "hello\n"; 
} 
0

$ perltidy deneyin - bli -wba = 'veya' Bu örnek için çalışır

perltidy_test.pl ...

+0

Çok emin değilim. "Bli", küme parantezlerini girer ve "wba", "veya" ifadesinden sonra yeni satır ekler. Sorunu belirlemek için soruyu düzenlemek olacaktır .. – bliof

+0

** $ perltidy -anl -bbb tidy_test.pl ** :) 'büyük bloklar arasına boş satır eklemek -bbb' yeni satırlar ' eklemek -anl' –