Skip to content

Commit

Permalink
Add typescript support & ts/js indentation queries
Browse files Browse the repository at this point in the history
  • Loading branch information
archseer committed Jun 1, 2021
1 parent 8fd8006 commit c2e6b9f
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 0 deletions.
11 changes: 11 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ roots = []

indent = { tab-width = 2, unit = " " }

[[language]]
name = "typescript"
scope = "source.ts"
injection-regex = "^(ts|typescript)$"
file-types = ["ts"]
roots = []
# TODO: highlights-jsx, highlights-params

language-server = { command = "typescript-language-server", args = ["--stdio"] }
indent = { tab-width = 2, unit = " " }

[[language]]
name = "css"
scope = "source.css"
Expand Down
28 changes: 28 additions & 0 deletions runtime/queries/javascript/indents.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
indent = [
"array",
"object",
"arguments",
"formal_parameters",

"statement_block",
"object_pattern",
"class_body",
"named_imports",

"binary_expression",
"return_statement",
"template_substitution",
# (expression_statement (call_expression))
"export_clause",

# typescript
"enum_declaration",
"interface_declaration",
"object_type",
]

outdent = [
"}",
"]",
")"
]
36 changes: 36 additions & 0 deletions runtime/queries/typescript/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
; inherits: javascript

; Types

(type_identifier) @type
(predefined_type) @type.builtin

((identifier) @type
(#match? @type "^[A-Z]"))

(type_arguments
"<" @punctuation.bracket
">" @punctuation.bracket)

; Variables

(required_parameter (identifier) @variable.parameter)
(optional_parameter (identifier) @variable.parameter)

; Keywords

[
"abstract"
"declare"
"enum"
"export"
"implements"
"interface"
"keyof"
"namespace"
"private"
"protected"
"public"
"type"
"readonly"
] @keyword
1 change: 1 addition & 0 deletions runtime/queries/typescript/indents.toml
2 changes: 2 additions & 0 deletions runtime/queries/typescript/locals.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
(required_parameter (identifier) @local.definition)
(optional_parameter (identifier) @local.definition)
23 changes: 23 additions & 0 deletions runtime/queries/typescript/tags.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
(function_signature
name: (identifier) @name) @definition.function

(method_signature
name: (property_identifier) @name) @definition.method

(abstract_method_signature
name: (property_identifier) @name) @definition.method

(abstract_class_declaration
name: (type_identifier) @name) @definition.class

(module
name: (identifier) @name) @definition.module

(interface_declaration
name: (type_identifier) @name) @definition.interface

(type_annotation
(type_identifier) @name) @reference.type

(new_expression
constructor: (identifier) @name) @reference.class

0 comments on commit c2e6b9f

Please sign in to comment.