CM文件(.cm)规范

默认有25个CM文件,可直接使用;如果你想生成特色的代码仍然需要编写自己的CM文件。

CM文件(.cm)大规则:

  1. 所有浮点型归为Float类型,非浮点型归为Int; 即基本数据类型只有FloatIntBool.
  2. 一个CM文件只能有一个声明.
  3. CM文件第一行必须为声明.
  4. 注释格式

单行注释

// 单行注释

多行注释

// 多行注释1
// 多行注释2
// 多行注释3

一、Objective-C CM文件(.cm)编写规则

CM文件路径:/Users/xxxxxx/CodeMixer/BaseClass/OC
自己编写的CM文件需要放到此路径中

1、结构体(Struct)

声明语法

#struct#名称##框架或引用文件

注册创建实例方法(或静态属性)语法

##m2#方法名(#0, #1, #2, #3, ...)##第1个参数类型,第2个参数类型,第3个参数类型,第4个参数类型,...

方法参数是从0开始标记,如果没有参数不需要标记

示例

#struct#CGRect##UIKit

##m2#CGRectMake(#0, #1, #2, #3)##Float,Float,Float,Float
##m2#CGRectZero

2、枚举(Enum)

声明语法

#enum#名称##框架或引用文件

注册成员语法

##e#成员名称

示例

#enum#NSTextAlignment##UIKit

##e#NSTextAlignmentLeft
##e#NSTextAlignmentCenter
##e#NSTextAlignmentRight
##e#NSTextAlignmentJustified
##e#NSTextAlignmentNatural

3、类(Class)

声明语法

#class#类名##框架或引用文件

注册构造方法语法

##m1#方法名:#0 参数2:#1 参数3:#2, ...##第1个参数类型, 第2个参数类型, 第3个参数类型, ...

方法参数是从0开始标记,如果没有参数不需要标记

注册创建实例的静态方法语法

##m2#方法名:#0 参数2:#1 参数3:#2, ...##第1个参数类型, 第2个参数类型, 第3个参数类型, ...

方法参数是从0开始标记,如果没有参数不需要标记

注册属性语法

##p#属性名##类型

示例

#class#UIView##UIKit
##m1#initWithFrame:#0##CGRect

##p#frame##CGRect
##p#bounds##CGRect
##p#center##CGPoint
##p#contentScaleFactor##Float-10.0
##p#multipleTouchEnabled##Bool
##p#exclusiveTouch##Bool
##p#autoresizesSubviews##Bool
##p#autoresizingMask##UIViewAutoresizing
##p#clipsToBounds##Bool
##p#opaque##Bool
##p#clearsContextBeforeDrawing##Bool
##p#hidden##Bool
##p#backgroundColor##UIColor
##p#alpha##Float-1.0
##p#contentMode##UIViewContentMode
Float-1.0表示动态生成的值在 [0.0, 1.0] 范围内,Float-10.0表示动态生成的值在 [0.0, 10.0] 范围内,Float表示动态生成的值在 [0.0, 600.0] 范围内,同样适用于Int

下载一些OC示例


二、Swift CM文件(.cm)编写规则

CM文件路径:/Users/xxxxxx/CodeMixer/BaseClass/Swift
自己编写的CM文件需要放到此路径中

1、结构体(Struct)

声明语法

#struct#名称##框架

注册创建实例方法(或静态属性)语法

##m2#方法名(#0, #1, #2, #3, ...)##第1个参数类型,第2个参数类型,第3个参数类型,第4个参数类型,...

方法参数是从0开始标记,如果没有参数不需要标记

示例

#struct#CGRect##UIKit
##m2#CGRect(x: #0, y: #1, width: #2, height: #3)##Float,Float,Float,Float
##m2#CGRect(x: #0, y: #1, width: #2, height: #3)##Int,Int,Int,Int
##m2#CGRect.zero

2、枚举(Enum)

声明语法

#enum#名称##框架

注册成员语法

##e#成员名称

示例

#enum#NSTextAlignment##UIKit

##e#left
##e#center
##e#right
##e#justified
##e#natural

3、类(Class)

声明语法

#class#类名##框架

注册构造方法语法

##m1#(参数1:#0, 参数2:#1, 参数3:#2, ...)##第1个参数类型, 第2个参数类型, 第3个参数类型, ...

方法参数是从0开始标记,如果没有参数不需要标记

注册创建实例的静态方法语法

##m2#方法名(参数1:#0, 参数2:#1, 参数3:#2, ...)##第1个参数类型, 第2个参数类型, 第3个参数类型, ...

方法参数是从0开始标记,如果没有参数不需要标记

注册属性语法

##p#属性名##类型

示例

#class#UIView##UIKit
##m1#(frame: #0)##CGRect

##p#frame##CGRect
##p#bounds##CGRect
##p#center##CGPoint
##p#contentScaleFactor##Float-10.0
##p#isMultipleTouchEnabled##Bool
##p#isExclusiveTouch##Bool
##p#autoresizesSubviews##Bool
##p#autoresizingMask##UIView.AutoresizingMask
##p#clipsToBounds##Bool
##p#isOpaque##Bool
##p#clearsContextBeforeDrawing##Bool
##p#isHidden##Bool
##p#backgroundColor##UIColor
##p#alpha##Float-1.0
##p#contentMode##UIView.ContentMode
Float-1.0表示动态生成的值在 [0.0, 1.0] 范围内,Float-10.0表示动态生成的值在 [0.0, 10.0] 范围内,Float表示动态生成的值在 [0.0, 600.0] 范围内,同样适用于Int

下载一些Swift示例


三、测试CM文件(.cm)编写正确性

1、编写好的CM文件放到指定路径
OC:/Users/xxxxxx/CodeMixer/BaseClass/OC
Swift: /Users/xxxxxx/CodeMixer/BaseClass/Swift

2、 打开 CodeMixer 进入CM文件测试功能( CodeMixer 3 Beta3+)

IMG

IMG