PowerShell / PowerShell/PSScriptAnalyzer

Formatting Issue, example included

未關閉
#1,647 10 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

Area - Formatter Issue - Bug
主要語言
C#
星號
2.2k
分支
415
平均合併
13 小時 1 分鐘
30 天內合併 PR
2

描述

Issue Type: Bug

This is an example of the formatting issue I have been struggling with. It appears that that using a multi-line piping statement, along with the 'Out-Null' is the cause in this situation. Formatting the document adds an additional tab each time this code happens. I have much more involved code then this example that becomes really confusing when this indent issue occurs.

function Test-Format([int]$num) {
	if($num -eq 1){
		Get-ChildItem -Path 'c:\*.*' | Where-Object {$_.name -like 'test1.*'} |
			ForEach-Object{Remove-Item -Path $_ | Out-Null}
		}
		else{
			Get-ChildItem -Path 'c:\*.*' | Where-Object {$_.name -like 'test2.*'} |
				ForEach-Object{Remove-Item -Path $_ | Out-Null}
			}
		}
		Test-format -num 1

Extension version: 2021.2.2
VS Code version: Code 1.54.1 (f30a9b73e8ffc278e71575118b6bf568f04587c8, 2021-03-04T22:38:31.419Z)
OS version: Windows_NT x64 10.0.19042

System Info
Item Value
CPUs Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz (8 x 3700)
GPU Status 2d_canvas: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
protected_video_decode: unavailable_off
rasterization: enabled
skia_renderer: enabled_on
video_decode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
Load (avg) undefined
Memory (System) 31.92GB (22.25GB free)
Process Argv --crash-reporter-id 73837bc4-9684-4f62-8d48-bb5a4bc03bd8
Screen Reader no
VM 0%
A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstry244cf:30256637
pythonvsdeb440:30248342
pythonvsded773:30248341
pythonvspyt875:30259475
dockersubset:30265998
pythontbcf:30265426
vspre833:30267464

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

先使用本報告中的多行 PowerShell pipeline 和 Out-Null 範例重現問題,並盡可能使用所述版本的 PSScriptAnalyzer 擴充功能和 VS Code。追蹤處理 pipeline 縮排的 formatter 進入點;當重複格式化不再加入額外的定位字元,且所示的 if/else 結構仍保持正確對齊時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
powershell
領域
tooling
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。