From 544ca443e3dc51e94557c4284f79003d228dc719 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Tue, 12 Apr 2022 11:30:37 -0700 Subject: [PATCH 1/3] Add javascript and jsx specific languages --- crates/zed/src/languages.rs | 10 + .../zed/src/languages/javascript/brackets.scm | 5 + .../zed/src/languages/javascript/config.toml | 12 + .../src/languages/javascript/highlights.scm | 219 ++++++++++++++++++ .../zed/src/languages/javascript/indents.scm | 15 ++ .../zed/src/languages/javascript/outline.scm | 55 +++++ crates/zed/src/languages/jsx/brackets.scm | 5 + crates/zed/src/languages/jsx/config.toml | 12 + .../zed/src/languages/jsx/highlights-jsx.scm | 0 crates/zed/src/languages/jsx/highlights.scm | 219 ++++++++++++++++++ crates/zed/src/languages/jsx/indents.scm | 15 ++ crates/zed/src/languages/jsx/outline.scm | 55 +++++ crates/zed/src/languages/tsx/config.toml | 2 +- crates/zed/src/main.rs | 14 ++ 14 files changed, 637 insertions(+), 1 deletion(-) create mode 100644 crates/zed/src/languages/javascript/brackets.scm create mode 100644 crates/zed/src/languages/javascript/config.toml create mode 100644 crates/zed/src/languages/javascript/highlights.scm create mode 100644 crates/zed/src/languages/javascript/indents.scm create mode 100644 crates/zed/src/languages/javascript/outline.scm create mode 100644 crates/zed/src/languages/jsx/brackets.scm create mode 100644 crates/zed/src/languages/jsx/config.toml create mode 100644 crates/zed/src/languages/jsx/highlights-jsx.scm create mode 100644 crates/zed/src/languages/jsx/highlights.scm create mode 100644 crates/zed/src/languages/jsx/indents.scm create mode 100644 crates/zed/src/languages/jsx/outline.scm diff --git a/crates/zed/src/languages.rs b/crates/zed/src/languages.rs index 75a5030ec6a9991ef87d7ebc764c5aabaa6d27d6..b62ae1bfdbb54300eca966f1827664d7c4690dd5 100644 --- a/crates/zed/src/languages.rs +++ b/crates/zed/src/languages.rs @@ -42,11 +42,21 @@ pub fn build_language_registry(login_shell_env_loaded: Task<()>) -> LanguageRegi tree_sitter_typescript::language_tsx(), Some(Arc::new(typescript::TypeScriptLspAdapter)), ), + ( + "jsx", + tree_sitter_typescript::language_tsx(), + Some(Arc::new(typescript::TypeScriptLspAdapter)), + ), ( "typescript", tree_sitter_typescript::language_typescript(), Some(Arc::new(typescript::TypeScriptLspAdapter)), ), + ( + "javascript", + tree_sitter_typescript::language_typescript(), + Some(Arc::new(typescript::TypeScriptLspAdapter)), + ), ] { languages.add(Arc::new(language(name, grammar, lsp_adapter))); } diff --git a/crates/zed/src/languages/javascript/brackets.scm b/crates/zed/src/languages/javascript/brackets.scm new file mode 100644 index 0000000000000000000000000000000000000000..63395f81d84e6452c631a9e582e2d697cba445ef --- /dev/null +++ b/crates/zed/src/languages/javascript/brackets.scm @@ -0,0 +1,5 @@ +("(" @open ")" @close) +("[" @open "]" @close) +("{" @open "}" @close) +("<" @open ">" @close) +("\"" @open "\"" @close) diff --git a/crates/zed/src/languages/javascript/config.toml b/crates/zed/src/languages/javascript/config.toml new file mode 100644 index 0000000000000000000000000000000000000000..875dcdaf8e585908bbf9b05b64f43dcc2ee25b91 --- /dev/null +++ b/crates/zed/src/languages/javascript/config.toml @@ -0,0 +1,12 @@ +name = "JavaScript" +path_suffixes = ["js"] +line_comment = "// " +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 }, + { start = "\"", end = "\"", close = true, newline = false }, + { start = "/*", end = " */", close = true, newline = false }, +] diff --git a/crates/zed/src/languages/javascript/highlights.scm b/crates/zed/src/languages/javascript/highlights.scm new file mode 100644 index 0000000000000000000000000000000000000000..cb4e82b33d8b04da41e90c6926499669fee33b60 --- /dev/null +++ b/crates/zed/src/languages/javascript/highlights.scm @@ -0,0 +1,219 @@ +; Variables + +(identifier) @variable + +; Properties + +(property_identifier) @property + +; Function and method calls + +(call_expression + function: (identifier) @function) + +(call_expression + function: (member_expression + property: (property_identifier) @function.method)) + +; Function and method definitions + +(function + name: (identifier) @function) +(function_declaration + name: (identifier) @function) +(method_definition + name: (property_identifier) @function.method) + +(pair + key: (property_identifier) @function.method + value: [(function) (arrow_function)]) + +(assignment_expression + left: (member_expression + property: (property_identifier) @function.method) + right: [(function) (arrow_function)]) + +(variable_declarator + name: (identifier) @function + value: [(function) (arrow_function)]) + +(assignment_expression + left: (identifier) @function + right: [(function) (arrow_function)]) + +; Special identifiers + +((identifier) @constructor + (#match? @constructor "^[A-Z]")) + +([ + (identifier) + (shorthand_property_identifier) + (shorthand_property_identifier_pattern) + ] @constant + (#match? @constant "^[A-Z_][A-Z\\d_]+$")) + +; Literals + +(this) @variable.builtin +(super) @variable.builtin + +[ + (true) + (false) + (null) + (undefined) +] @constant.builtin + +(comment) @comment + +[ + (string) + (template_string) +] @string + +(regex) @string.special +(number) @number + +; Tokens + +(template_substitution + "${" @punctuation.special + "}" @punctuation.special) @embedded + +[ + ";" + "?." + "." + "," +] @punctuation.delimiter + +[ + "-" + "--" + "-=" + "+" + "++" + "+=" + "*" + "*=" + "**" + "**=" + "/" + "/=" + "%" + "%=" + "<" + "<=" + "<<" + "<<=" + "=" + "==" + "===" + "!" + "!=" + "!==" + "=>" + ">" + ">=" + ">>" + ">>=" + ">>>" + ">>>=" + "~" + "^" + "&" + "|" + "^=" + "&=" + "|=" + "&&" + "||" + "??" + "&&=" + "||=" + "??=" +] @operator + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "as" + "async" + "await" + "break" + "case" + "catch" + "class" + "const" + "continue" + "debugger" + "default" + "delete" + "do" + "else" + "export" + "extends" + "finally" + "for" + "from" + "function" + "get" + "if" + "import" + "in" + "instanceof" + "let" + "new" + "of" + "return" + "set" + "static" + "switch" + "target" + "throw" + "try" + "typeof" + "var" + "void" + "while" + "with" + "yield" +] @keyword + +; Types + +(type_identifier) @type +(predefined_type) @type.builtin + +((identifier) @type + (#match? @type "^[A-Z]")) + +(type_arguments + "<" @punctuation.bracket + ">" @punctuation.bracket) + +; Keywords + +[ "abstract" + "declare" + "enum" + "export" + "implements" + "interface" + "keyof" + "namespace" + "private" + "protected" + "public" + "type" + "readonly" + "override" +] @keyword \ No newline at end of file diff --git a/crates/zed/src/languages/javascript/indents.scm b/crates/zed/src/languages/javascript/indents.scm new file mode 100644 index 0000000000000000000000000000000000000000..107e6ff8e03b633f408676243c24d0d9707a2a26 --- /dev/null +++ b/crates/zed/src/languages/javascript/indents.scm @@ -0,0 +1,15 @@ +[ + (call_expression) + (assignment_expression) + (member_expression) + (lexical_declaration) + (variable_declaration) + (assignment_expression) + (if_statement) + (for_statement) +] @indent + +(_ "[" "]" @end) @indent +(_ "<" ">" @end) @indent +(_ "{" "}" @end) @indent +(_ "(" ")" @end) @indent diff --git a/crates/zed/src/languages/javascript/outline.scm b/crates/zed/src/languages/javascript/outline.scm new file mode 100644 index 0000000000000000000000000000000000000000..f8691fa41d9f64bc71e8a7ada2e6d64d62268a3a --- /dev/null +++ b/crates/zed/src/languages/javascript/outline.scm @@ -0,0 +1,55 @@ +(internal_module + "namespace" @context + name: (_) @name) @item + +(enum_declaration + "enum" @context + name: (_) @name) @item + +(function_declaration + "async"? @context + "function" @context + name: (_) @name + parameters: (formal_parameters + "(" @context + ")" @context)) @item + +(interface_declaration + "interface" @context + name: (_) @name) @item + +(program + (lexical_declaration + ["let" "const"] @context + (variable_declarator + name: (_) @name) @item)) + +(class_declaration + "class" @context + name: (_) @name) @item + +(method_definition + [ + "get" + "set" + "async" + "*" + "readonly" + "static" + (override_modifier) + (accessibility_modifier) + ]* @context + name: (_) @name + parameters: (formal_parameters + "(" @context + ")" @context)) @item + +(public_field_definition + [ + "declare" + "readonly" + "abstract" + "static" + (accessibility_modifier) + ]* @context + name: (_) @name) @item diff --git a/crates/zed/src/languages/jsx/brackets.scm b/crates/zed/src/languages/jsx/brackets.scm new file mode 100644 index 0000000000000000000000000000000000000000..63395f81d84e6452c631a9e582e2d697cba445ef --- /dev/null +++ b/crates/zed/src/languages/jsx/brackets.scm @@ -0,0 +1,5 @@ +("(" @open ")" @close) +("[" @open "]" @close) +("{" @open "}" @close) +("<" @open ">" @close) +("\"" @open "\"" @close) diff --git a/crates/zed/src/languages/jsx/config.toml b/crates/zed/src/languages/jsx/config.toml new file mode 100644 index 0000000000000000000000000000000000000000..3e4dc5f79f300de8ec2883f6d012b64e0c989dc4 --- /dev/null +++ b/crates/zed/src/languages/jsx/config.toml @@ -0,0 +1,12 @@ +name = "JSX" +path_suffixes = ["jsx"] +line_comment = "// " +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 }, + { start = "\"", end = "\"", close = true, newline = false }, + { start = "/*", end = " */", close = true, newline = false }, +] diff --git a/crates/zed/src/languages/jsx/highlights-jsx.scm b/crates/zed/src/languages/jsx/highlights-jsx.scm new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/crates/zed/src/languages/jsx/highlights.scm b/crates/zed/src/languages/jsx/highlights.scm new file mode 100644 index 0000000000000000000000000000000000000000..cb4e82b33d8b04da41e90c6926499669fee33b60 --- /dev/null +++ b/crates/zed/src/languages/jsx/highlights.scm @@ -0,0 +1,219 @@ +; Variables + +(identifier) @variable + +; Properties + +(property_identifier) @property + +; Function and method calls + +(call_expression + function: (identifier) @function) + +(call_expression + function: (member_expression + property: (property_identifier) @function.method)) + +; Function and method definitions + +(function + name: (identifier) @function) +(function_declaration + name: (identifier) @function) +(method_definition + name: (property_identifier) @function.method) + +(pair + key: (property_identifier) @function.method + value: [(function) (arrow_function)]) + +(assignment_expression + left: (member_expression + property: (property_identifier) @function.method) + right: [(function) (arrow_function)]) + +(variable_declarator + name: (identifier) @function + value: [(function) (arrow_function)]) + +(assignment_expression + left: (identifier) @function + right: [(function) (arrow_function)]) + +; Special identifiers + +((identifier) @constructor + (#match? @constructor "^[A-Z]")) + +([ + (identifier) + (shorthand_property_identifier) + (shorthand_property_identifier_pattern) + ] @constant + (#match? @constant "^[A-Z_][A-Z\\d_]+$")) + +; Literals + +(this) @variable.builtin +(super) @variable.builtin + +[ + (true) + (false) + (null) + (undefined) +] @constant.builtin + +(comment) @comment + +[ + (string) + (template_string) +] @string + +(regex) @string.special +(number) @number + +; Tokens + +(template_substitution + "${" @punctuation.special + "}" @punctuation.special) @embedded + +[ + ";" + "?." + "." + "," +] @punctuation.delimiter + +[ + "-" + "--" + "-=" + "+" + "++" + "+=" + "*" + "*=" + "**" + "**=" + "/" + "/=" + "%" + "%=" + "<" + "<=" + "<<" + "<<=" + "=" + "==" + "===" + "!" + "!=" + "!==" + "=>" + ">" + ">=" + ">>" + ">>=" + ">>>" + ">>>=" + "~" + "^" + "&" + "|" + "^=" + "&=" + "|=" + "&&" + "||" + "??" + "&&=" + "||=" + "??=" +] @operator + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "as" + "async" + "await" + "break" + "case" + "catch" + "class" + "const" + "continue" + "debugger" + "default" + "delete" + "do" + "else" + "export" + "extends" + "finally" + "for" + "from" + "function" + "get" + "if" + "import" + "in" + "instanceof" + "let" + "new" + "of" + "return" + "set" + "static" + "switch" + "target" + "throw" + "try" + "typeof" + "var" + "void" + "while" + "with" + "yield" +] @keyword + +; Types + +(type_identifier) @type +(predefined_type) @type.builtin + +((identifier) @type + (#match? @type "^[A-Z]")) + +(type_arguments + "<" @punctuation.bracket + ">" @punctuation.bracket) + +; Keywords + +[ "abstract" + "declare" + "enum" + "export" + "implements" + "interface" + "keyof" + "namespace" + "private" + "protected" + "public" + "type" + "readonly" + "override" +] @keyword \ No newline at end of file diff --git a/crates/zed/src/languages/jsx/indents.scm b/crates/zed/src/languages/jsx/indents.scm new file mode 100644 index 0000000000000000000000000000000000000000..107e6ff8e03b633f408676243c24d0d9707a2a26 --- /dev/null +++ b/crates/zed/src/languages/jsx/indents.scm @@ -0,0 +1,15 @@ +[ + (call_expression) + (assignment_expression) + (member_expression) + (lexical_declaration) + (variable_declaration) + (assignment_expression) + (if_statement) + (for_statement) +] @indent + +(_ "[" "]" @end) @indent +(_ "<" ">" @end) @indent +(_ "{" "}" @end) @indent +(_ "(" ")" @end) @indent diff --git a/crates/zed/src/languages/jsx/outline.scm b/crates/zed/src/languages/jsx/outline.scm new file mode 100644 index 0000000000000000000000000000000000000000..f8691fa41d9f64bc71e8a7ada2e6d64d62268a3a --- /dev/null +++ b/crates/zed/src/languages/jsx/outline.scm @@ -0,0 +1,55 @@ +(internal_module + "namespace" @context + name: (_) @name) @item + +(enum_declaration + "enum" @context + name: (_) @name) @item + +(function_declaration + "async"? @context + "function" @context + name: (_) @name + parameters: (formal_parameters + "(" @context + ")" @context)) @item + +(interface_declaration + "interface" @context + name: (_) @name) @item + +(program + (lexical_declaration + ["let" "const"] @context + (variable_declarator + name: (_) @name) @item)) + +(class_declaration + "class" @context + name: (_) @name) @item + +(method_definition + [ + "get" + "set" + "async" + "*" + "readonly" + "static" + (override_modifier) + (accessibility_modifier) + ]* @context + name: (_) @name + parameters: (formal_parameters + "(" @context + ")" @context)) @item + +(public_field_definition + [ + "declare" + "readonly" + "abstract" + "static" + (accessibility_modifier) + ]* @context + name: (_) @name) @item diff --git a/crates/zed/src/languages/tsx/config.toml b/crates/zed/src/languages/tsx/config.toml index a6f4a6d2d000d5bcf83219a27b52446178c7e079..62717266df9e0bd56d83b336cfbf28aa2b01ee4b 100644 --- a/crates/zed/src/languages/tsx/config.toml +++ b/crates/zed/src/languages/tsx/config.toml @@ -1,5 +1,5 @@ name = "TSX" -path_suffixes = ["tsx", "js"] +path_suffixes = ["tsx"] line_comment = "// " autoclose_before = ";:.,=}])>" brackets = [ diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 1c24c613d7cb437fbe92c97b46ab5372a29ed92e..599754dd9e0abfb63eec8c2ba04ccb4587713f83 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -55,6 +55,20 @@ fn main() { ..Default::default() }, ) + .with_overrides( + "JavaScript", + settings::LanguageOverride { + tab_size: Some(2), + ..Default::default() + }, + ) + .with_overrides( + "JSX", + settings::LanguageOverride { + tab_size: Some(2), + ..Default::default() + }, + ) .with_overrides( "TypeScript", settings::LanguageOverride { From dcd59226098a17a93ed524a70403dd8195ce12a7 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 14 Apr 2022 11:30:19 -0700 Subject: [PATCH 2/3] Merge jsx language into js --- crates/zed/src/languages.rs | 5 - .../zed/src/languages/javascript/config.toml | 2 +- crates/zed/src/languages/jsx/brackets.scm | 5 - crates/zed/src/languages/jsx/config.toml | 12 - .../zed/src/languages/jsx/highlights-jsx.scm | 0 crates/zed/src/languages/jsx/highlights.scm | 219 ------------------ crates/zed/src/languages/jsx/indents.scm | 15 -- crates/zed/src/languages/jsx/outline.scm | 55 ----- crates/zed/src/main.rs | 7 - 9 files changed, 1 insertion(+), 319 deletions(-) delete mode 100644 crates/zed/src/languages/jsx/brackets.scm delete mode 100644 crates/zed/src/languages/jsx/config.toml delete mode 100644 crates/zed/src/languages/jsx/highlights-jsx.scm delete mode 100644 crates/zed/src/languages/jsx/highlights.scm delete mode 100644 crates/zed/src/languages/jsx/indents.scm delete mode 100644 crates/zed/src/languages/jsx/outline.scm diff --git a/crates/zed/src/languages.rs b/crates/zed/src/languages.rs index b62ae1bfdbb54300eca966f1827664d7c4690dd5..ac13c818159506ba8e21f783851e7dca46da5d13 100644 --- a/crates/zed/src/languages.rs +++ b/crates/zed/src/languages.rs @@ -42,11 +42,6 @@ pub fn build_language_registry(login_shell_env_loaded: Task<()>) -> LanguageRegi tree_sitter_typescript::language_tsx(), Some(Arc::new(typescript::TypeScriptLspAdapter)), ), - ( - "jsx", - tree_sitter_typescript::language_tsx(), - Some(Arc::new(typescript::TypeScriptLspAdapter)), - ), ( "typescript", tree_sitter_typescript::language_typescript(), diff --git a/crates/zed/src/languages/javascript/config.toml b/crates/zed/src/languages/javascript/config.toml index 875dcdaf8e585908bbf9b05b64f43dcc2ee25b91..3688da705c9f6a57edb241ae55d678d4f51500f8 100644 --- a/crates/zed/src/languages/javascript/config.toml +++ b/crates/zed/src/languages/javascript/config.toml @@ -1,5 +1,5 @@ name = "JavaScript" -path_suffixes = ["js"] +path_suffixes = ["js", "jsx"] line_comment = "// " autoclose_before = ";:.,=}])>" brackets = [ diff --git a/crates/zed/src/languages/jsx/brackets.scm b/crates/zed/src/languages/jsx/brackets.scm deleted file mode 100644 index 63395f81d84e6452c631a9e582e2d697cba445ef..0000000000000000000000000000000000000000 --- a/crates/zed/src/languages/jsx/brackets.scm +++ /dev/null @@ -1,5 +0,0 @@ -("(" @open ")" @close) -("[" @open "]" @close) -("{" @open "}" @close) -("<" @open ">" @close) -("\"" @open "\"" @close) diff --git a/crates/zed/src/languages/jsx/config.toml b/crates/zed/src/languages/jsx/config.toml deleted file mode 100644 index 3e4dc5f79f300de8ec2883f6d012b64e0c989dc4..0000000000000000000000000000000000000000 --- a/crates/zed/src/languages/jsx/config.toml +++ /dev/null @@ -1,12 +0,0 @@ -name = "JSX" -path_suffixes = ["jsx"] -line_comment = "// " -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 }, - { start = "\"", end = "\"", close = true, newline = false }, - { start = "/*", end = " */", close = true, newline = false }, -] diff --git a/crates/zed/src/languages/jsx/highlights-jsx.scm b/crates/zed/src/languages/jsx/highlights-jsx.scm deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/crates/zed/src/languages/jsx/highlights.scm b/crates/zed/src/languages/jsx/highlights.scm deleted file mode 100644 index cb4e82b33d8b04da41e90c6926499669fee33b60..0000000000000000000000000000000000000000 --- a/crates/zed/src/languages/jsx/highlights.scm +++ /dev/null @@ -1,219 +0,0 @@ -; Variables - -(identifier) @variable - -; Properties - -(property_identifier) @property - -; Function and method calls - -(call_expression - function: (identifier) @function) - -(call_expression - function: (member_expression - property: (property_identifier) @function.method)) - -; Function and method definitions - -(function - name: (identifier) @function) -(function_declaration - name: (identifier) @function) -(method_definition - name: (property_identifier) @function.method) - -(pair - key: (property_identifier) @function.method - value: [(function) (arrow_function)]) - -(assignment_expression - left: (member_expression - property: (property_identifier) @function.method) - right: [(function) (arrow_function)]) - -(variable_declarator - name: (identifier) @function - value: [(function) (arrow_function)]) - -(assignment_expression - left: (identifier) @function - right: [(function) (arrow_function)]) - -; Special identifiers - -((identifier) @constructor - (#match? @constructor "^[A-Z]")) - -([ - (identifier) - (shorthand_property_identifier) - (shorthand_property_identifier_pattern) - ] @constant - (#match? @constant "^[A-Z_][A-Z\\d_]+$")) - -; Literals - -(this) @variable.builtin -(super) @variable.builtin - -[ - (true) - (false) - (null) - (undefined) -] @constant.builtin - -(comment) @comment - -[ - (string) - (template_string) -] @string - -(regex) @string.special -(number) @number - -; Tokens - -(template_substitution - "${" @punctuation.special - "}" @punctuation.special) @embedded - -[ - ";" - "?." - "." - "," -] @punctuation.delimiter - -[ - "-" - "--" - "-=" - "+" - "++" - "+=" - "*" - "*=" - "**" - "**=" - "/" - "/=" - "%" - "%=" - "<" - "<=" - "<<" - "<<=" - "=" - "==" - "===" - "!" - "!=" - "!==" - "=>" - ">" - ">=" - ">>" - ">>=" - ">>>" - ">>>=" - "~" - "^" - "&" - "|" - "^=" - "&=" - "|=" - "&&" - "||" - "??" - "&&=" - "||=" - "??=" -] @operator - -[ - "(" - ")" - "[" - "]" - "{" - "}" -] @punctuation.bracket - -[ - "as" - "async" - "await" - "break" - "case" - "catch" - "class" - "const" - "continue" - "debugger" - "default" - "delete" - "do" - "else" - "export" - "extends" - "finally" - "for" - "from" - "function" - "get" - "if" - "import" - "in" - "instanceof" - "let" - "new" - "of" - "return" - "set" - "static" - "switch" - "target" - "throw" - "try" - "typeof" - "var" - "void" - "while" - "with" - "yield" -] @keyword - -; Types - -(type_identifier) @type -(predefined_type) @type.builtin - -((identifier) @type - (#match? @type "^[A-Z]")) - -(type_arguments - "<" @punctuation.bracket - ">" @punctuation.bracket) - -; Keywords - -[ "abstract" - "declare" - "enum" - "export" - "implements" - "interface" - "keyof" - "namespace" - "private" - "protected" - "public" - "type" - "readonly" - "override" -] @keyword \ No newline at end of file diff --git a/crates/zed/src/languages/jsx/indents.scm b/crates/zed/src/languages/jsx/indents.scm deleted file mode 100644 index 107e6ff8e03b633f408676243c24d0d9707a2a26..0000000000000000000000000000000000000000 --- a/crates/zed/src/languages/jsx/indents.scm +++ /dev/null @@ -1,15 +0,0 @@ -[ - (call_expression) - (assignment_expression) - (member_expression) - (lexical_declaration) - (variable_declaration) - (assignment_expression) - (if_statement) - (for_statement) -] @indent - -(_ "[" "]" @end) @indent -(_ "<" ">" @end) @indent -(_ "{" "}" @end) @indent -(_ "(" ")" @end) @indent diff --git a/crates/zed/src/languages/jsx/outline.scm b/crates/zed/src/languages/jsx/outline.scm deleted file mode 100644 index f8691fa41d9f64bc71e8a7ada2e6d64d62268a3a..0000000000000000000000000000000000000000 --- a/crates/zed/src/languages/jsx/outline.scm +++ /dev/null @@ -1,55 +0,0 @@ -(internal_module - "namespace" @context - name: (_) @name) @item - -(enum_declaration - "enum" @context - name: (_) @name) @item - -(function_declaration - "async"? @context - "function" @context - name: (_) @name - parameters: (formal_parameters - "(" @context - ")" @context)) @item - -(interface_declaration - "interface" @context - name: (_) @name) @item - -(program - (lexical_declaration - ["let" "const"] @context - (variable_declarator - name: (_) @name) @item)) - -(class_declaration - "class" @context - name: (_) @name) @item - -(method_definition - [ - "get" - "set" - "async" - "*" - "readonly" - "static" - (override_modifier) - (accessibility_modifier) - ]* @context - name: (_) @name - parameters: (formal_parameters - "(" @context - ")" @context)) @item - -(public_field_definition - [ - "declare" - "readonly" - "abstract" - "static" - (accessibility_modifier) - ]* @context - name: (_) @name) @item diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 599754dd9e0abfb63eec8c2ba04ccb4587713f83..41e27eb49425513fc9377642b4af7a4f60eb31dd 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -62,13 +62,6 @@ fn main() { ..Default::default() }, ) - .with_overrides( - "JSX", - settings::LanguageOverride { - tab_size: Some(2), - ..Default::default() - }, - ) .with_overrides( "TypeScript", settings::LanguageOverride { From 26f2aa4d69d5396b2d119b6b3f5e4f72b709d947 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Mon, 18 Apr 2022 15:26:57 -0700 Subject: [PATCH 3/3] Swap to parsing javascript as jsx --- crates/zed/src/languages.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/zed/src/languages.rs b/crates/zed/src/languages.rs index ac13c818159506ba8e21f783851e7dca46da5d13..e90a1cd7370946c975f166ac887d63c31324c72b 100644 --- a/crates/zed/src/languages.rs +++ b/crates/zed/src/languages.rs @@ -49,7 +49,7 @@ pub fn build_language_registry(login_shell_env_loaded: Task<()>) -> LanguageRegi ), ( "javascript", - tree_sitter_typescript::language_typescript(), + tree_sitter_typescript::language_tsx(), Some(Arc::new(typescript::TypeScriptLspAdapter)), ), ] {