redhat-developer / redhat-developer/vscode-java
Quick fixes do not provide good support for readonly files
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- TypeScript
- Star
- 2.3k
- Fork
- 546
- Merge trung bình
- 20 giờ 1 phút
- Pull request đã merge (30 ngày)
- 11
Mô tả
Description of issue
The Quick Fix menu in VS Code provides several options to fix common compiler errors, such as creating a missing method in a class.
However, this menu can be misleading for users when the affected files are marked as readonly in VS Code using the files.readonlyInclude workspace setting.
When a file is marked readonly, a Quick Fix option may still be presented to add a method or other class member to it. Selecting that option seems to have a couple of different possible behaviors:
- If the file is not open in an editor tab, the Quick Fix operation has no effect but presents no message to the user explaining why
- If the file is open in an editor tab, the Quick Fix operation will seem to apply the requested change, and the language server receives updated content for the file (meaning the red squiggle goes away). However, the updated content is not actually written to disk. Builds will fail with compilation errors. If the editor tab is closed, then the language server will refresh from the file on-disk and the red squiggle will return. Even though the changes are in-memory-only, the file does not show the white circle on the tab header indicating unsaved changes.
Requested change
Change to a more intuitive behavior for the Quick Fix options:
- Hide (or gray out) any Quick Fix options that would require changes to readonly files
- Present a popup message to the user after the Quick Fix is selected explaining that it can't be used on readonly files
At the least, the Quick Fix should not make in-memory-only changes.
Software versions
VS Code: Tested on both 1.96.2 and 1.106.3
Java Extension: 1.50.0
OS: MacOS 15.6.1
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- 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 theo dõi menu Quick Fix và cách language server xử lý các tệp khớp với thiết đặt files.readonlyInclude của VS Code. Tái hiện cả trường hợp tệp chưa được mở và trường hợp tệp đang mở trong trình chỉnh sửa, sau đó xác minh rằng các bản sửa lỗi cho tệp chỉ đọc bị ẩn hoặc bị vô hiệu hóa, giải thích vì sao chúng không thể chạy và bảo đảm không bao giờ để lại các thay đổi chỉ tồn tại trong bộ 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ệ
- java, typescript, vscode
- Lĩnh vực
- developer-experience, tooling
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 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
- 42/100