1name = "JavaScript"
2grammar = "tsx"
3path_suffixes = ["js", "jsx", "mjs", "cjs"]
4# [/ ] is so we match "env node" or "/node" but not "ts-node"
5first_line_pattern = '^#!.*\b(?:[/ ]node|deno run.*--ext[= ]js)\b'
6line_comments = ["// "]
7autoclose_before = ";:.,=}])>"
8brackets = [
9 { start = "{", end = "}", close = true, newline = true },
10 { start = "[", end = "]", close = true, newline = true },
11 { start = "(", end = ")", close = true, newline = true },
12 { start = "<", end = ">", close = false, newline = true, not_in = ["comment", "string"] },
13 { start = "\"", end = "\"", close = true, newline = false, not_in = ["comment", "string"] },
14 { start = "'", end = "'", close = true, newline = false, not_in = ["comment", "string"] },
15 { start = "`", end = "`", close = true, newline = false, not_in = ["comment", "string"] },
16 { start = "/*", end = " */", close = true, newline = false, not_in = ["comment", "string"] },
17]
18word_characters = ["$", "#"]
19tab_size = 2
20scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"]
21prettier_parser_name = "babel"
22debuggers = ["JavaScript"]
23documentation = { start = "/**", end = "*/", prefix = "* ", tab_size = 1 }
24
25[jsx_tag_auto_close]
26open_tag_node_name = "jsx_opening_element"
27close_tag_node_name = "jsx_closing_element"
28jsx_element_node_name = "jsx_element"
29tag_name_node_name = "identifier"
30
31[overrides.element]
32line_comments = { remove = true }
33block_comment = ["{/* ", " */}"]
34opt_into_language_servers = ["emmet-language-server"]
35
36[overrides.string]
37completion_query_characters = ["-", "."]
38opt_into_language_servers = ["tailwindcss-language-server"]