PLE front end: server and CLI support for a product-line VS Code experience

Đang mở
#411 1 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ó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/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ệ
javascript
Lĩnh vực
backend-api-design

Hướng nghiên cứu

This is a tracking issue and names no files or tests; start with child #412, which decides how the PLE front end receives structured model data. Follow the suggested order through #413 and the later children to understand the scope. Work is done when the relevant child issues are implemented; this parent alone does not define a bounded first contribution.

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

Mô tả

Context

The VS Code front end for syscribe is being built around product line engineering (PLE). It uses syscribe lsp and the CLI today. The extension is deliberately a thin LSP client (ADR-SYS-LSP-001: standard LSP methods only), so anything that is not VS Code UI belongs in the server or the CLI where every editor benefits.

This is the tracking issue. Children:

  • #412 Decision: how the PLE front end gets structured model data (custom LSP requests vs versioned JSON CLI vs MCP)
  • #413 Versioned, schema-published JSON contract for the PLE commands
  • #414 Capabilities and version handshake for the front end
  • #415 Change notifications: tell the front end which elements changed after a reload
  • #416 Live propagation: forced/excluded/free features for a partial selection, without writing a file
  • #417 Explain a feature's state: why forced or excluded, and what would have to change to select it
  • #418 Staged binding actions: bind a parameter at a stage with range/unit checks, and a stage timeline
  • #419 PLE-aware completion: feature ids in appliesWhen/features, parameter keys, enum values, stage names
  • #420 Hover and code lens for variability: where an element is active, where a parameter is bound
  • #421 Quick fixes for the PLE and binding-time diagnostics
  • #422 Semantic tokens for feature and parameter references
  • #423 Variant diff and change-impact data: which Configurations flip when a feature or constraint changes
  • #424 Coverage matrix data with actionable gaps
  • #425 Children and tree data for explorer views (features, requirements, tests, Configurations)
  • #426 Preview-before-write for UI actions: return the delta and resulting findings, then commit on confirm
  • #427 Scaffolding actions: new feature, new Configuration (derived at a stage), new parameter
  • #428 Project health summary for a status-bar item
  • #429 Incremental revalidation for large product lines
  • #430 Protocol test harness and fixture model for front-end CI

Already tracked elsewhere and not duplicated here: #380 (requirements-centred LSP authoring) with #381 (frontmatter completion), #382 (unsaved buffers), #383 (configuration/variant awareness), #384 (quick fixes), #385 (trace navigation), #386 (self-explaining diagnostics); #405 (format-preserving structural writes).

Suggested order: the transport decision first, then the versioned JSON contract, live propagation, and PLE-aware completion/hover.

Ngôn ngữ chính
Rust
Star
8
Fork
1
Merge trung bình
3 giờ 35 phút
Pull request đã merge (30 ngày)
69

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 sjames/syscribe

Tất cả issue của sjames/syscribe

Issue tương tự

Thêm issue về Rust

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.