<table><tr><td style="">igorkushnir added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D15532">View Revision</a></tr></table><br /><div><div><p>I would like to eliminate the following warnings from KDevelop's output:</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>kdevplatform.shell: formatter plugin "kdevastyle" supports unknown mimetype entry "text/x-objc++src"<br />
 kdevplatform.shell: formatter plugin "kdevastyle" supports unknown mimetype entry "text/x-objchdr"<br />
 kdevplatform.shell: formatter plugin "kdevcustomscript" supports unknown mimetype entry "text/x-objc++src"<br />
 kdevplatform.shell: formatter plugin "kdevcustomscript" supports unknown mimetype entry "text/x-objchdr"</p></blockquote>

<p>I am going to contribute Objective-C++ source MIME type to <a href="https://gitlab.freedesktop.org/xdg/shared-mime-info" class="remarkup-link" target="_blank" rel="noreferrer">https://gitlab.freedesktop.org/xdg/shared-mime-info</a>. But I don't have access to macOS, so need some information. <a href="https://phabricator.kde.org/p/rjvbb/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@rjvbb</a>, could you please try to answer the following questions?</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">KDevelop and QtCreator use <em>text/x-objc++src</em> as the MIME type name. But <a href="https://invent.kde.org/frameworks/syntax-highlighting/-/blob/0b2c0dc5368de519c4e9517a4dec69017df4cd6c/data/syntax/objectivecpp.xml" class="remarkup-link" target="_blank" rel="noreferrer">KSyntaxHighlighting</a> refers to <em>text/x-objcpp-src</em>. Is <em>text/x-objc++src</em> the canonical name used in macOS or is there some other reason to select one of these names?</li>
<li class="remarkup-list-item"><a href="https://en.wikipedia.org/wiki/Objective-C" class="remarkup-link" target="_blank" rel="noreferrer">The Objective-C Wikipedia article</a> and the KSyntaxHighlighting's data file linked-to above claim that <em>*.M</em> is one of the file extensions of Objective-C++ source files. But since macOS's filesystem is case-insensitive by default, I suppose <em>*.mm</em> is used almost universally and <em>*.M</em> practically never. Is that right? If so, there is no need to complicate the MIME database with 3 <em>case-sensitive</em> attributes.</li>
<li class="remarkup-list-item">Currently <em>text/x-objcsrc</em> has only one magic pattern: "#import". My brief research indicates that many Objective-C and Objective-C++ files start with comments or <em>#include</em>. Is that right? If so, I would like to add the following magic to these MIME types with a priority lower than <em>text/x-csrc</em>'s to facilitate distinguishing them from <em>text/x-matlab</em> and <em>text/x-troff-mm</em> MIME types with file extensions <em>*.m</em> and <em>*.mm</em> respectively:</li>
</ol>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">+      <match type="string" value="/*" offset="0"/>
+      <match type="string" value="//" offset="0"/>
+      <match type="string" value="#include" offset="0"/></pre></div>

<ol class="remarkup-list" start="4">
<li class="remarkup-list-item">My Internet searches indicate that <em>text/x-objchdr</em> MIME type is very rarely used. Qt Creator doesn't mention it. KSyntaxHighlighting refers to <em>text/x-c-hdr</em> in <em>data/syntax/objectivec[pp].xml</em>. <a href="https://commits.kde.org/kcoreaddons/e5f09f84a945af4edf4f346aed409acf29905414" class="remarkup-link" target="_blank" rel="noreferrer">This KCoreAddons commit</a> removed it as useless. Indeed, it shares the extension <em>*.h</em> with C. Not even C++ competes for this file extension in the MIME type database, even though a large proportion of <em>*.h</em> files are C++ headers. So I doubt the MIME type DB maintainers would agree to risk issues in C header detection to accommodate this rare case. Theoretically, Objective-C headers could be detected with <em>#import</em> magic, but that wouldn't be reliable, because Objective-C headers can start with a comment or with <em>#include</em>, which share C's syntax. So I am inclined to remove the references to <em>text/x-objchdr</em> from KDevelop. If I understand correctly, this MIME type is currently useless in KDevelop anyway, because it is only included in MIME type lists and never appears in conditions. Is <em>text/x-objchdr</em> used in macOS? If yes, how is it distinguished from <em>text/x-chdr</em> there?</li>
</ol></div></div><br /><div><strong>REPOSITORY</strong><div><div>R32 KDevelop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D15532">https://phabricator.kde.org/D15532</a></div></div><br /><div><strong>To: </strong>rjvbb, KDevelop, kossebau, kfunk<br /><strong>Cc: </strong>igorkushnir, aaronpuchert, kfunk, pino, kossebau, kdevelop-devel, hmitonneau, christiant, glebaccon, domson, antismap, iodelay, alexeymin, geetamc, Pilzschaf, akshaydeo, surgenight, arrowd<br /></div>