[Feature] 设置里的项目环境与运行配置统一为显式保存,并提示未保存的修改

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

Maintainer thường phản hồi trong vòng 1 ngày

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

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript

Hướng nghiên cứu

Start with ProjectRuntimeSettingsView and its field bindings, especially the persistProjectRuntimeSettings() calls and onDisappear save path. Compare the macOS behavior with Windows' saveProjectEnvironmentSettings semantics and review issue #814 for the effective-value display. Done means both project and service forms use explicit saving, warn about drafts when leaving, report save outcomes consistently, avoid reloads while typing, and update the Agent Note.

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

Mô tả

enhancement review: high

问题

同一个设置窗口里,表单的保存方式不统一:

位置 macOS Windows
设置 → 项目 · JDK & Maven 改一个字段就立即保存,关闭设置时再保存一次 点「保存」才生效
设置 → 运行配置(服务表单) 点「保存」或 ⌘S 点「保存」

用户在同一个窗口里会碰到两套规则,容易出现「以为保存了其实没有」或者「以为没保存其实已经生效」。而且改项目 JDK / Maven 会触发语言服务重载和运行配置刷新,边输入边保存意味着输入路径的过程中会反复触发重载。

期望

  • 项目页和服务表单统一用显式保存,两端一致。
  • 有未保存修改时明确提示:保存按钮可用、显示「有未保存的修改」;切换分类、切换服务或关闭设置时询问是否保存或放弃。
  • 保存结果反馈一致:成功、部分成功(例如默认值已保存但 Maven 或刷新失败)、失败。可复用 Windows 已有的 saveProjectEnvironmentSettings 语义:写入完成即算保存成功,刷新结果事后报告。

注意

  • macOS 项目页目前靠「准备完成前禁用表单、关闭时仅在准备完成后保存」来避免覆盖(#809 中的 0825ad06)。改成显式保存后,要重新确认加载期间和关闭时的行为,并删掉不再需要的自动保存路径(ProjectRuntimeSettingsView 各字段绑定里的 persistProjectRuntimeSettings() 调用和 onDisappear 保存)。
  • 与 #814 的「生效值」展示配合:未保存的草稿显示草稿对应的生效值,并标明尚未保存。

验收

  • 两端项目页与服务表单都是显式保存
  • 未保存修改有提示,离开时询问保存或放弃
  • 保存成功、部分成功、失败的反馈两端一致(中英文)
  • 输入过程中不触发语言服务重载
  • 更新相关 Agent Note

背景

来自 #809(关联 #749)合并前的用户视角评审。

Ngôn ngữ chính
TypeScript
Star
1.8k
Fork
151
Merge trung bình
12 giờ 4 phút
Pull request đã merge (30 ngày)
366

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

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.

Issue khác của 1lck/Lithe-IDEA

Tất cả issue của 1lck/Lithe-IDEA

Issue tương tự

Thêm issue về TypeScript

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.