写了两个 elisp 函数
第一个:
1 2 3 4 5 6 7 8 9 10 | ( defun c-header (project module) "Insert some macro to prevent the header file included multiply" (interactive "sWhat's the project name? \nsWhat's the module name? " ) ( let ((p (upcase project)) (m (upcase module))) (insert ( format "#ifndef %s_%s_HEADER\n" p m)) (insert ( format "#define %s_%s_HEADER\n\n\n\n" p m)) (insert ( format "#endif /* %s_%s_HEADER */\n" p m)) ) ( let ((l (- (line-number-at-pos) 3))) (goto-line l))) |
用于自动生成类似这样的 C 语言头文件代码:
1 2 3 4 5 6 | #ifndef PM_POINTS_HEADER #define PM_POINTS_HEADER #endif /* PM_POINTS_HEADER */ |
第二个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ( defun gobject-macro (project object) "Insert some macroes about gobject" (interactive "sWhat's the project name? \nsWhat's the object name? " ) ( let ((P (upcase project)) (O (upcase object)) (p (downcase project)) (o (downcase object)) (pp (capitalize project)) (oo (capitalize object))) (insert ( format "#define %s_TYPE_%s (%s_%s_get_type ())\n" P O p o)) (insert ( format "#define %s_%s(object) (G_TYPE_CHECK_INSTANCE_CAST((object), %s_TYPE_%s, %s%s))\n" P O P O pp oo)) (insert ( format "#define %s_%s_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), %s_TYPE_%s, %sClass))\n" P O P O pp oo)) (insert ( format "#define %s_IS_%s(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), %s_TYPE_%s))\n" P O P O)) (insert ( format "#define %s_IS_%s_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), %s_TYPE_%s))\n" P O P O)) (insert ( format "#define %s_%s_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), %s_TYPE_%s, %s%sClass))\n" P O P O pp oo)))) |
用于生成类似这样的 GObject 类型宏:
1 2 3 4 5 6 | #define PM_TYPE_POINTS (pm_points_get_type ()) #define PM_POINTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), PM_TYPE_POINTS, PmPoints)) #define PM_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PM_TYPE_POINTS, PmClass)) #define PM_IS_POINTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), PM_TYPE_POINTS)) #define PM_IS_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PM_TYPE_POINTS)) #define PM_POINTS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), PM_TYPE_POINTS, PmPointsClass)) |
转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com
2010年6月30日 16:42
如果用yasnippet的话可以用它的方式,和这个效果差不多的
2010年7月06日 19:05
您好,我配置完MoinMoin,访问本地连接时出现这个提示
This is the root URL of moin's static files. You need to go to the script URL to use the wiki.
我发现如果我直接打开Index.html也是这个提示
2010年7月06日 21:54
@aestik:
很久没有配置 moinmoin 了,对您的问题不熟悉,很抱歉。
建议认真阅读 moinmoin 官方提供的安装文档去配置。