[geany/geany] d29b59: Read filetype's mime type from the configuration files
Colomban Wendling
git-noreply at xxxxx
Mon Apr 14 18:42:05 UTC 2014
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Tue, 15 Oct 2013 01:06:01 UTC
Commit: d29b5912fff974b79ef767e7afc75d7ffbc64192
https://github.com/geany/geany/commit/d29b5912fff974b79ef767e7afc75d7ffbc64192
Log Message:
-----------
Read filetype's mime type from the configuration files
This allows custom filetypes to define a mime type, hence the icon
displayed for this filetype; as well as moving ones for built-in
filetypes out of the code to the configuration files.
Modified Paths:
--------------
data/filetypes.Go.conf
data/filetypes.Graphviz.conf
data/filetypes.Scala.conf
data/filetypes.abc
data/filetypes.actionscript
data/filetypes.ada
data/filetypes.c
data/filetypes.caml
data/filetypes.cmake
data/filetypes.cobol
data/filetypes.cpp
data/filetypes.cs
data/filetypes.css
data/filetypes.d
data/filetypes.diff
data/filetypes.docbook
data/filetypes.erlang
data/filetypes.f77
data/filetypes.fortran
data/filetypes.haskell
data/filetypes.html
data/filetypes.java
data/filetypes.javascript
data/filetypes.latex
data/filetypes.lua
data/filetypes.makefile
data/filetypes.markdown
data/filetypes.matlab
data/filetypes.objectivec
data/filetypes.pascal
data/filetypes.perl
data/filetypes.php
data/filetypes.po
data/filetypes.python
data/filetypes.restructuredtext
data/filetypes.ruby
data/filetypes.sh
data/filetypes.sql
data/filetypes.tcl
data/filetypes.txt2tags
data/filetypes.vala
data/filetypes.verilog
data/filetypes.vhdl
data/filetypes.xml
data/filetypes.yaml
doc/geany.txt
src/filetypes.c
src/filetypes.h
src/sidebar.c
src/ui_utils.c
Modified: data/filetypes.Go.conf
6 files changed, 5 insertions(+), 1 deletions(-)
===================================================================
@@ -13,9 +13,13 @@ docComment=a addindex addtogroup anchor arg attention author authors b brief bug
[lexer_properties=C]
[settings]
+lexer_filetype=C
+
# default extension used when saving files
extension=go
-lexer_filetype=C
+
+# MIME type
+mime_type=text/x-go
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.Graphviz.conf
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -18,6 +18,9 @@ lexer_filetype=C
# default extension used when saving files
extension=gv
+# MIME type
+mime_type=text/vnd.graphviz
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.Scala.conf
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -18,6 +18,9 @@ lexer_filetype=C
# default extension used when saving files
extension=scala
+# MIME type
+mime_type=text/x-scala
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.abc
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -6,4 +6,6 @@
# default extension used when saving files
extension=abc
+# MIME type
+mime_type=text/vnd.abc
Modified: data/filetypes.actionscript
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -11,6 +11,9 @@ classes=ArgumentError Array Boolean Class Date DefinitionError Error EvalError F
# default extension used when saving files
extension=as
+# MIME type
+mime_type=application/ecmascript
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.ada
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -23,6 +23,9 @@ primary=abort abs abstract accept access aliased all and array at begin body cas
# default extension used when saving files
extension=adb
+# MIME type
+mime_type=text/x-adasrc
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.c
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -47,6 +47,9 @@ preprocessor.end.$(file.patterns.cpp)=endif
# default extension used when saving files
extension=c
+# MIME type
+mime_type=text/x-csrc
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.caml
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -28,6 +28,9 @@ keywords_optional=option Some None ignore ref
# default extension used when saving files
extension=ml
+# MIME type
+mime_type=text/x-ocaml
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.cmake
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -28,6 +28,9 @@ userdefined=
# default extension used when saving files
extension=cmake
+# MIME type
+mime_type=text/x-cmake
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.cobol
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -22,6 +22,9 @@ keywords=accept access add address advancing after alphabet alphabetic alphabeti
# default extension used when saving files
extension=cob
+# MIME type
+mime_type=text/x-cobol
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.cpp
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -22,6 +22,9 @@ lexer_filetype=C
# default extension used when saving files
extension=cpp
+# MIME type
+mime_type=text/x-c++src
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.cs
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -22,6 +22,9 @@
# default extension used when saving files
extension=cs
+# MIME type
+mime_type=text/x-csharp
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.css
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -43,6 +43,9 @@ browser_pseudo_elements=^-ms- ^-apple- ^-epub- ^-moz- ^-o- ^-wap- ^-webkit- ^-xv
# default extension used when saving files
extension=css
+# MIME type
+mime_type=text/css
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.d
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -35,6 +35,9 @@ fold.d.comment.explicit=0
# default extension used when saving files
extension=d
+# MIME type
+mime_type=text/x-dsrc
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.diff
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -15,6 +15,9 @@ changed=line_changed
# default extension used when saving files
extension=diff
+# MIME type
+mime_type=text/x-patch
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.docbook
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -45,6 +45,9 @@ fold.html.preprocessor=1
# default extension used when saving files
extension=docbook
+# MIME type
+mime_type=application/docbook+xml
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.erlang
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -45,6 +45,9 @@ doc_macro=@date @docRoot @link @module @package @section @time @type @version
# default extension used when saving files
extension=erl
+# MIME type
+mime_type=text/x-erlang
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.f77
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -28,6 +28,9 @@ primary=access action advance allocatable allocate apostrophe assign assignment
# default extension used when saving files
extension=f
+# MIME type
+mime_type=text/x-fortran
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.fortran
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -12,6 +12,9 @@ user_functions=cdabs cdcos cdexp cdlog cdsin cdsqrt cotan cotand dcmplx dconjg d
# default extension used when saving files
extension=f90
+# MIME type
+mime_type=text/x-fortran
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.haskell
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -44,6 +44,9 @@ fold.haskell.imports=0
# default extension used when saving files
extension=hs
+# MIME type
+mime_type=text/x-haskell
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.html
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -96,6 +96,9 @@
# default extension used when saving files
extension=html
+# MIME type
+mime_type=text/html
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.java
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -13,6 +13,9 @@
# default extension used when saving files
extension=java
+# MIME type
+mime_type=text/x-java
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.javascript
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -10,6 +10,9 @@ secondary=Array Boolean Date Function Math Number Object String RegExp EvalError
# default extension used when saving files
extension=js
+# MIME type
+mime_type=application/javascript
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.latex
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -25,6 +25,9 @@ primary=above abovedisplayshortskip abovedisplayskip abovewithdelims accent adjd
# default extension used when saving files
extension=tex
+# MIME type
+mime_type=text/x-tex
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.lua
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -42,6 +42,9 @@ user4=
# default extension used when saving files
extension=lua
+# MIME type
+mime_type=text/x-lua
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.makefile
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -13,6 +13,9 @@ ideol=type
# default extension used when saving files
extension=mak
+# MIME type
+mime_type=text/x-makefile
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.markdown
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -23,6 +23,9 @@ codebk=attribute_unknown
# default extension used when saving files
extension=mdml
+# MIME type
+mime_type=text/x-markdown
+
# sort tags by appearance
symbol_list_sort_mode=1
Modified: data/filetypes.matlab
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -19,6 +19,9 @@ primary=break case catch classdef continue else elseif end enumeration events fo
# default extension used when saving files
extension=m
+# MIME type
+mime_type=text/x-matlab
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.objectivec
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -14,6 +14,9 @@ docComment=attention author brief bug class code date def enum example exception
# default extension used when saving files
extension=m
+# MIME type
+mime_type=text/x-objc
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.pascal
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -30,6 +30,9 @@ lexer.pascal.smart.highlighting=1
# default extension used when saving files
extension=pas
+# MIME type
+mime_type=text/x-pascal
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.perl
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -61,6 +61,9 @@
# default extension used when saving files
extension=pl
+# MIME type
+mime_type=application/x-perl
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.php
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -10,6 +10,9 @@
# default extension used when saving files
extension=php
+# MIME type
+mime_type=application/x-php
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.po
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -22,6 +22,9 @@ error=error
# default extension used when saving files
extension=po
+# MIME type
+mime_type=text/x-gettext-translation
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.python
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -33,6 +33,9 @@ fold.quotes.python=1
# default extension used when saving files
extension=py
+# MIME type
+mime_type=text/x-python
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.restructuredtext
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -6,6 +6,9 @@
# default extension used when saving files
extension=rst
+# MIME type
+mime_type=text/x-rst
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.ruby
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -45,6 +45,9 @@ primary=__FILE__ load define_method attr_accessor attr_writer attr_reader and de
# default extension used when saving files
extension=rb
+# MIME type
+mime_type=application/x-ruby
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.sh
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -24,6 +24,9 @@ primary=break case continue do done elif else esac eval exit export fi for funct
# default extension used when saving files
extension=sh
+# MIME type
+mime_type=application/x-shellscript
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.sql
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -29,6 +29,9 @@ keywords=absolute action add admin after aggregate alias all allocate alter and
# default extension used when saving files
extension=sql
+# MIME type
+mime_type=text/x-sql
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.tcl
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -33,6 +33,9 @@ expand=
# default extension used when saving files
extension=tcl
+# MIME type
+mime_type=text/x-tcl
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.txt2tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -28,6 +28,9 @@ postproc=preprocessor
# default extension used when saving files
extension=txt2tags
+# MIME type
+mime_type=text/x-txt2tags
+
# sort tags by appearance
symbol_list_sort_mode=1
Modified: data/filetypes.vala
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -23,6 +23,9 @@ lexer_filetype=C
# default extension used when saving files
extension=vala
+# MIME type
+mime_type=text/x-vala
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.verilog
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -26,6 +26,9 @@ word3=real integer time reg wire input output inout
# default extension used when saving files
extension=v
+# MIME type
+mime_type=text/x-verilog
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.vhdl
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -31,6 +31,9 @@ userwords=
# default extension used when saving files
extension=vhd
+# MIME type
+mime_type=text/x-vhdl
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.xml
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -7,6 +7,9 @@
# default extension used when saving files
extension=xml
+# MIME type
+mime_type=application/xml
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: data/filetypes.yaml
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -21,6 +21,9 @@ keywords=true false yes no
# default extension used when saving files
extension=yaml
+# MIME type
+mime_type=application/x-yaml
+
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Modified: doc/geany.txt
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -4204,6 +4204,10 @@ xml_indent_tags
to filetypes for which the HTML or XML lexer is used. Such filetypes have
this setting in their system configuration files.
+mime_type
+ The MIME type for this file type, e.g. "text/x-csrc". This is used
+ for example to chose the icon to display for this file type.
+
[indentation] section
`````````````````````
Modified: src/filetypes.c
79 files changed, 27 insertions(+), 52 deletions(-)
===================================================================
@@ -107,7 +107,6 @@ static void init_builtin_filetypes(void)
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
@@ -115,7 +114,6 @@ static void init_builtin_filetypes(void)
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 OBJECTIVEC
@@ -123,7 +121,6 @@ static void init_builtin_filetypes(void)
ft->lang = 42;
ft->name = g_strdup("Objective-C");
filetype_make_title(ft, TITLE_SOURCE_FILE);
- ft->mime_type = g_strdup("text/x-objc");
ft->group = GEANY_FILETYPE_GROUP_COMPILED;
#define CS
@@ -131,7 +128,6 @@ static void init_builtin_filetypes(void)
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
@@ -139,7 +135,6 @@ static void init_builtin_filetypes(void)
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
@@ -147,7 +142,6 @@ static void init_builtin_filetypes(void)
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
@@ -155,7 +149,6 @@ static void init_builtin_filetypes(void)
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 */
@@ -163,7 +156,6 @@ static void init_builtin_filetypes(void)
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
@@ -185,7 +177,6 @@ static void init_builtin_filetypes(void)
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
@@ -193,7 +184,6 @@ static void init_builtin_filetypes(void)
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
@@ -207,7 +197,6 @@ static void init_builtin_filetypes(void)
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
@@ -215,7 +204,6 @@ static void init_builtin_filetypes(void)
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
@@ -223,7 +211,6 @@ static void init_builtin_filetypes(void)
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
@@ -231,7 +218,6 @@ static void init_builtin_filetypes(void)
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
@@ -239,7 +225,6 @@ static void init_builtin_filetypes(void)
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
@@ -247,7 +232,6 @@ static void init_builtin_filetypes(void)
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
@@ -255,7 +239,6 @@ static void init_builtin_filetypes(void)
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
@@ -263,7 +246,6 @@ static void init_builtin_filetypes(void)
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
@@ -278,7 +260,6 @@ static void init_builtin_filetypes(void)
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
@@ -286,7 +267,6 @@ static void init_builtin_filetypes(void)
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
@@ -294,7 +274,6 @@ static void init_builtin_filetypes(void)
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
@@ -309,7 +288,6 @@ static void init_builtin_filetypes(void)
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
@@ -317,14 +295,12 @@ static void init_builtin_filetypes(void)
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
@@ -332,7 +308,6 @@ static void init_builtin_filetypes(void)
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
@@ -340,7 +315,6 @@ static void init_builtin_filetypes(void)
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
@@ -348,7 +322,6 @@ static void init_builtin_filetypes(void)
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
@@ -356,7 +329,6 @@ static void init_builtin_filetypes(void)
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
@@ -364,7 +336,6 @@ static void init_builtin_filetypes(void)
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
@@ -372,7 +343,6 @@ static void init_builtin_filetypes(void)
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
@@ -380,7 +350,6 @@ static void init_builtin_filetypes(void)
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
@@ -388,7 +357,6 @@ static void init_builtin_filetypes(void)
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
@@ -396,7 +364,6 @@ static void init_builtin_filetypes(void)
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
@@ -409,7 +376,6 @@ static void init_builtin_filetypes(void)
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
@@ -423,7 +389,6 @@ static void init_builtin_filetypes(void)
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
@@ -438,7 +403,6 @@ static void init_builtin_filetypes(void)
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
@@ -460,21 +424,18 @@ static void init_builtin_filetypes(void)
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
@@ -488,7 +449,6 @@ static void init_builtin_filetypes(void)
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
@@ -591,9 +551,6 @@ static void filetype_add(GeanyFiletype *ft)
/* list will be sorted later */
filetypes_by_title = g_slist_prepend(filetypes_by_title, ft);
-
- if (!ft->mime_type)
- ft->mime_type = g_strdup("text/plain");
}
@@ -763,16 +720,7 @@ static void create_set_filetype_menu(void)
void filetypes_init()
{
- GSList *node;
-
filetypes_init_types();
-
- /* this has to be here as GTK isn't initialized in filetypes_init_types(). */
- foreach_slist(node, filetypes_by_title)
- {
- GeanyFiletype *ft = node->data;
- ft->icon = ui_get_mime_icon(ft->mime_type, GTK_ICON_SIZE_MENU);
- }
create_set_filetype_menu();
setup_config_file_menus();
}
@@ -1212,6 +1160,10 @@ static void load_settings(guint ft_id, GKeyFile *config, GKeyFile *configh)
SETPTR(filetypes[ft_id]->extension, result);
}
+ /* MIME type */
+ result = utils_get_setting(string, configh, config, "settings", "mime_type", "text/plain");
+ SETPTR(filetypes[ft_id]->mime_type, result);
+
/* read comment notes */
result = utils_get_setting(string, configh, config, "settings", "comment_open", NULL);
if (result != NULL)
@@ -1432,6 +1384,12 @@ void filetypes_load_config(guint ft_id, gboolean reload)
load_settings(ft_id, config, config_home);
highlighting_init_styles(ft_id, config, config_home);
+ if (reload && ft->icon)
+ {
+ g_object_unref(ft->icon);
+ ft->icon = NULL;
+ }
+
g_key_file_free(config);
g_key_file_free(config_home);
}
@@ -1840,3 +1798,20 @@ gboolean filetype_get_comment_open_close(const GeanyFiletype *ft, gboolean singl
return !EMPTY(*co);
}
+
+
+/* gets the filetype icon, possibly rendering it if not yet done
+ * Returns the filetype's icon, should not be freed
+ *
+ * This requires the mime_type setting so has to be done after the filetype
+ * is loaded, but we don't necessarily have GTK in filetypes_load_config(),
+ * so use a helper function that renders the icon if needed */
+GdkPixbuf *filetype_get_icon(GeanyFiletype *ft)
+{
+ g_return_val_if_fail(ft != NULL, NULL);
+
+ if (! ft->icon)
+ ft->icon = ui_get_mime_icon(ft->mime_type, GTK_ICON_SIZE_MENU);
+
+ return ft->icon;
+}
Modified: src/filetypes.h
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -218,6 +218,8 @@ gboolean filetypes_parse_error_message(GeanyFiletype *ft, const gchar *message,
gboolean filetype_get_comment_open_close(const GeanyFiletype *ft, gboolean single_first,
const gchar **co, const gchar **cc);
+GdkPixbuf *filetype_get_icon(GeanyFiletype *ft);
+
G_END_DECLS
#endif
Modified: src/sidebar.c
5 files changed, 3 insertions(+), 2 deletions(-)
===================================================================
@@ -456,6 +456,7 @@ void sidebar_openfiles_add(GeanyDocument *doc)
gchar *basename;
const GdkColor *color = document_get_status_color(doc);
static GdkPixbuf *file_icon = NULL;
+ GdkPixbuf *ft_icon = doc->file_type ? filetype_get_icon(doc->file_type) : NULL;
gtk_tree_store_append(store_openfiles, iter, parent);
@@ -474,7 +475,7 @@ void sidebar_openfiles_add(GeanyDocument *doc)
basename = g_path_get_basename(DOC_FILENAME(doc));
gtk_tree_store_set(store_openfiles, iter,
- DOCUMENTS_ICON, (doc->file_type && doc->file_type->icon) ? doc->file_type->icon : file_icon,
+ DOCUMENTS_ICON, ft_icon ? ft_icon : file_icon,
DOCUMENTS_SHORTNAME, basename, DOCUMENTS_DOCUMENT, doc, DOCUMENTS_COLOR, color,
DOCUMENTS_FILENAME, DOC_FILENAME(doc), -1);
g_free(basename);
@@ -505,7 +506,7 @@ void sidebar_openfiles_update(GeanyDocument *doc)
{
/* just update color and the icon */
const GdkColor *color = document_get_status_color(doc);
- GdkPixbuf *icon = doc->file_type->icon;
+ GdkPixbuf *icon = filetype_get_icon(doc->file_type);
gtk_tree_store_set(store_openfiles, iter, DOCUMENTS_COLOR, color, -1);
if (icon)
Modified: src/ui_utils.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -2587,7 +2587,7 @@ void ui_menu_add_document_items_sorted(GtkMenu *menu, GeanyDocument *active,
base_name = g_path_get_basename(DOC_FILENAME(doc));
menu_item = gtk_image_menu_item_new_with_label(base_name);
- image = gtk_image_new_from_pixbuf(doc->file_type->icon);
+ image = gtk_image_new_from_pixbuf(filetype_get_icon(doc->file_type));
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
gtk_widget_show(menu_item);
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list