Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#496 2 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@1lck ya está trabajando en esto.

Desde el 5/9/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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,确认没有重复建议。
Lenguaje dominante
TypeScript
Estrellas
1.8k
Forks
151
Merge medio
12 h 32 min
PR fusionados (30 d)
329

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de 1lck/Lithe-IDEA

Todos los issues de 1lck/Lithe-IDEA

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.