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"]
23
24[jsx_tag_auto_close]
25open_tag_node_name = "jsx_opening_element"
26close_tag_node_name = "jsx_closing_element"
27jsx_element_node_name = "jsx_element"
28tag_name_node_name = "identifier"
29
30[overrides.element]
31line_comments = { remove = true }
32block_comment = ["{/* ", " */}"]
33opt_into_language_servers = ["emmet-language-server"]
34
35[overrides.string]
36completion_query_characters = ["-", "."]
37opt_into_language_servers = ["tailwindcss-language-server"]