diff --git a/internal/indexer/extractor_version.go b/internal/indexer/extractor_version.go index 384c0852..d0d7d788 100644 --- a/internal/indexer/extractor_version.go +++ b/internal/indexer/extractor_version.go @@ -66,6 +66,7 @@ var extractorSaltExtLang = map[string]string{ ".cxx": "cpp", ".hpp": "cpp", ".hh": "cpp", + ".hxx": "cpp", ".cs": "csharp", // Razor templates are extracted by the C# extractor over their // embedded code blocks, so a C# extraction fix has to re-flag them diff --git a/internal/indexer/extractor_version_test.go b/internal/indexer/extractor_version_test.go index 4300cbb8..023b56d8 100644 --- a/internal/indexer/extractor_version_test.go +++ b/internal/indexer/extractor_version_test.go @@ -70,12 +70,18 @@ func TestStaleLangsDetection(t *testing.T) { if got := merkleSaltFor("src/Handler.php"); got != "php@2" { t.Errorf("PHP extractor salt = %q, want php@2", got) } + if got := merkleSaltFor("include/widget.hxx"); got != "cpp@2" { + t.Errorf("C++ extractor salt for .hxx = %q, want cpp@2", got) + } }) t.Run("lang_for_file", func(t *testing.T) { if got := ExtractorLangForFile("internal/auth/token.go"); got != "go" { t.Errorf("ExtractorLangForFile(.go) = %q, want go", got) } + if got := ExtractorLangForFile("include/widget.hxx"); got != "cpp" { + t.Errorf("ExtractorLangForFile(.hxx) = %q, want cpp", got) + } if got := ExtractorLangForFile("README.zzz"); got != "" { t.Errorf("ExtractorLangForFile(unknown) = %q, want \"\"", got) } diff --git a/internal/parser/languages/cpp.go b/internal/parser/languages/cpp.go index d46006b5..e416aa85 100644 --- a/internal/parser/languages/cpp.go +++ b/internal/parser/languages/cpp.go @@ -118,7 +118,7 @@ func NewCppExtractor() *CppExtractor { } func (e *CppExtractor) Language() string { return "cpp" } -func (e *CppExtractor) Extensions() []string { return []string{".cpp", ".cc", ".cxx", ".hpp"} } +func (e *CppExtractor) Extensions() []string { return []string{".cpp", ".cc", ".cxx", ".hpp", ".hxx"} } // --- Deferred call buffer ---------------------------------------- diff --git a/internal/parser/languages/cpp_test.go b/internal/parser/languages/cpp_test.go index ad6ac82a..0cb745be 100644 --- a/internal/parser/languages/cpp_test.go +++ b/internal/parser/languages/cpp_test.go @@ -136,6 +136,7 @@ func TestCppExtractor_Extensions(t *testing.T) { assert.Contains(t, exts, ".cc") assert.Contains(t, exts, ".cxx") assert.Contains(t, exts, ".hpp") + assert.Contains(t, exts, ".hxx") assert.NotContains(t, exts, ".h") }