PowerShell / PowerShell/PSScriptAnalyzer

Format document converting timestamp within single quotes

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

還沒有人認領這個 Issue。

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

描述

From @sk82jack on December 14, 2018 0:20

System Details

System Details Output

### VSCode version: 1.30.0 c6e592b2b5770e40a98cb9c2715a8ef89aec3d74 x64

### VSCode extensions:
CoenraadS.bracket-pair-colorizer@1.0.61
eamodio.gitlens@9.2.0
ms-azure-devops.azure-pipelines@1.145.1
ms-python.python@2018.12.0
ms-vscode.csharp@1.17.1
ms-vscode.PowerShell@1.10.1
ms-vsliveshare.vsliveshare@0.3.1013


### PSES version: 1.10.1.0

### PowerShell version:

Name                           Value
----                           -----
PSVersion                      5.1.17763.134
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.134
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
Issue Description

When running format document on a script it is converting an ISO 8601 timestamp within a string to a more human-readable string.

The issue has been reproduced by someone in the PowerShell slack and if you want to try and reproduce it yourself then feel free. Script here https://github.com/sk82jack/PSFPL/blob/master/Tests/Private/ConvertTo-FplObject.Tests.ps1#L48

I am trying to copy the timestamp string from line 67 into line 48

Expected Behaviour

I'd expect text in quotes to not be altered.

Actual Behaviour

Probably best described by a gif:
2018-12-11_18-32-28

Once it converts it it then starts being weird and reporting errors that weren't reported before:
2018-12-13_23-45-09

So, if I Ctrl+Z and then format again and then it doesn't convert it but it does remove the single quote from the end of line 48. I think that must be related to the previously reported errors but it still reports errors after removing the quote:
2018-12-13_23-48-57

So, I Ctrl+Z again and try and format again but the integrated console usually crashes at this point.

Attached Logs

VSCodeDiagnosticLogs.zip

Copied from original issue: PowerShell/vscode-powershell#1657

貢獻指南

開啟貢獻指南

從這裡開始

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

研究方向

從 Tests/Private/ConvertTo-FplObject.Tests.ps1 中的重現開始,尤其關注第 48 行和第 67 行,並透過 format document 命令重現該行為。追蹤格式化程式如何處理以單引號括起的 ISO 8601 時間戳,並驗證帶引號的文字保持不變,同時不會引入解析錯誤或導致主控台當機。

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

評估

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

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

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