PowerShell / PowerShell/PowerShellEditorServices

Add support for renaming PowerShell class references

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

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

Issue-Bug Needs: Triage
Ngôn ngữ chính
C#
Star
767
Fork
266
Merge trung bình
3 ngày 16 giờ
Pull request đã merge (30 ngày)
1

Mô tả

Prerequisites
  • I have written a descriptive issue title.
  • I have searched all open and closed issues to ensure it has not already been reported.
  • I have read the troubleshooting guide.
  • I am sure this issue is with PowerShell Editor Services itself and does not reproduce in a standalone PowerShell instance, and is not an issue with my editor.
  • I have verified that I am using the latest version of PowerShell Editor Services.
  • If this is a security issue, I have read the security issue reporting guidance.
Summary

This is not a bug, but the README says that rename scenarios should be filed as bug reports, so that's what I'm doing.
I think it should be fairly trivial to add renaming support for PowerShell classes defined in the same script file.
Expected:

class DemoClass
{
    [string] $SomeProperty

    DemoClass ([string] $SomeArg)
    {
        $this.SomeProperty = $SomeArg
    }
}

[DemoClass]

Actual:

class NewName
{
    [string] $SomeProperty

    NewName ([string] $SomeArg)
    {
        $this.SomeProperty = $SomeArg
    }
}

[NewName]

One thing to keep in mind during implementation is that a PowerShell class can also be used to define an attribute, and an attribute type can drop the optional Attribute suffix in an attribute context as seen here:

class ValidateSomethingAttribute : System.Management.Automation.ValidateArgumentsAttribute
{
    [void]Validate([System.Object]$arguments, [System.Management.Automation.EngineIntrinsics]$engineIntrinsics)
    {
    }
}
[ValidateSomething()][string]$Path = "c:\windows"
PowerShell Version
Name                           Value
----                           -----
PSVersion                      7.6.1
PSEdition                      Core
GitCommitId                    7.6.1
OS                             Microsoft Windows 10.0.26200
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.4
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Editor Version
VS code:

Version: 1.117.0 (system setup)
Commit: 10c8e557c8b9f9ed0a87f61f1c9a44bde731c409
Date: 2026-04-21T16:12:14-07:00
Electron: 39.8.7
ElectronBuildId: 13841579
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.26200
PowerShell Editor Services Version
Major  Minor  Build  Revision
-----  -----  -----  --------
4      6      0      0
Steps to Reproduce

Use the code blocks from before and press F2 on the class name references.

Visuals

No response

Logs

No response

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

Bắt đầu bằng cách tái hiện hai ví dụ về lớp và nhấn F2 trên các tham chiếu đến tên lớp. Truy vết cách xử lý đổi tên hiện có trong PowerShell Editor Services, bao gồm các tham chiếu đến lớp trong cùng tệp và hành vi của hậu tố Attribute tùy chọn. Hoàn tất khi việc đổi tên cập nhật nhất quán phần khai báo, hàm khởi tạo, các tham chiếu kiểu và việc sử dụng thuộc tính.

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

Đánh giá

Công nghệ
csharp, powershell
Lĩnh vực
devtools, tooling
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/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.