/* name argument (ie filetype name) must not be translated as it is used for * filetype lookup. Use filetypes_get_display_name() instead.*/ static void ft_init(filetype_id ft_id, int lang, const char *name, const char *title_name, enum TitleType title_type, GeanyFiletypeGroupID group_id) { GeanyFiletype *ft = filetypes[ft_id]; ft->lang = lang; ft->name = g_strdup(name); ft->title = filetype_make_title((title_name != NULL) ? title_name : ft->name, title_type); ft->group = group_id; }
static void add_custom_filetype(const gchar *filename) { gchar *fn = utils_strdupa(strstr(filename, ".") + 1); gchar *dot = g_strrstr(fn, ".conf"); GeanyFiletype *ft; g_return_if_fail(dot); *dot = 0x0; if (g_hash_table_lookup(filetypes_hash, fn)) return; ft = filetype_new(); ft->name = g_strdup(fn); ft->title = filetype_make_title(ft->name, TITLE_FILE); ft->priv->custom = TRUE; filetype_add(ft); geany_debug("Added filetype %s (%d).", ft->name, ft->id); }
/* Note: remember to update HACKING if this function is renamed. */ static void init_builtin_filetypes(void) { GeanyFiletype *ft; #define NONE /* these macros are only to ease navigation */ ft = filetypes[GEANY_FILETYPES_NONE]; /* ft->name must not be translated as it is used for filetype lookup. * Use filetypes_get_display_name() instead. */ ft->name = g_strdup("None"); ft->title = g_strdup(_("None")); ft->group = GEANY_FILETYPE_GROUP_NONE; #define C ft = filetypes[GEANY_FILETYPES_C]; ft->lang = 0; ft->name = g_strdup("C"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-csrc"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define CPP ft = filetypes[GEANY_FILETYPES_CPP]; ft->lang = 1; ft->name = g_strdup("C++"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-c++src"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define CS ft = filetypes[GEANY_FILETYPES_CS]; ft->lang = 25; ft->name = g_strdup("C#"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-csharp"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define VALA ft = filetypes[GEANY_FILETYPES_VALA]; ft->lang = 33; ft->name = g_strdup("Vala"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-vala"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define D ft = filetypes[GEANY_FILETYPES_D]; ft->lang = 17; ft->name = g_strdup("D"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-dsrc"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define JAVA ft = filetypes[GEANY_FILETYPES_JAVA]; ft->lang = 2; ft->name = g_strdup("Java"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-java"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define PAS /* to avoid warnings when building under Windows, the symbol PASCAL is there defined */ ft = filetypes[GEANY_FILETYPES_PASCAL]; ft->lang = 4; ft->name = g_strdup("Pascal"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-pascal"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define ASM ft = filetypes[GEANY_FILETYPES_ASM]; ft->lang = 9; ft->name = g_strdup("ASM"); ft->title = g_strdup_printf(_("%s source file"), "Assembler"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define BASIC ft = filetypes[GEANY_FILETYPES_BASIC]; ft->lang = 26; ft->name = g_strdup("FreeBasic"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define FORTRAN ft = filetypes[GEANY_FILETYPES_FORTRAN]; ft->lang = 18; ft->name = g_strdup("Fortran"); ft->title = g_strdup_printf(_("%s source file"), "Fortran (F90)"); ft->mime_type = g_strdup("text/x-fortran"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define F77 ft = filetypes[GEANY_FILETYPES_F77]; ft->lang = 30; ft->name = g_strdup("F77"); ft->title = g_strdup_printf(_("%s source file"), "Fortran (F77)"); ft->mime_type = g_strdup("text/x-fortran"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define GLSL ft = filetypes[GEANY_FILETYPES_GLSL]; ft->lang = 31; ft->name = g_strdup("GLSL"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define CAML ft = filetypes[GEANY_FILETYPES_CAML]; ft->name = g_strdup("CAML"); ft->title = g_strdup_printf(_("%s source file"), "(O)Caml"); ft->mime_type = g_strdup("text/x-ocaml"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define PERL ft = filetypes[GEANY_FILETYPES_PERL]; ft->lang = 5; ft->name = g_strdup("Perl"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("application/x-perl"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define PHP ft = filetypes[GEANY_FILETYPES_PHP]; ft->lang = 6; ft->name = g_strdup("PHP"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("application/x-php"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define JAVASCRIPT ft = filetypes[GEANY_FILETYPES_JS]; ft->lang = 23; ft->name = g_strdup("Javascript"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("application/javascript"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define PYTHON ft = filetypes[GEANY_FILETYPES_PYTHON]; ft->lang = 7; ft->name = g_strdup("Python"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-python"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define RUBY ft = filetypes[GEANY_FILETYPES_RUBY]; ft->lang = 14; ft->name = g_strdup("Ruby"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("application/x-ruby"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define TCL ft = filetypes[GEANY_FILETYPES_TCL]; ft->lang = 15; ft->name = g_strdup("Tcl"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-tcl"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define LUA ft = filetypes[GEANY_FILETYPES_LUA]; ft->lang = 22; ft->name = g_strdup("Lua"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-lua"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define FERITE ft = filetypes[GEANY_FILETYPES_FERITE]; ft->lang = 19; ft->name = g_strdup("Ferite"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define HASKELL ft = filetypes[GEANY_FILETYPES_HASKELL]; ft->lang = 24; ft->name = g_strdup("Haskell"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-haskell"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define MARKDOWN ft = filetypes[GEANY_FILETYPES_MARKDOWN]; ft->lang = 36; ft->name = g_strdup("Markdown"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-markdown"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define TXT2TAGS ft = filetypes[GEANY_FILETYPES_TXT2TAGS]; ft->lang = 37; ft->name = g_strdup("Txt2tags"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-txt2tags"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define ABC ft = filetypes[GEANY_FILETYPES_ABC]; ft->lang = 38; ft->name = g_strdup("Abc"); filetype_make_title(ft, TITLE_FILE); ft->group = GEANY_FILETYPE_GROUP_MISC; #define SH ft = filetypes[GEANY_FILETYPES_SH]; ft->lang = 16; ft->name = g_strdup("Sh"); ft->title = g_strdup(_("Shell script")); ft->mime_type = g_strdup("application/x-shellscript"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define MAKE ft = filetypes[GEANY_FILETYPES_MAKE]; ft->lang = 3; ft->name = g_strdup("Make"); ft->title = g_strdup(_("Makefile")); ft->mime_type = g_strdup("text/x-makefile"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define XML ft = filetypes[GEANY_FILETYPES_XML]; ft->name = g_strdup("XML"); ft->title = g_strdup(_("XML document")); ft->mime_type = g_strdup("application/xml"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define DOCBOOK ft = filetypes[GEANY_FILETYPES_DOCBOOK]; ft->lang = 12; ft->name = g_strdup("Docbook"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("application/docbook+xml"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define HTML ft = filetypes[GEANY_FILETYPES_HTML]; ft->lang = 29; ft->name = g_strdup("HTML"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/html"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define CSS ft = filetypes[GEANY_FILETYPES_CSS]; ft->lang = 13; ft->name = g_strdup("CSS"); ft->title = g_strdup(_("Cascading StyleSheet")); ft->mime_type = g_strdup("text/css"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; /* not really markup but fit quite well to HTML */ #define SQL ft = filetypes[GEANY_FILETYPES_SQL]; ft->lang = 11; ft->name = g_strdup("SQL"); filetype_make_title(ft, TITLE_FILE); ft->mime_type = g_strdup("text/x-sql"); ft->group = GEANY_FILETYPE_GROUP_MISC; #define COBOL ft = filetypes[GEANY_FILETYPES_COBOL]; ft->lang = 41; ft->name = g_strdup("COBOL"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-cobol"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define LATEX ft = filetypes[GEANY_FILETYPES_LATEX]; ft->lang = 8; ft->name = g_strdup("LaTeX"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-tex"); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define VHDL ft = filetypes[GEANY_FILETYPES_VHDL]; ft->lang = 21; ft->name = g_strdup("VHDL"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-vhdl"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define VERILOG ft = filetypes[GEANY_FILETYPES_VERILOG]; ft->lang = 39; ft->name = g_strdup("Verilog"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-verilog"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define DIFF ft = filetypes[GEANY_FILETYPES_DIFF]; ft->lang = 20; ft->name = g_strdup("Diff"); filetype_make_title(ft, TITLE_FILE); ft->mime_type = g_strdup("text/x-patch"); ft->group = GEANY_FILETYPE_GROUP_MISC; #define LISP ft = filetypes[GEANY_FILETYPES_LISP]; ft->name = g_strdup("Lisp"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define ERLANG ft = filetypes[GEANY_FILETYPES_ERLANG]; ft->name = g_strdup("Erlang"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-erlang"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define CONF ft = filetypes[GEANY_FILETYPES_CONF]; ft->lang = 10; ft->name = g_strdup("Conf"); ft->title = g_strdup(_("Config file")); ft->group = GEANY_FILETYPE_GROUP_MISC; #define PO ft = filetypes[GEANY_FILETYPES_PO]; ft->name = g_strdup("Po"); ft->title = g_strdup(_("Gettext translation file")); ft->mime_type = g_strdup("text/x-gettext-translation"); ft->group = GEANY_FILETYPE_GROUP_MISC; #define HAXE ft = filetypes[GEANY_FILETYPES_HAXE]; ft->lang = 27; ft->name = g_strdup("Haxe"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define ACTIONSCRIPT ft = filetypes[GEANY_FILETYPES_AS]; ft->lang = 34; ft->name = g_strdup("ActionScript"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("application/ecmascript"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define R ft = filetypes[GEANY_FILETYPES_R]; ft->lang = 40; ft->name = g_strdup("R"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define REST ft = filetypes[GEANY_FILETYPES_REST]; ft->lang = 28; ft->name = g_strdup("reStructuredText"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_MARKUP; #define MATLAB ft = filetypes[GEANY_FILETYPES_MATLAB]; ft->lang = 32; ft->name = g_strdup("Matlab/Octave"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-matlab"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define YAML ft = filetypes[GEANY_FILETYPES_YAML]; ft->name = g_strdup("YAML"); filetype_make_title(ft, TITLE_FILE); ft->mime_type = g_strdup("application/x-yaml"); ft->group = GEANY_FILETYPE_GROUP_MISC; #define CMAKE ft = filetypes[GEANY_FILETYPES_CMAKE]; ft->name = g_strdup("CMake"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-cmake"); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define NSIS ft = filetypes[GEANY_FILETYPES_NSIS]; ft->lang = 35; ft->name = g_strdup("NSIS"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; #define ADA ft = filetypes[GEANY_FILETYPES_ADA]; ft->name = g_strdup("Ada"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->mime_type = g_strdup("text/x-adasrc"); ft->group = GEANY_FILETYPE_GROUP_COMPILED; #define FORTH ft = filetypes[GEANY_FILETYPES_FORTH]; ft->name = g_strdup("Forth"); filetype_make_title(ft, TITLE_SOURCE_FILE); ft->group = GEANY_FILETYPE_GROUP_SCRIPT; }