Skip to content

Commit 016b0e8

Browse files
[feat]: Add Typescript & TSX Language Grammars (#37)
1 parent 9ceda95 commit 016b0e8

File tree

14 files changed

+177
-3
lines changed

14 files changed

+177
-3
lines changed

CodeLanguages-Container/CodeLanguages-Container.xcodeproj/project.pbxproj

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
28B3F05D290C3709000CD04D /* TreeSitterSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 28B3F05C290C3709000CD04D /* TreeSitterSwift */; };
3535
28B3F063290C372D000CD04D /* TreeSitterZig in Frameworks */ = {isa = PBXBuildFile; productRef = 28B3F062290C372D000CD04D /* TreeSitterZig */; };
3636
28B9F7AA290DDAC900245748 /* TreeSitterBash in Frameworks */ = {isa = PBXBuildFile; productRef = 28B9F7A9290DDAC900245748 /* TreeSitterBash */; };
37+
6CA62EA929F9D36700785B11 /* TreeSitterTS in Frameworks */ = {isa = PBXBuildFile; productRef = 6CA62EA829F9D36700785B11 /* TreeSitterTS */; };
38+
6CA62EAB29F9D36700785B11 /* TreeSitterTSX in Frameworks */ = {isa = PBXBuildFile; productRef = 6CA62EAA29F9D36700785B11 /* TreeSitterTSX */; };
3739
6CEC70FE29C3A85000B61C7A /* TreeSitterRegex in Frameworks */ = {isa = PBXBuildFile; productRef = 6CEC70FD29C3A85000B61C7A /* TreeSitterRegex */; };
3840
9D6DA3B8298F1A4600E69066 /* TreeSitterOCaml in Frameworks */ = {isa = PBXBuildFile; productRef = 9D6DA3B7298F1A4600E69066 /* TreeSitterOCaml */; };
3941
/* End PBXBuildFile section */
@@ -52,6 +54,7 @@
5254
28B3F051290C36B1000CD04D /* TreeSitterPHP in Frameworks */,
5355
28B3F042290C365C000CD04D /* TreeSitterHaskell in Frameworks */,
5456
285BF67329AAA45B00641989 /* TreeSitterLua in Frameworks */,
57+
6CA62EAB29F9D36700785B11 /* TreeSitterTSX in Frameworks */,
5558
2846B262296BA1CF005F60B6 /* TreeSitterDockerfile in Frameworks */,
5659
282C119329AA32C8004F1EA6 /* TreeSitterSQL in Frameworks */,
5760
28B3F039290C362C000CD04D /* TreeSitterElixir in Frameworks */,
@@ -75,6 +78,7 @@
7578
28B3F048290C367C000CD04D /* TreeSitterJava in Frameworks */,
7679
6CEC70FE29C3A85000B61C7A /* TreeSitterRegex in Frameworks */,
7780
282E5977298051980064B34A /* TreeSitterYAML in Frameworks */,
81+
6CA62EA929F9D36700785B11 /* TreeSitterTS in Frameworks */,
7882
2886C788298135540023E016 /* TreeSitterKotlin in Frameworks */,
7983
28B3F057290C36D5000CD04D /* TreeSitterRuby in Frameworks */,
8084
);
@@ -181,6 +185,8 @@
181185
285BF67229AAA45B00641989 /* TreeSitterLua */,
182186
6CEC70FD29C3A85000B61C7A /* TreeSitterRegex */,
183187
28AAB6AD29CA57D40087654B /* TreeSitterDart */,
188+
6CA62EA829F9D36700785B11 /* TreeSitterTS */,
189+
6CA62EAA29F9D36700785B11 /* TreeSitterTSX */,
184190
);
185191
productName = "CodeLanguages-Container";
186192
productReference = 28B3F00C290C207D000CD04D /* CodeLanguages_Container.framework */;
@@ -239,6 +245,7 @@
239245
285BF67129AAA45B00641989 /* XCRemoteSwiftPackageReference "tree-sitter-lua" */,
240246
6CEC70FC29C3A85000B61C7A /* XCRemoteSwiftPackageReference "tree-sitter-regex" */,
241247
28AAB6AC29CA57D40087654B /* XCRemoteSwiftPackageReference "tree-sitter-dart" */,
248+
6CA62EA729F9D36700785B11 /* XCRemoteSwiftPackageReference "tree-sitter-typescript" */,
242249
);
243250
productRefGroup = 28B3F00D290C207D000CD04D /* Products */;
244251
projectDirPath = "";
@@ -696,6 +703,14 @@
696703
kind = branch;
697704
};
698705
};
706+
6CA62EA729F9D36700785B11 /* XCRemoteSwiftPackageReference "tree-sitter-typescript" */ = {
707+
isa = XCRemoteSwiftPackageReference;
708+
repositoryURL = "https://github.com/thecoolwinter/tree-sitter-typescript";
709+
requirement = {
710+
branch = master;
711+
kind = branch;
712+
};
713+
};
699714
6CEC70FC29C3A85000B61C7A /* XCRemoteSwiftPackageReference "tree-sitter-regex" */ = {
700715
isa = XCRemoteSwiftPackageReference;
701716
repositoryURL = "https://github.com/thecoolwinter/tree-sitter-regex/";
@@ -845,6 +860,16 @@
845860
package = 28B9F7A6290DDAB500245748 /* XCRemoteSwiftPackageReference "tree-sitter-bash" */;
846861
productName = TreeSitterBash;
847862
};
863+
6CA62EA829F9D36700785B11 /* TreeSitterTS */ = {
864+
isa = XCSwiftPackageProductDependency;
865+
package = 6CA62EA729F9D36700785B11 /* XCRemoteSwiftPackageReference "tree-sitter-typescript" */;
866+
productName = TreeSitterTS;
867+
};
868+
6CA62EAA29F9D36700785B11 /* TreeSitterTSX */ = {
869+
isa = XCSwiftPackageProductDependency;
870+
package = 6CA62EA729F9D36700785B11 /* XCRemoteSwiftPackageReference "tree-sitter-typescript" */;
871+
productName = TreeSitterTSX;
872+
};
848873
6CEC70FD29C3A85000B61C7A /* TreeSitterRegex */ = {
849874
isa = XCSwiftPackageProductDependency;
850875
package = 6CEC70FC29C3A85000B61C7A /* XCRemoteSwiftPackageReference "tree-sitter-regex" */;

CodeLanguages-Container/CodeLanguages-Container.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CodeLanguages-Container/CodeLanguages-Container/CodeLanguages_Container.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ extern TSLanguage *tree_sitter_ruby();
4949
extern TSLanguage *tree_sitter_rust();
5050
extern TSLanguage *tree_sitter_sql();
5151
extern TSLanguage *tree_sitter_swift();
52+
extern TSLanguage *tree_sitter_tsx();
53+
extern TSLanguage *tree_sitter_typescript();
5254
extern TSLanguage *tree_sitter_yaml();
5355
extern TSLanguage *tree_sitter_zig();
5456

2.98 MB
Binary file not shown.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ In order to add support for additional languages we have a complete guide on how
8181
| [Sql](https://github.com/lukepistrol/tree-sitter-sql/tree/feature/spm) |||
8282
| [Swift](https://github.com/alex-pinkus/tree-sitter-swift/tree/with-generated-files) |||
8383
| [TOML](https://github.com/ikatyang/tree-sitter-toml) | | |
84-
| [TypeScript/TSX](https://github.com/tree-sitter/tree-sitter-typescript) | | |
84+
| [TypeScript/TSX](https://github.com/tree-sitter/tree-sitter-typescript) | | |
8585
| [Verilog](https://github.com/tree-sitter/tree-sitter-verilog) | | _not available_ |
8686
| [YAML](https://github.com/lukepistrol/tree-sitter-yaml/tree/feature/spm) |||
8787
| [Zig](https://github.com/maxxnino/tree-sitter-zig) |||

Sources/CodeEditLanguages/CodeLanguage+Definitions.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public extension CodeLanguage {
3939
.rust,
4040
.sql,
4141
.swift,
42+
.tsx,
43+
.typescript,
4244
.yaml,
4345
.zig
4446
]
@@ -248,6 +250,22 @@ public extension CodeLanguage {
248250
extensions: ["swift"]
249251
)
250252

253+
/// A language structure for `TSX`
254+
static let tsx: CodeLanguage = .init(
255+
id: .tsx,
256+
tsName: "typescript",
257+
extensions: ["tsx"],
258+
parentURL: CodeLanguage.jsx.queryURL
259+
)
260+
261+
/// A language structure for `Typescript`
262+
static let typescript: CodeLanguage = .init(
263+
id: .typescript,
264+
tsName: "typescript",
265+
extensions: ["ts"],
266+
parentURL: CodeLanguage.javascript.queryURL
267+
)
268+
251269
/// A language structure for `YAML`
252270
static let yaml: CodeLanguage = .init(
253271
id: .yaml,

Sources/CodeEditLanguages/CodeLanguage.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ public struct CodeLanguage {
122122
return tree_sitter_sql()
123123
case .swift:
124124
return tree_sitter_swift()
125+
case .tsx:
126+
return tree_sitter_tsx()
127+
case .typescript:
128+
return tree_sitter_typescript()
125129
case .yaml:
126130
return tree_sitter_yaml()
127131
case .zig:

Sources/CodeEditLanguages/Resources/tree-sitter-bash/highlights.scm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
"function"
2323
"if"
2424
"in"
25+
"select"
26+
"then"
2527
"unset"
28+
"until"
2629
"while"
27-
"then"
2830
] @keyword
2931

3032
(comment) @comment
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
; Types
2+
3+
(type_identifier) @type
4+
(predefined_type) @type.builtin
5+
6+
((identifier) @type
7+
(#match? @type "^[A-Z]"))
8+
9+
(type_arguments
10+
"<" @punctuation.bracket
11+
">" @punctuation.bracket)
12+
13+
; Variables
14+
15+
(required_parameter (identifier) @variable.parameter)
16+
(optional_parameter (identifier) @variable.parameter)
17+
18+
; Keywords
19+
20+
[ "abstract"
21+
"declare"
22+
"enum"
23+
"export"
24+
"implements"
25+
"interface"
26+
"keyof"
27+
"namespace"
28+
"private"
29+
"protected"
30+
"public"
31+
"type"
32+
"readonly"
33+
"override"
34+
"satisfies"
35+
] @keyword
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
(required_parameter (identifier) @local.definition)
2+
(optional_parameter (identifier) @local.definition)

0 commit comments

Comments
 (0)