PowerShell / PowerShell/PSScriptAnalyzer

Format doesn't work for comma `,` separated parameters

Đang mở
#1,684 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Area - Formatter Issue - Bug
Ngôn ngữ chính
C#
Star
2.2k
Fork
414
Merge trung bình
13 giờ 1 phút
Pull request đã merge (30 ngày)
2

Mô tả

System Details

System Details Output

### VSCode version: 1.51.1 e5a624b788d92b8d34d1392e4c4d9789406efe8f x64

### VSCode extensions:
janisdd.vscode-edit-csv@0.6.0
ms-python.python@2021.2.633441544
ms-toolsai.jupyter@2021.2.576440691
ms-vscode.cpptools@1.1.3
ms-vscode.hexeditor@1.3.0
ms-vscode.powershell@2020.6.0
redhat.vscode-commons@0.0.6
redhat.vscode-xml@0.16.1


### PSES version: 2.2.0.0

### PowerShell version:

Name                           Value
----                           -----
PSVersion                      7.1.3
PSEdition                      Core
GitCommitId                    7.1.3
OS                             Microsoft Windows 10.0.19043
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Issue Description

Create a PowerShell file, input following script, and hit Alt+Shift+F. The file is not formatted.

    $a = [pscustomobject]@{
        a=1
      b=2
    }
            $a|Select-Object  a,b

Related settings in settings.json:

    "powershell.codeFormatting.trimWhitespaceAroundPipe": true,
    "powershell.codeFormatting.useCorrectCasing": true,
    "powershell.codeFormatting.whitespaceBetweenParameters": true,
Expected Behaviour

The format result should look similar to:

$a = [pscustomobject]@{
    a = 1
    b = 2
}
$a | Select-Object -Property a, b
Actual Behaviour

The file is unchanged.

Here are some other input/output combinations if I change the script a little bit and hit Alt+Shift+F again:

  • Case 1 -- looks well except that the space is removed in a, b.
    • Input:
        $a = [pscustomobject]@{
            a=1
          b=2
        }
                $a|Select-Object  a, b
    
    • Output:
    $a = [pscustomobject]@{
        a = 1
        b = 2
    }
    $a | Select-Object a,b
    
  • Case 2 -- the necessary comma , is removed in a ,b, which makes the code invalid.
    • Input:
        $a = [pscustomobject]@{
            a=1
          b=2
        }
                $a|Select-Object  a ,b
    
    • Output:
    $a = [pscustomobject]@{
        a = 1
        b = 2
    }
    $a | Select-Object a b
    
  • Case 3 -- the space is removed in a, b.
    • Input:
    $a = [pscustomobject]@{
        a = 1
        b = 2
    }
    $a | Select-Object a, b
    
    • Output:
    $a = [pscustomobject]@{
        a = 1
        b = 2
    }
    $a | Select-Object a,b
    
  • Case 4 -- this is the reverse of Case 3. If I keep hitting Alt+Shift+F, the file will cycle through Case 3 and 4.
    • Input:
    $a = [pscustomobject]@{
        a = 1
        b = 2
    }
    $a | Select-Object a,b
    
    • Output:
    $a = [pscustomobject]@{
        a = 1
        b = 2
    }
    $a | Select-Object a, b
    

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tái hiện vấn đề trong một tệp PowerShell bằng Alt+Shift+F, với các tham số được phân tách bằng dấu phẩy và các cài đặt định dạng mã được liệt kê. So sánh đầu ra của trình định dạng với các ví dụ mong đợi, bao gồm cả việc giữ nguyên dấu phẩy và khoảng trắng trong a, b; được xem là hoàn tất khi việc định dạng ổn định và mã vẫn hợp lệ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
powershell
Lĩnh vực
tooling
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.