Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Feature] 可拖拽停靠工具窗口系统 / 动态 Docking 布局系统

Aperta
#496 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@1lck ci sta già lavorando.

Dal 5/9/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

area:editor enhancement P0 platform:macos review: high
Problem to solve / 要解决的问题

由于现在很多窗口都是固定死的,但实际上在 IDEA 里面,可以将对应的窗口上下左右移动,而且还支持并排动态
Image
Image

Proposed solution / 建议方案

面板 resize 已经存在,sidebar 宽度、上下 Pane 的高度也有状态和持久化。需要从“固定 Split View”升级到“动态 Layout Tree”。

核心上不是修改 frame,而是维护一棵 Layout Tree。叶子节点表示具体 Pane,中间节点表示水平或垂直 Split,并保存 split ratio。用户拖动 Tool Window 时进行 drop-zone hit testing,确定目标节点和停靠方向,然后对布局树进行插入、删除和重组,由 SwiftUI 根据新的树重新构建界面。

技术点主要是Drag & Drop + Hit Testing + Layout Tree + Split Layout + State Persistence。

Target platform / 目标平台

macOS

Area / 模块

Editor / 编辑器

Priority / 优先级

P0 / 立即处理:已严重影响使用体验,核心流程受阻或无法正常使用

Alternatives considered / 已考虑的替代方案

No response

Additional context / 补充信息

No response

Checklist / 提交前检查
  • I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复建议。
Lingua principale
TypeScript
Stelle
1.8k
Fork
151
Merge medio
7h 51m
PR unite (30g)
351

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di 1lck/Lithe-IDEA

Tutte le issue di 1lck/Lithe-IDEA

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.