Perltidyが割り当てを調整するのを防ぎますが、単一のスペースを追加し続けるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4538209

  •  13-10-2019
  •  | 
  •  

質問

Perltidyが割り当てを調整するのを防ぎますが、単一のスペースを追加し続けるにはどうすればよいですか?

この質問はに似ています Perltidyが割り当てを調整するのを防ぐにはどうすればよいですか? しかし、指示された場所に単一のスペースを追加したいと思います。これによると -naws スイッチは私には機能しません。複数のスペースを挿入したくないだけです。 Perltidyまたは他のツールが可能ですか?

Perl Tidyの変更:

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;
役に立ちましたか?

解決

次のパッチは私のために機能しました:

--- 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] = '';
             }

他のヒント

文書化されていない旗があります --no-valign これは、Perltidyソースを修正せずに両方の世界の最高を達成しているようです。

あなたが指摘するように、 --no-add-whitespace あまりにも攻撃的であり、他の望ましい場所(オペレーターなど)に空白が追加されるのを防ぎます。と --no-valign Perltidyはまだのようなことを修正しています my ($arg)=@_;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. 。後続(3番目と4番目の)が適切に機能する理由はわかりません。私はサイドコメントをあまり使用していないので、それは大きな問題ではありません(そしてあなたは使用できます --format-skipping そのようなブロックで)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top