Base project -> Utils.em:
macro getTime()
{
Time = GetSysTime(1)
Year = Time.Year
Mon = Time.Month
Day = Time.Day
Hour = Time.Hour
Min = Time.Minute
Sec = Time.Second
if(Mon < 10)
szMon = "0@Mon@"
else
szMon = Mon
if(Day < 10)
szDay = "0@Day@"
else
szDay = Day
if(Hour < 10)
szHour = "0@Hour@"
else
szHour = Hour
if(Min < 10)
szMin = "0@Min@"
else
szMin = Min
szTime = "@Year@@szMon@@szDay@.@szHour@@szMin@"
return szTime
}
macro aaaResetTypeId()
{
setreg(MYTYPEID, "")
setreg(MYOPETYPE, "")
setreg(MYOPEINFO, "")
}
macro aaaResetOpeType()
{
setreg(MYOPETYPE, "")
}
macro aaaResetOpeInfo()
{
setreg(MYOPEINFO, "")
}
macro aaaResetName()
{
setreg(MYNAME, "")
}
macro aaaCM(cmType)
{
hwnd = GetCurrentWnd()
lnFirst = GetWndSelLnFirst(hwnd)
lnLast = GetWndSelLnLast(hwnd)
hbuf = GetCurrentBuf()
szTime = getTime()
szMYTYPEID = getreg(MYTYPEID)
if(strlen( szMYTYPEID ) == 0)
{
szMYTYPEID = Ask("Enter TypeId, such as: Bug23948239")
if (szMYTYPEID != "")
setreg(MYTYPEID, szMYTYPEID)
}
szMYNAME = getreg(MYNAME)
if(strlen( szMYNAME ) == 0)
{
szMYNAME = Ask("Enter your name:")
if (szMYNAME != "")
setreg(MYNAME, szMYNAME)
}
szMYOPETYPE= getreg(MYOPETYPE)
if(strlen( szMYOPETYPE ) == 0)
{
szMYOPETYPE = Ask("Enter your operation type:")
if (szMYOPETYPE != "")
setreg(MYOPETYPE, szMYOPETYPE)
}
szMYOPEINFO= getreg(MYOPEINFO)
if(strlen( szMYOPEINFO ) == 0)
{
szMYOPEINFO = Ask("Enter your operation info:")
if (szMYOPEINFO != "")
setreg(MYOPEINFO, szMYOPEINFO)
}
if (cmType == "JavaSingleLineA")
{
InsBufLine(hbuf, lnFirst, "// + @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@")
InsBufLine(hbuf, lnLast+2, "// - @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@")
}else if (cmType == "JavaSingleLineB")
{
InsBufLine(hbuf, lnFirst, "/* + @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@ */")
InsBufLine(hbuf, lnLast+2, "/* - @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@ */")
}else if (cmType == "JavaMultiLineA")
{
InsBufLine(hbuf, lnFirst, "/* + @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@")
InsBufLine(hbuf, lnLast+2, " - @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@ */")
}else if (cmType == "JavaMultiLineB")
{
InsBufLine(hbuf, lnFirst, "// + @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@")
InsBufLine(hbuf, lnLast+2, "// - @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@")
}else if (cmType == "XMLSingleLine")
{
InsBufLine(hbuf, lnFirst, "<!-- + @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@ -->")
InsBufLine(hbuf, lnLast+2, "<!-- - @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@ -->")
}else if (cmType == "XMLMultiLine")
{
InsBufLine(hbuf, lnFirst, "<!-- + @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@")
InsBufLine(hbuf, lnLast+2, " - @szMYTYPEID@, @szMYNAME@, @szMYOPETYPE@, @szTime@, @szMYOPEINFO@ -->")
}
}
// // + xxxx
// // - xxxx
macro aaaCMJavaSingleLineA()
{
cmType = "JavaSingleLineA"
aaaCM(cmType);
}
// /* + xxxx */
// /* - xxxx */
macro aaaCMJavaSingleLineB()
{
cmType = "JavaSingleLineB"
aaaCM(cmType);
}
// /* + xxx
// xxx
// xxx
// - xxx */
macro aaaCMJavaMultiLineA()
{
cmType = "JavaMultiLineA"
aaaCM(cmType);
}
// // + xxx
// // xxx
// // xxx
// // - xxx
macro aaaCMJavaMultiLineB()
{
cmType = "JavaMultiLineB"
aaaCM(cmType);
}
// <!-- + xxx -->
// <!-- - xxx -->
macro aaaCMXMLSingleLine()
{
cmType = "XMLSingleLine"
aaaCM(cmType);
}
// <!-- + xxx
// xxx
// xxx
// - xxx -->
macro aaaCMXMLMultiLine()
{
cmType = "XMLMultiLine"
aaaCM(cmType);
}
打开Base工程:
讲上面内容添加到文件Utils.em,然后保存并关闭Base工程,重新打开一个新的项目:
依次打开菜单Options->Key Assignments… , 并键入”macro”,左侧列表里面可以查看到我们上面添加的macro:
点击左侧列表中的macro项,再点击Assign New Key…按钮分配快捷键:
依次键入快捷键,结果如下: