@ry-krystal/kicad-converter
Version:
专业的KiCad符号文件与JSON互转工具
89 lines (88 loc) • 2.02 kB
TypeScript
/**
* KiCad文件生成器 - 核心版本
* 负责将JSON数据结构转换回KiCad S表达式格式
*/
import { KiCadSymbolLib, ConversionResult, ConversionOptions } from './types.js';
/**
* KiCad文件生成器选项
*/
export interface GeneratorOptions extends ConversionOptions {
/** 缩进字符数 */
indentSize?: number;
/** 使用空格而非制表符 */
useSpaces?: boolean;
/** 最大行长度 */
maxLineLength?: number;
/** 包含格式化注释 */
includeComments?: boolean;
/** 紧凑模式 */
compactMode?: boolean;
}
/**
* KiCad生成器类
*/
export declare class KiCadGenerator {
private indentSize;
private indentChar;
private currentIndent;
constructor(options?: GeneratorOptions);
/**
* 将符号库数据生成为KiCad格式字符串
* @param symbolLib 符号库数据
* @param options 生成选项
* @returns 生成结果
*/
generate(symbolLib: KiCadSymbolLib, options?: GeneratorOptions): ConversionResult<string>;
/**
* 生成符号
*/
private generateSymbol;
/**
* 生成属性
*/
private generateProperty;
/**
* 生成引脚
*/
private generatePin;
/**
* 生成图形元素
*/
private generateGraphic;
/**
* 生成文本效果(单行版本)
*/
private generateEffects;
/**
* 生成文本效果(多行版本,按照原始 KiCad 格式)
*/
private generateEffectsMultiline;
/**
* 格式化位置信息
*/
private formatPosition;
/**
* 格式化行输出
*/
private formatLine;
/**
* 获取当前缩进字符串
*/
private getCurrentIndent;
/**
* 增加缩进层级
*/
private increaseIndent;
/**
* 减少缩进层级
*/
private decreaseIndent;
/**
* 验证输入数据
*/
private validateInput;
/**
* 计算数据大小
*/
private calculateDataSize;
}