Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions src/services/code-index/__tests__/dotnet-support.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// npx vitest services/code-index/__tests__/dotnet-support.spec.ts

import { extensions } from "../../tree-sitter"
import { scannerExtensions } from "../shared/supported-extensions"

describe(".NET file extension support", () => {
it("should include C# files in supported extensions", () => {
expect(extensions).toContain(".cs")
expect(scannerExtensions).toContain(".cs")
})

it("should include Visual Basic .NET files in supported extensions", () => {
expect(extensions).toContain(".vb")
expect(scannerExtensions).toContain(".vb")
})

it("should include F# files in supported extensions", () => {
expect(extensions).toContain(".fs")
expect(extensions).toContain(".fsx")
expect(extensions).toContain(".fsi")
expect(scannerExtensions).toContain(".fs")
expect(scannerExtensions).toContain(".fsx")
expect(scannerExtensions).toContain(".fsi")
})

it("should not include markdown files in scanner extensions", () => {
expect(extensions).toContain(".md")
expect(extensions).toContain(".markdown")
expect(scannerExtensions).not.toContain(".md")
expect(scannerExtensions).not.toContain(".markdown")
})
})
6 changes: 6 additions & 0 deletions src/services/tree-sitter/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ const extensions = [
"hpp",
// C#
"cs",
// Visual Basic .NET
"vb",
// F#
"fs",
"fsx",
"fsi",
// Ruby
"rb",
"java",
Expand Down
12 changes: 12 additions & 0 deletions src/services/tree-sitter/languageParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,18 @@ export async function loadRequiredLanguageParsers(filesToParse: string[], source
language = await loadLanguage("c_sharp", sourceDirectory)
query = new Query(language, csharpQuery)
break
case "vb":
// Visual Basic .NET - use C# parser as fallback since VB.NET has similar structure
language = await loadLanguage("c_sharp", sourceDirectory)
query = new Query(language, csharpQuery)
break
case "fs":
case "fsx":
case "fsi":
// F# - use OCaml parser since F# is based on OCaml
language = await loadLanguage("ocaml", sourceDirectory)
query = new Query(language, ocamlQuery)
break
case "rb":
language = await loadLanguage("ruby", sourceDirectory)
query = new Query(language, rubyQuery)
Expand Down