2010-12-27 8 views
7

मैं पर्लटीडी को असाइनमेंट को संरेखित करने से कैसे रोक सकता हूं लेकिन एकल रिक्त स्थान जोड़ना जारी रख सकता हूं?मैं पर्लटीडी को असाइनमेंट को संरेखित करने से कैसे रोक सकता हूं लेकिन एकल रिक्त स्थान जोड़ना जारी रख सकता हूं?

यह प्रश्न How can I prevent PerlTidy from aligning my assignments? जैसा है लेकिन मुझे निर्देश दिया गया है कि एकल स्थान जोड़े जाने चाहिए। इस -naws स्विच के कारण मेरे लिए काम नहीं करता है। मैं सिर्फ एकाधिक रिक्त स्थान डालना नहीं चाहता हूं। क्या यह perltidy या कुछ अन्य उपकरण के साथ possibe है?

पर्ल साफ परिवर्तन:

my $a = 1; 
my $aa = 2; 
my $aaa= 3; 

में

my $a = 1; 
my $aa = 2; 
my $aaa = 3; 

-naws साथ यह परिवर्तित नहीं होता:

my $a = 1; 
my $aa = 2; 
my $aaa= 3; 

मैं इस कोड चाहते हैं प्रारूप तैयार किया जाता है के रूप में:

my $a = 1; 
my $aa = 2; 
my $aaa = 3; 

उत्तर

3

निम्नलिखित पैच मेरे लिए काम किया:

--- Tidy.pm.org 2009-06-16 22:00:50.000000000 +0200 
+++ Tidy.pm 2010-12-28 09:43:19.625000000 +0100 
@@ -12404,7 +12404,7 @@ 
     # accept vertical alignment. 

     # nothing to do if we aren't allowed to change whitespace 
-  if (!$rOpts_add_whitespace) { 
+  if (1 || !$rOpts_add_whitespace) { 
      for my $i (0 .. $max_index_to_go) { 
       $matching_token_to_go[$i] = ''; 
      } 
+0

यह ज्यादातर लोगों के लिए एक बहुत ही व्यवहार्य समाधान नहीं है - आप चाहते हैं कि यह अन्य लोगों की मशीनों और सीआई बुनियादी ढांचे पर आसानी से दोहराने योग्य हो। –

2

एक गैर-दस्तावेजी झंडा --no-valign जो perltidy स्रोत को संशोधित किए बिना दोनों दुनिया का सबसे अच्छा प्राप्त करने के लिए प्रकट होता है नहीं है।

जैसा कि आप इंगित करते हैं, --no-add-whitespace बहुत आक्रामक है और व्हाइटस्पेस को अन्य, वांछित स्थानों (ऑपरेटरों आदि के आसपास) में जोड़ने से रोकता है। --no-valign perltidy my ($arg)[email protected]_; से my ($arg) = @_; जैसी चीजों को अभी भी सही कर रहा है लेकिन ऑपरेटरों को लंबवत रूप से लाइनों में संरेखित करने का प्रयास नहीं करता है। सेटिंग लंबवत संरेखक को पूरी तरह से अक्षम नहीं करती है, इसलिए आपको अभी भी अन्य स्थानों (जैसे साइड-टिप्पणियां) में कुछ लाभ मिलते हैं।

समस्या सिर्फ मैं अब तक इस के साथ मिल गया है है कि बगल की टिप्पणियों का एक ब्लॉक के पहले पक्ष टिप्पणी बाद में लोगों के साथ मेल नहीं किया गया:

my @DISAGREE_NONFATAL = grep { exists $warnings::Offsets{$_} } (
    'newline', # stat on nonexistent file with a newline in it 
    'experimental', # no reason for these to be fatal 
    'deprecated', # unfortunately can't make these fatal 
    'portable',  # everything worked fine here, just may not elsewhere 
); 

यह केवल --minimum-space-to-comment का सम्मान किया जाता है। मुझे यकीन नहीं है कि बाद की (तीसरी और चौथी) लाइनें ठीक से क्यों काम करती हैं। मैं साइड-टिप्पणियों का अधिक उपयोग नहीं करता इसलिए यह एक बड़ा मुद्दा नहीं है (और आप ऐसे ब्लॉक पर --format-skipping का उपयोग कर सकते हैं)।

संबंधित मुद्दे