Merge pull request #2230 from yasmoradi/fix/dotnet-xml-extensions

fix(discover): map MSBuild, resx, XAML and app-manifest files to XML
This commit is contained in:
Martin Vogel authored and GitHub committed 2026-09-20 17:04:36 +02:00
commit 9b6c99e794
2 files changed
+56

No files matched your search

+22
View File
@@ -321,6 +321,28 @@ static const ext_entry_t EXT_TABLE[] = {
{".xsd", CBM_LANG_XML},
{".xsl", CBM_LANG_XML},
{".svg", CBM_LANG_XML},
/* MSBuild project system. Plain XML documents, and the files that carry a
* .NET repository's package references, target frameworks, build hooks and
* project layout — none of which were reachable while these were unmapped. */
{".csproj", CBM_LANG_XML},
{".vbproj", CBM_LANG_XML},
{".fsproj", CBM_LANG_XML},
{".props", CBM_LANG_XML},
{".targets", CBM_LANG_XML},
{".nuspec", CBM_LANG_XML},
{".slnx", CBM_LANG_XML},
{".runsettings", CBM_LANG_XML},
/* .NET resource files: the localized strings a UI reads back by key. */
{".resx", CBM_LANG_XML},
/* XAML views: WPF, WinUI, MAUI (.xaml) and Avalonia (.axaml). */
{".xaml", CBM_LANG_XML},
{".axaml", CBM_LANG_XML},
/* Application manifests: Apple property lists and privacy manifests, Win32
* side-by-side manifests and MSIX packages. */
{".plist", CBM_LANG_XML},
{".xcprivacy", CBM_LANG_XML},
{".manifest", CBM_LANG_XML},
{".appxmanifest", CBM_LANG_XML},
/* YAML */
{".yaml", CBM_LANG_YAML},
+34
View File
@@ -413,6 +413,36 @@ TEST(lang_ext_svg) {
ASSERT_EQ(cbm_language_for_extension(".svg"), CBM_LANG_XML);
PASS();
}
/* Issue #2229: the XML documents that make up a .NET repository's project
* system were unmapped, so a solution's package references, target frameworks,
* localized strings and app manifests were never indexed or searchable. */
TEST(lang_ext_msbuild_projects) {
ASSERT_EQ(cbm_language_for_extension(".csproj"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".vbproj"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".fsproj"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".props"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".targets"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".nuspec"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".slnx"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".runsettings"), CBM_LANG_XML);
PASS();
}
TEST(lang_ext_resx) {
ASSERT_EQ(cbm_language_for_extension(".resx"), CBM_LANG_XML);
PASS();
}
TEST(lang_ext_xaml) {
ASSERT_EQ(cbm_language_for_extension(".xaml"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".axaml"), CBM_LANG_XML);
PASS();
}
TEST(lang_ext_app_manifests) {
ASSERT_EQ(cbm_language_for_extension(".plist"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".xcprivacy"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".manifest"), CBM_LANG_XML);
ASSERT_EQ(cbm_language_for_extension(".appxmanifest"), CBM_LANG_XML);
PASS();
}
TEST(lang_ext_markdown) {
ASSERT_EQ(cbm_language_for_extension(".md"), CBM_LANG_MARKDOWN);
PASS();
@@ -1361,6 +1391,10 @@ SUITE(language) {
RUN_TEST(lang_ext_xsl);
RUN_TEST(lang_ext_xsd);
RUN_TEST(lang_ext_svg);
RUN_TEST(lang_ext_msbuild_projects);
RUN_TEST(lang_ext_resx);
RUN_TEST(lang_ext_xaml);
RUN_TEST(lang_ext_app_manifests);
RUN_TEST(lang_ext_markdown);
RUN_TEST(lang_ext_mdx);
RUN_TEST(lang_ext_makefile);