From 7bb57aca2b7c9ef69bf4ad4b0247b9baadac8f0c Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Wed, 30 Sep 2009 17:40:10 +0000 Subject: [PATCH] Move filetype template defaults into custom file template files. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4273 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 8 ++ Makefile.am | 10 +- data/templates/files/file.html | 16 ++++ data/templates/files/file.php | 20 ++++ data/templates/files/file.rb | 10 ++ data/templates/files/file.tex | 10 ++ data/templates/files/main.c | 10 ++ data/templates/files/main.cxx | 10 ++ data/templates/files/main.d | 10 ++ data/templates/files/main.java | 10 ++ data/templates/files/main.py | 13 +++ data/templates/files/program.pas | 12 +++ src/templates.c | 160 ++----------------------------- wscript | 1 + 14 files changed, 146 insertions(+), 154 deletions(-) create mode 100644 data/templates/files/file.html create mode 100644 data/templates/files/file.php create mode 100644 data/templates/files/file.rb create mode 100644 data/templates/files/file.tex create mode 100644 data/templates/files/main.c create mode 100644 data/templates/files/main.cxx create mode 100644 data/templates/files/main.d create mode 100644 data/templates/files/main.java create mode 100644 data/templates/files/main.py create mode 100644 data/templates/files/program.pas diff --git a/ChangeLog b/ChangeLog index 8c84b8da0..dd2e3a606 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,14 @@ * src/templates.c, doc/geany.txt, doc/geany.html: Read custom file templates from $prefix/share/geany/templates/files as well as user dir. + * src/templates.c, data/templates, data/templates/files, + data/templates/files/file.rb, data/templates/files/file.html, + data/templates/files/main.java, data/templates/files/main.c, + data/templates/files/main.cxx, data/templates/files/file.php, + data/templates/files/main.d, data/templates/files/program.pas, + data/templates/files/main.py, data/templates/files/file.tex, + wscript, Makefile.am: + Move filetype template defaults into custom file template files. 2009-09-29 Nick Treleaven diff --git a/Makefile.am b/Makefile.am index a8d85dc0a..2b211ee3d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,7 +22,8 @@ SYS_DATA_FILES = \ $(srcdir)/data/filetypes.* \ data/filetype_extensions.conf \ data/snippets.conf \ - data/ui_toolbar.xml + data/ui_toolbar.xml \ + $(srcdir)/data/templates/files/* EXTRA_DIST = \ autogen.sh \ @@ -68,6 +69,13 @@ install-data-local: $(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/; \ fi \ done + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/templates; + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/templates/files; + for file in $(srcdir)/data/templates/files/*; do \ + if test -f $$file; then \ + $(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/templates/files/; \ + fi \ + done BZIP2_ENV =--best diff --git a/data/templates/files/file.html b/data/templates/files/file.html new file mode 100644 index 000000000..54c61dfd6 --- /dev/null +++ b/data/templates/files/file.html @@ -0,0 +1,16 @@ +{fileheader} + + + + + {untitled} + + + + + + + + + diff --git a/data/templates/files/file.php b/data/templates/files/file.php new file mode 100644 index 000000000..8ad3f5300 --- /dev/null +++ b/data/templates/files/file.php @@ -0,0 +1,20 @@ + + + + + + + + {untitled} + + + + + + + + + diff --git a/data/templates/files/file.rb b/data/templates/files/file.rb new file mode 100644 index 000000000..aeb190a19 --- /dev/null +++ b/data/templates/files/file.rb @@ -0,0 +1,10 @@ +{fileheader} + +class StdClass + def initialize + + end +end + +x = StdClass.new + diff --git a/data/templates/files/file.tex b/data/templates/files/file.tex new file mode 100644 index 000000000..6fbd87971 --- /dev/null +++ b/data/templates/files/file.tex @@ -0,0 +1,10 @@ + +\\documentclass[a4paper]{article} +\\usepackage[T1]{fontenc} +\\usepackage[utf8]{inputenc} +\\usepackage{lmodern} +\\usepackage{babel} +\\begin{document} + +\\end{document} + diff --git a/data/templates/files/main.c b/data/templates/files/main.c new file mode 100644 index 000000000..066f16e9a --- /dev/null +++ b/data/templates/files/main.c @@ -0,0 +1,10 @@ +{fileheader} + +#include + +int main(int argc, char **argv) +{ + + return 0; +} + diff --git a/data/templates/files/main.cxx b/data/templates/files/main.cxx new file mode 100644 index 000000000..a85295f30 --- /dev/null +++ b/data/templates/files/main.cxx @@ -0,0 +1,10 @@ +{fileheader} + +#include + +int main(int argc, char **argv) +{ + + return 0; +} + diff --git a/data/templates/files/main.d b/data/templates/files/main.d new file mode 100644 index 000000000..6a89d16dc --- /dev/null +++ b/data/templates/files/main.d @@ -0,0 +1,10 @@ +{fileheader} + +import std.stdio; + +int main(char[][] args) +{ + + return 0; +} + diff --git a/data/templates/files/main.java b/data/templates/files/main.java new file mode 100644 index 000000000..b1305adef --- /dev/null +++ b/data/templates/files/main.java @@ -0,0 +1,10 @@ +{fileheader} + +public class {untitled} { + + public static void main (String args[]) { + + + } +} + diff --git a/data/templates/files/main.py b/data/templates/files/main.py new file mode 100644 index 000000000..9e2c1c907 --- /dev/null +++ b/data/templates/files/main.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +{fileheader} + + +def main(): + + return 0 + +if __name__ == '__main__': + main() + diff --git a/data/templates/files/program.pas b/data/templates/files/program.pas new file mode 100644 index 000000000..67036642f --- /dev/null +++ b/data/templates/files/program.pas @@ -0,0 +1,12 @@ +{fileheader} + +program {untitled}; + +uses crt; +var i : byte; + +BEGIN + + +END. + diff --git a/src/templates.c b/src/templates.c index a790ed3ce..2d2e505d5 100644 --- a/src/templates.c +++ b/src/templates.c @@ -47,6 +47,8 @@ static GtkWidget *new_with_template_menu = NULL; /* File menu submenu */ static GtkWidget *toolbar_new_file_menu = NULL; +/* TODO: implement custom insertion templates, put these into files in data/templates */ + /* default templates, only for initial tempate file creation on first start of Geany */ static const gchar templates_gpl_notice[] = "\ This program is free software; you can redistribute it and/or modify\n\ @@ -118,133 +120,13 @@ static const gchar templates_changelog[] = "\ \n\ * \n\n\n"; +/* Used when starting a new file normally */ static const gchar templates_filetype_none[] = ""; -static const gchar templates_filetype_c[] = "{fileheader}\n\n\ -#include \n\ -\n\ -int main(int argc, char** argv)\n\ -{\n\ - \n\ - return 0;\n\ -}\n\ -"; - -static const gchar templates_filetype_cpp[] = "{fileheader}\n\n\ -#include \n\ -\n\ -int main(int argc, char** argv)\n\ -{\n\ - \n\ - return 0;\n\ -}\n\ -"; - -static const gchar templates_filetype_d[] = "{fileheader}\n\n\ -import std.stdio;\n\ -\n\ -int main(char[][] args)\n\ -{\n\ - \n\ - return 0;\n\ -}\n\ -"; - -static const gchar templates_filetype_php[] = "\ -\n\n\ -\n\ -\n\ -\n\ -\n\ - {untitled}\n\ - \n\ - \n\ -\n\ -\n\ -\n\ - \n\ -\n\ -\n\ -"; - -static const gchar templates_filetype_html[] = "{fileheader}\n\ -\n\ -\n\ -\n\ -\n\ - {untitled}\n\ - \n\ - \n\ -\n\ -\n\ -\n\ - \n\ -\n\ -\n\ -"; - -static const gchar templates_filetype_pascal[] = "{fileheader}\n\n\ -program {untitled};\n\ -\n\ -uses crt;\n\ -var i : byte;\n\ -\n\ -BEGIN\n\ - \n\ - \n\ -END.\n\ -"; - -static const gchar templates_filetype_java[] = "{fileheader}\n\n\ -public class {untitled} {\n\ -\n\ - public static void main (String args[]) {\ - \n\ - \n\ - }\n\ -}\n\ -"; - -static const gchar templates_filetype_ruby[] = "{fileheader}\n\n\ -class StdClass\n\ - def initialize\n\ - \n\ - end\n\ -end\n\ -\n\ -x = StdClass.new\n\ -"; - -static const gchar templates_filetype_python[] = "#!/usr/bin/env python\n\ -# -*- coding: utf-8 -*-\n#\n\ -{fileheader}\n\n\ -\n\ -def main():\n\ - \n\ - return 0\n\ -\n\ -if __name__ == '__main__':\n\ - main()\n\ -"; - -static const gchar templates_filetype_latex[] = "\ -\\documentclass[a4paper]{article}\n\ -\\usepackage[T1]{fontenc}\n\ -\\usepackage[utf8]{inputenc}\n\ -\\usepackage{lmodern}\n\ -\\usepackage{babel}\n\ -\\begin{document}\n\ -\n\ -\\end{document}\n\ -"; - static gchar *templates[GEANY_MAX_TEMPLATES]; -/* TODO: remove filetype templates, use custom file templates instead. */ +/* We should probably remove filetype templates support soon - users can use custom + * file templates instead. */ static gchar *ft_templates[GEANY_MAX_BUILT_IN_FILETYPES] = {NULL}; @@ -335,6 +217,7 @@ static void init_general_templates(const gchar *year, const gchar *date, const g } +/* Users should use custom filetypes instead, except for filetype none template */ static void init_ft_templates(const gchar *year, const gchar *date, const gchar *datetime) { filetype_id ft_id; @@ -350,37 +233,8 @@ static void init_ft_templates(const gchar *year, const gchar *date, const gchar case GEANY_FILETYPES_NONE: create_template_file_if_necessary(fname, templates_filetype_none); break; - case GEANY_FILETYPES_C: - create_template_file_if_necessary(fname, templates_filetype_c); + default: break; - case GEANY_FILETYPES_CPP: - create_template_file_if_necessary(fname, templates_filetype_cpp); - break; - case GEANY_FILETYPES_D: - create_template_file_if_necessary(fname, templates_filetype_d); - break; - case GEANY_FILETYPES_JAVA: - create_template_file_if_necessary(fname, templates_filetype_java); - break; - case GEANY_FILETYPES_PASCAL: - create_template_file_if_necessary(fname, templates_filetype_pascal); - break; - case GEANY_FILETYPES_PHP: - create_template_file_if_necessary(fname, templates_filetype_php); - break; - case GEANY_FILETYPES_HTML: - create_template_file_if_necessary(fname, templates_filetype_html); - break; - case GEANY_FILETYPES_RUBY: - create_template_file_if_necessary(fname, templates_filetype_ruby); - break; - case GEANY_FILETYPES_PYTHON: - create_template_file_if_necessary(fname, templates_filetype_python); - break; - case GEANY_FILETYPES_LATEX: - create_template_file_if_necessary(fname, templates_filetype_latex); - break; - default: break; } TEMPLATES_READ_FILE(fname, &ft_templates[ft_id]); ft_templates[ft_id] = replace_all(ft_templates[ft_id], year, date, datetime); diff --git a/wscript b/wscript index 123011a4a..52619910d 100644 --- a/wscript +++ b/wscript @@ -503,6 +503,7 @@ def build(bld): bld.install_files('${DATADIR}/%s' % dir, 'data/*.tags') bld.install_files('${DATADIR}/%s' % dir, 'data/snippets.conf') bld.install_files('${DATADIR}/%s' % dir, 'data/ui_toolbar.xml') + bld.install_files('${DATADIR}/%s/templates/files' % dir, 'data/templates/files/*.*') bld.install_as('${DATADIR}/%s/GPL-2' % dir, 'COPYING') # Icons bld.install_files('${PREFIX}/share/icons'