diff options
author | Igor Kushnir <igorkuo@gmail.com> | 2021-10-10 12:29:14 +0300 |
---|---|---|
committer | David Faure <faure@kde.org> | 2021-12-12 18:48:29 +0000 |
commit | 8feb299b037c48a1a67697ba868ccc939a851ba0 (patch) | |
tree | 7a6e9cfd7d22674fce35f79178ec0ef8d85bfdcb | |
parent | 7d10eb97ad94f500a577a5a516a1ffc1a9fb0805 (diff) | |
download | shared-mime-info-8feb299b037c48a1a67697ba868ccc939a851ba0.tar.gz |
text/x-objc++src: new type
This MIME type name is used in Qt Creator [1] and KDevelop [2]. A
different name - text/x-objcpp-src - is used in KSyntaxHighlighting [3].
The name text/x-objc++src is consistent with the existing MIME type
names text/x-c++src and text/x-objcsrc. So KSyntaxHighlighting's name
will have to be replaced later.
The Objective-C Wikipedia article and the KSyntaxHighlighting's data
file [3] claim that *.M is one of the file extensions of Objective-C++
source files. But since macOS's file system is case-insensitive by
default, *.mm is used almost universally. Thus there is no need to
complicate the MIME type database with case-sensitive attributes.
Make text/x-troff-mm a subclass of text/troff to reuse its magic
element. As far as I can tell, these two file formats share the same
comment syntax, which is encoded in text/troff's magic.
Add Objective-C, Objective-C++, Troff, Troff MM and C tests to verify
correct detection of the new MIME type and the absence of regressions.
[1] https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/src/plugins/cppeditor/CppEditor.json.in?id=2cc28dea65846153d16c213283ffac7af530590d#n100
[2] https://invent.kde.org/kdevelop/kdevelop/-/blob/ebd207cca2387b5734a591803381880505e39a30/plugins/astyle/astyle_plugin.cpp#L284
[3] https://invent.kde.org/frameworks/syntax-highlighting/-/blob/0b2c0dc5368de519c4e9517a4dec69017df4cd6c/data/syntax/objectivecpp.xml#L3
-rw-r--r-- | data/freedesktop.org.xml.in | 8 | ||||
-rw-r--r-- | tests/mime-detection/comment-objc.m | 6 | ||||
-rw-r--r-- | tests/mime-detection/import-objc++.mm | 6 | ||||
-rw-r--r-- | tests/mime-detection/import-objc.m (renamed from tests/mime-detection/simple-obj-c.m) | 0 | ||||
-rw-r--r-- | tests/mime-detection/include-objc++.mm | 6 | ||||
-rw-r--r-- | tests/mime-detection/list | 12 | ||||
-rw-r--r-- | tests/mime-detection/no-extension-c-comment | 1 | ||||
-rw-r--r-- | tests/mime-detection/simple-troff.mm | 2 | ||||
-rw-r--r-- | tests/mime-detection/simple-troff.tr | 4 |
9 files changed, 42 insertions, 3 deletions
diff --git a/data/freedesktop.org.xml.in b/data/freedesktop.org.xml.in index 6a639c83..399e7e7f 100644 --- a/data/freedesktop.org.xml.in +++ b/data/freedesktop.org.xml.in @@ -6435,6 +6435,12 @@ command to generate the output files. </magic> <glob pattern="*.m"/> </mime-type> + <mime-type type="text/x-objc++src"> + <comment>Objective-C++ source code</comment> + <sub-class-of type="text/x-c++src"/> + <sub-class-of type="text/x-objcsrc"/> + <glob pattern="*.mm"/> + </mime-type> <mime-type type="text/x-ocaml"> <comment>OCaml source code</comment> <sub-class-of type="text/plain"/> @@ -6686,7 +6692,7 @@ command to generate the output files. </mime-type> <mime-type type="text/x-troff-mm"> <comment>Troff MM input document</comment> - <sub-class-of type="text/plain"/> + <sub-class-of type="text/troff"/> <glob pattern="*.mm"/> </mime-type> <mime-type type="text/x-troff-ms"> diff --git a/tests/mime-detection/comment-objc.m b/tests/mime-detection/comment-objc.m new file mode 100644 index 00000000..c3801ed1 --- /dev/null +++ b/tests/mime-detection/comment-objc.m @@ -0,0 +1,6 @@ +/*********************************************** +** +** Copyright (C) 2021 name <email@example.com> +** License +** +***********************************************/ diff --git a/tests/mime-detection/import-objc++.mm b/tests/mime-detection/import-objc++.mm new file mode 100644 index 00000000..b90b737e --- /dev/null +++ b/tests/mime-detection/import-objc++.mm @@ -0,0 +1,6 @@ +#import <CoreFoundation/CoreFoundation.h> + +void functionName() +{ + [foo methodical:fixIt]; +} diff --git a/tests/mime-detection/simple-obj-c.m b/tests/mime-detection/import-objc.m index ae0e0e34..ae0e0e34 100644 --- a/tests/mime-detection/simple-obj-c.m +++ b/tests/mime-detection/import-objc.m diff --git a/tests/mime-detection/include-objc++.mm b/tests/mime-detection/include-objc++.mm new file mode 100644 index 00000000..cfa569d9 --- /dev/null +++ b/tests/mime-detection/include-objc++.mm @@ -0,0 +1,6 @@ +#include "myheader.h" + +int Foo::bar() +{ + return rand() % max_; +} diff --git a/tests/mime-detection/list b/tests/mime-detection/list index f5ea935c..946a0575 100644 --- a/tests/mime-detection/list +++ b/tests/mime-detection/list @@ -359,8 +359,13 @@ isdir.m text/x-matlab x test.mo text/x-modelica xoo # From https://bugs.freedesktop.org/show_bug.cgi?id=29733 bibtex.bib text/x-bibtex -# hand-made -simple-obj-c.m text/x-objcsrc +# the following 6 test files are hand-made +import-objc.m text/x-objcsrc +comment-objc.m text/x-objcsrc ox +import-objc++.mm text/x-objc++src ox +include-objc++.mm text/x-objc++src ox +simple-troff.tr text/troff +simple-troff.mm text/x-troff-mm xx # Copied from LLVM project test suite test.cl text/x-opencl-src ox # hand-made @@ -800,8 +805,11 @@ SConscript text/x-scons oxo SConscript.buildinfo text/x-scons oxo # Source code +# the following 3 test files are hand-made cplusplusfile.C text/x-c++src oxo cfile.c text/x-csrc oxo +no-extension-c-comment text/x-csrc x +test-gettext.c text/x-csrc # Common Lisp source code common-lisp.asd text/x-common-lisp oxo diff --git a/tests/mime-detection/no-extension-c-comment b/tests/mime-detection/no-extension-c-comment new file mode 100644 index 00000000..ee8cde08 --- /dev/null +++ b/tests/mime-detection/no-extension-c-comment @@ -0,0 +1 @@ +// Doc diff --git a/tests/mime-detection/simple-troff.mm b/tests/mime-detection/simple-troff.mm new file mode 100644 index 00000000..1b00a3a8 --- /dev/null +++ b/tests/mime-detection/simple-troff.mm @@ -0,0 +1,2 @@ +\" Example +.HU "macro" diff --git a/tests/mime-detection/simple-troff.tr b/tests/mime-detection/simple-troff.tr new file mode 100644 index 00000000..0ad4e921 --- /dev/null +++ b/tests/mime-detection/simple-troff.tr @@ -0,0 +1,4 @@ +.\" table +.TS +text example +.TE |