summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Kushnir <igorkuo@gmail.com>2021-10-10 12:29:14 +0300
committerDavid Faure <faure@kde.org>2021-12-12 18:48:29 +0000
commit8feb299b037c48a1a67697ba868ccc939a851ba0 (patch)
tree7a6e9cfd7d22674fce35f79178ec0ef8d85bfdcb
parent7d10eb97ad94f500a577a5a516a1ffc1a9fb0805 (diff)
downloadshared-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.in8
-rw-r--r--tests/mime-detection/comment-objc.m6
-rw-r--r--tests/mime-detection/import-objc++.mm6
-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++.mm6
-rw-r--r--tests/mime-detection/list12
-rw-r--r--tests/mime-detection/no-extension-c-comment1
-rw-r--r--tests/mime-detection/simple-troff.mm2
-rw-r--r--tests/mime-detection/simple-troff.tr4
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