style(代码风格): 整理声明顺序与字体模块
build.yaml / build (push) Successful in 51s

This commit is contained in:
xiaoqidun committed 2026-09-28 15:17:45 +08:00
1 parent 5e0da3da28
commit ee6c9f6a16
82 files changed
+4316 -4310

No files matched your search

+72 -72
View File
@@ -21,18 +21,6 @@ import (
"slices"
)
// siblings 获取同一原始容器内的直接绘制成员,不跨越资源和页块
// 返回: []*editorCompositeNode 按绘制顺序排列的成员
func (n *editorCompositeNode) siblings() []*editorCompositeNode {
var result []*editorCompositeNode
for _, member := range n.owner.children {
if member.span.parent == n.span.parent {
result = append(result, member)
}
}
return result
}
// DeleteCompositeObjects 删除内部成员,保留容器、未选对象及其他实例,一次撤销恢复全部
// 入参: page 页面索引, path 父复合路径, indexes 成员序号
// 返回: error 错误信息
@@ -85,33 +73,6 @@ func (e *Editor) CopyCompositeObjects(page int, path ObjectPath, indexes []int,
return result, nil
}
// copyCompositeNodes 复制成员原文并统一重映射标识,保持副本之间的引用
// 入参: renderer 渲染器, nodes 快照, dx、dy 页面位移
// 返回: []byte 副本XML, map[string]editorCompositeState 会话信息, error 错误信息
func (e *Editor) copyCompositeNodes(renderer *Renderer, nodes []*editorCompositeNode, dx, dy float64) ([]byte, map[string]editorCompositeState, error) {
ids := make(map[string]string)
for _, node := range nodes {
if err := e.collectCompositeIDs(node.node, ids); err != nil {
return nil, nil, err
}
}
var data []byte
states := make(map[string]editorCompositeState)
for _, node := range nodes {
copy := *node
if err := e.transformCompositeMember(renderer, &copy, TranslationMatrix(dx, dy)); err != nil {
return nil, nil, err
}
fragment, err := editorXMLRemapIDs(copy.data, copy.node, ids)
if err != nil {
return nil, nil, err
}
maps.Copy(states, remapCompositeStates(node.states, ids))
data = append(data, fragment...)
}
return data, states, nil
}
// OrderCompositeObjects 调整同一直接容器内的绘制顺序,不改变页块和其他实例
// 入参: page 页面索引, path 父复合路径, indexes 成员序号, order 为up、down、top或bottom
// 返回: []int 调整后的选区序号, error 错误信息
@@ -167,22 +128,6 @@ func (e *Editor) ReplaceCompositeImage(page int, path ObjectPath, index int, dat
})
}
// update 合并成员属性变化,不重写原文中未修改的字段
// 入参: object 修改后的对象
// 返回: error 错误信息
func (n *editorCompositeNode) update(object GraphicObject) error {
data, err := editorXMLObject(n.data, n.node, n.object, object)
if err != nil || bytes.Equal(data, n.data) {
return err
}
next, err := newEditorCompositeNode(data)
if err != nil {
return err
}
n.data, n.node, n.object, n.changed = data, next.node, next.object, true
return nil
}
// Shape 获取内部基本路径的页面几何,矩形和椭圆要求轴对齐,其他成员返回空类型
// 返回: ShapeKind 图形类型, Box 几何范围,直线使用起点及有符号端点位移
func (m CompositeMember) Shape() (ShapeKind, Box) {
@@ -249,6 +194,78 @@ func (e *Editor) ReshapeCompositeFrame(page int, path ObjectPath, index int, box
})
}
// ReshapeCompositeLine 修改内部直线的页面端点及箭头,保留原始属性和父变换
// 入参: page 页面索引, path 父路径, index 成员序号, kind 直线类型, box 页面端点
// 返回: error 错误信息
func (e *Editor) ReshapeCompositeLine(page int, path ObjectPath, index int, kind ShapeKind, box Box) error {
if kind != "" && !lineShapeKind(kind) {
return fmt.Errorf("unsupported line kind %q", kind)
}
return e.reshapeCompositeObject(page, path, index, kind, box, true)
}
// ReshapeCompositeObject 调整内部基本路径的页面几何,保留绘制样式、变换与裁剪
// 入参: page 页面索引, path 父路径, index 成员序号, box 页面范围,直线使用有符号端点位移
// 返回: error 错误信息
func (e *Editor) ReshapeCompositeObject(page int, path ObjectPath, index int, box Box) error {
return e.reshapeCompositeObject(page, path, index, "", box, false)
}
// siblings 获取同一原始容器内的直接绘制成员,不跨越资源和页块
// 返回: []*editorCompositeNode 按绘制顺序排列的成员
func (n *editorCompositeNode) siblings() []*editorCompositeNode {
var result []*editorCompositeNode
for _, member := range n.owner.children {
if member.span.parent == n.span.parent {
result = append(result, member)
}
}
return result
}
// copyCompositeNodes 复制成员原文并统一重映射标识,保持副本之间的引用
// 入参: renderer 渲染器, nodes 快照, dx、dy 页面位移
// 返回: []byte 副本XML, map[string]editorCompositeState 会话信息, error 错误信息
func (e *Editor) copyCompositeNodes(renderer *Renderer, nodes []*editorCompositeNode, dx, dy float64) ([]byte, map[string]editorCompositeState, error) {
ids := make(map[string]string)
for _, node := range nodes {
if err := e.collectCompositeIDs(node.node, ids); err != nil {
return nil, nil, err
}
}
var data []byte
states := make(map[string]editorCompositeState)
for _, node := range nodes {
copy := *node
if err := e.transformCompositeMember(renderer, &copy, TranslationMatrix(dx, dy)); err != nil {
return nil, nil, err
}
fragment, err := editorXMLRemapIDs(copy.data, copy.node, ids)
if err != nil {
return nil, nil, err
}
maps.Copy(states, remapCompositeStates(node.states, ids))
data = append(data, fragment...)
}
return data, states, nil
}
// update 合并成员属性变化,不重写原文中未修改的字段
// 入参: object 修改后的对象
// 返回: error 错误信息
func (n *editorCompositeNode) update(object GraphicObject) error {
data, err := editorXMLObject(n.data, n.node, n.object, object)
if err != nil || bytes.Equal(data, n.data) {
return err
}
next, err := newEditorCompositeNode(data)
if err != nil {
return err
}
n.data, n.node, n.object, n.changed = data, next.node, next.object, true
return nil
}
// shapeParent 获取路径所在坐标到页面的变换,兼容旧式内联边界
// 返回: Matrix 路径父坐标变换, bool 是否可逆
func (m CompositeMember) shapeParent() (Matrix, bool) {
@@ -267,23 +284,6 @@ func transformLineBox(box Box, matrix Matrix) Box {
return Box{X: x, Y: y, W: w, H: h}
}
// ReshapeCompositeLine 修改内部直线的页面端点及箭头,保留原始属性和父变换
// 入参: page 页面索引, path 父路径, index 成员序号, kind 直线类型, box 页面端点
// 返回: error 错误信息
func (e *Editor) ReshapeCompositeLine(page int, path ObjectPath, index int, kind ShapeKind, box Box) error {
if kind != "" && !lineShapeKind(kind) {
return fmt.Errorf("unsupported line kind %q", kind)
}
return e.reshapeCompositeObject(page, path, index, kind, box, true)
}
// ReshapeCompositeObject 调整内部基本路径的页面几何,保留绘制样式、变换与裁剪
// 入参: page 页面索引, path 父路径, index 成员序号, box 页面范围,直线使用有符号端点位移
// 返回: error 错误信息
func (e *Editor) ReshapeCompositeObject(page int, path ObjectPath, index int, box Box) error {
return e.reshapeCompositeObject(page, path, index, "", box, false)
}
// reshapeCompositeObject 按页面几何修改单个内部路径,可选修改箭头类型
// 入参: page 页面索引, path 父路径, index 成员序号, kind 目标类型,空值保持原类型, box 页面几何, lineOnly 是否仅接受直线
// 返回: error 错误信息