11import * as path from 'path'
2+ import * as fs from 'fs'
23
34// Import some types for wasm & .scm files
45import './types'
@@ -25,7 +26,7 @@ import typescriptQuery from './tree-sitter-queries/tree-sitter-typescript-tags.s
2526export interface LanguageConfig {
2627 extensions : string [ ]
2728 wasmFile : string
28- queryText : string
29+ queryPathOrContent : string
2930
3031 /* Loaded lazily ↓ */
3132 parser ?: Parser
@@ -61,52 +62,52 @@ export const languageTable: LanguageConfig[] = [
6162 {
6263 extensions : [ '.ts' ] ,
6364 wasmFile : WASM_FILES [ 'tree-sitter-typescript.wasm' ] ,
64- queryText : typescriptQuery ,
65+ queryPathOrContent : typescriptQuery ,
6566 } ,
6667 {
6768 extensions : [ '.tsx' ] ,
6869 wasmFile : WASM_FILES [ 'tree-sitter-tsx.wasm' ] ,
69- queryText : typescriptQuery ,
70+ queryPathOrContent : typescriptQuery ,
7071 } ,
7172 {
7273 extensions : [ '.js' , '.jsx' ] ,
7374 wasmFile : WASM_FILES [ 'tree-sitter-javascript.wasm' ] ,
74- queryText : javascriptQuery ,
75+ queryPathOrContent : javascriptQuery ,
7576 } ,
7677 {
7778 extensions : [ '.py' ] ,
7879 wasmFile : WASM_FILES [ 'tree-sitter-python.wasm' ] ,
79- queryText : pythonQuery ,
80+ queryPathOrContent : pythonQuery ,
8081 } ,
8182 {
8283 extensions : [ '.java' ] ,
8384 wasmFile : WASM_FILES [ 'tree-sitter-java.wasm' ] ,
84- queryText : javaQuery ,
85+ queryPathOrContent : javaQuery ,
8586 } ,
8687 {
8788 extensions : [ '.cs' ] ,
8889 wasmFile : WASM_FILES [ 'tree-sitter-c-sharp.wasm' ] ,
89- queryText : csharpQuery ,
90+ queryPathOrContent : csharpQuery ,
9091 } ,
9192 {
9293 extensions : [ '.cpp' , '.hpp' ] ,
9394 wasmFile : WASM_FILES [ 'tree-sitter-cpp.wasm' ] ,
94- queryText : cppQuery ,
95+ queryPathOrContent : cppQuery ,
9596 } ,
9697 {
9798 extensions : [ '.rs' ] ,
9899 wasmFile : WASM_FILES [ 'tree-sitter-rust.wasm' ] ,
99- queryText : rustQuery ,
100+ queryPathOrContent : rustQuery ,
100101 } ,
101102 {
102103 extensions : [ '.rb' ] ,
103104 wasmFile : WASM_FILES [ 'tree-sitter-ruby.wasm' ] ,
104- queryText : rubyQuery ,
105+ queryPathOrContent : rubyQuery ,
105106 } ,
106107 {
107108 extensions : [ '.go' ] ,
108109 wasmFile : WASM_FILES [ 'tree-sitter-go.wasm' ] ,
109- queryText : goQuery ,
110+ queryPathOrContent : goQuery ,
110111 } ,
111112]
112113
@@ -269,9 +270,14 @@ export async function createLanguageConfig(
269270 const parser = new Parser ( )
270271 parser . setLanguage ( lang )
271272
273+ // When loaded with bun, the queryText is a path to the file, not the content of the file.
274+ const queryContent = path . isAbsolute ( cfg . queryPathOrContent )
275+ ? fs . readFileSync ( cfg . queryPathOrContent , 'utf8' )
276+ : cfg . queryPathOrContent
277+
272278 cfg . language = lang
273279 cfg . parser = parser
274- cfg . query = new Query ( lang , cfg . queryText )
280+ cfg . query = new Query ( lang , queryContent )
275281 } catch ( err ) {
276282 // Let the runtime-specific implementation handle error logging
277283 throw err
0 commit comments