Closes #4271 Implemented by kicking of a task on the main thread at the end of `Editor::handle_input` which waits for the buffer to be re-parsed before checking if JSX tag completion possible based on the recent edits, and if it is then it spawns a task on the background thread to generate the edits to be auto-applied to the buffer Release Notes: - Added support for auto-closing of JSX tags --------- Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Max Brunsfeld <max@zed.dev> Co-authored-by: Marshall Bowers <git@maxdeviant.com> Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Peter Tripp <peter@zed.dev>
37 lines
1.5 KiB
TOML
37 lines
1.5 KiB
TOML
name = "JavaScript"
|
|
grammar = "tsx"
|
|
path_suffixes = ["js", "jsx", "mjs", "cjs"]
|
|
# [/ ] is so we match "env node" or "/node" but not "ts-node"
|
|
first_line_pattern = '^#!.*\b(?:[/ ]node|deno run.*--ext[= ]js)\b'
|
|
line_comments = ["// "]
|
|
autoclose_before = ";:.,=}])>"
|
|
brackets = [
|
|
{ start = "{", end = "}", close = true, newline = true },
|
|
{ start = "[", end = "]", close = true, newline = true },
|
|
{ start = "(", end = ")", close = true, newline = true },
|
|
{ start = "<", end = ">", close = false, newline = true, not_in = ["comment", "string"] },
|
|
{ start = "\"", end = "\"", close = true, newline = false, not_in = ["comment", "string"] },
|
|
{ start = "'", end = "'", close = true, newline = false, not_in = ["comment", "string"] },
|
|
{ start = "`", end = "`", close = true, newline = false, not_in = ["comment", "string"] },
|
|
{ start = "/*", end = " */", close = true, newline = false, not_in = ["comment", "string"] },
|
|
]
|
|
word_characters = ["$", "#"]
|
|
tab_size = 2
|
|
scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"]
|
|
prettier_parser_name = "babel"
|
|
|
|
[jsx_tag_auto_close]
|
|
open_tag_node_name = "jsx_opening_element"
|
|
close_tag_node_name = "jsx_closing_element"
|
|
jsx_element_node_name = "jsx_element"
|
|
tag_name_node_name = "identifier"
|
|
|
|
[overrides.element]
|
|
line_comments = { remove = true }
|
|
block_comment = ["{/* ", " */}"]
|
|
opt_into_language_servers = ["emmet-language-server"]
|
|
|
|
[overrides.string]
|
|
word_characters = ["-"]
|
|
opt_into_language_servers = ["tailwindcss-language-server"]
|