Skip to content

Commit 08cb9dc

Browse files
authored
[feat]: Add Dart Language Grammar (#35)
* add TreeSitterDart, update languages * regenerate framework * add Dart to CodeEditLanguages * update file extensions * remove no longer needed test case
1 parent 38c7647 commit 08cb9dc

File tree

15 files changed

+340
-42
lines changed

15 files changed

+340
-42
lines changed

.swiftpm/xcode/xcshareddata/xcschemes/CodeEditLanguages.xcscheme

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1410"
3+
LastUpgradeVersion = "1430"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"

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

+28-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
2846B262296BA1CF005F60B6 /* TreeSitterDockerfile in Frameworks */ = {isa = PBXBuildFile; productRef = 2846B261296BA1CF005F60B6 /* TreeSitterDockerfile */; };
1414
285BF67329AAA45B00641989 /* TreeSitterLua in Frameworks */ = {isa = PBXBuildFile; productRef = 285BF67229AAA45B00641989 /* TreeSitterLua */; };
1515
2886C788298135540023E016 /* TreeSitterKotlin in Frameworks */ = {isa = PBXBuildFile; productRef = 2886C787298135540023E016 /* TreeSitterKotlin */; };
16+
28AAB6AE29CA57D40087654B /* TreeSitterDart in Frameworks */ = {isa = PBXBuildFile; productRef = 28AAB6AD29CA57D40087654B /* TreeSitterDart */; };
1617
28B3F010290C207D000CD04D /* CodeLanguages_Container.h in Headers */ = {isa = PBXBuildFile; fileRef = 28B3F00F290C207D000CD04D /* CodeLanguages_Container.h */; settings = {ATTRIBUTES = (Public, ); }; };
1718
28B3F02D290C35D9000CD04D /* TreeSitterC in Frameworks */ = {isa = PBXBuildFile; productRef = 28B3F02C290C35D9000CD04D /* TreeSitterC */; };
1819
28B3F030290C35F9000CD04D /* TreeSitterCPP in Frameworks */ = {isa = PBXBuildFile; productRef = 28B3F02F290C35F9000CD04D /* TreeSitterCPP */; };
@@ -68,6 +69,7 @@
6869
28B3F063290C372D000CD04D /* TreeSitterZig in Frameworks */,
6970
28B3F045290C366E000CD04D /* TreeSitterHTML in Frameworks */,
7071
28B3F05A290C36E5000CD04D /* TreeSitterRust in Frameworks */,
72+
28AAB6AE29CA57D40087654B /* TreeSitterDart in Frameworks */,
7173
28B3F054290C36C5000CD04D /* TreeSitterPython in Frameworks */,
7274
28171CB829814CD800523F1C /* TreeSitterObjC in Frameworks */,
7375
28B3F048290C367C000CD04D /* TreeSitterJava in Frameworks */,
@@ -178,6 +180,7 @@
178180
282C119229AA32C8004F1EA6 /* TreeSitterSQL */,
179181
285BF67229AAA45B00641989 /* TreeSitterLua */,
180182
6CEC70FD29C3A85000B61C7A /* TreeSitterRegex */,
183+
28AAB6AD29CA57D40087654B /* TreeSitterDart */,
181184
);
182185
productName = "CodeLanguages-Container";
183186
productReference = 28B3F00C290C207D000CD04D /* CodeLanguages_Container.framework */;
@@ -190,7 +193,7 @@
190193
isa = PBXProject;
191194
attributes = {
192195
BuildIndependentTargetsInParallel = 1;
193-
LastUpgradeCheck = 1410;
196+
LastUpgradeCheck = 1430;
194197
TargetAttributes = {
195198
28B3F00B290C207D000CD04D = {
196199
CreatedOnToolsVersion = 14.1;
@@ -235,6 +238,7 @@
235238
282C119129AA32C8004F1EA6 /* XCRemoteSwiftPackageReference "tree-sitter-sql" */,
236239
285BF67129AAA45B00641989 /* XCRemoteSwiftPackageReference "tree-sitter-lua" */,
237240
6CEC70FC29C3A85000B61C7A /* XCRemoteSwiftPackageReference "tree-sitter-regex" */,
241+
28AAB6AC29CA57D40087654B /* XCRemoteSwiftPackageReference "tree-sitter-dart" */,
238242
);
239243
productRefGroup = 28B3F00D290C207D000CD04D /* Products */;
240244
projectDirPath = "";
@@ -300,6 +304,7 @@
300304
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
301305
COPY_PHASE_STRIP = NO;
302306
CURRENT_PROJECT_VERSION = 1;
307+
DEAD_CODE_STRIPPING = YES;
303308
DEBUG_INFORMATION_FORMAT = dwarf;
304309
ENABLE_STRICT_OBJC_MSGSEND = YES;
305310
ENABLE_TESTABILITY = YES;
@@ -363,6 +368,7 @@
363368
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
364369
COPY_PHASE_STRIP = NO;
365370
CURRENT_PROJECT_VERSION = 1;
371+
DEAD_CODE_STRIPPING = YES;
366372
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
367373
ENABLE_NS_ASSERTIONS = NO;
368374
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -394,11 +400,13 @@
394400
CODE_SIGN_STYLE = Automatic;
395401
COMBINE_HIDPI_IMAGES = YES;
396402
CURRENT_PROJECT_VERSION = 1;
403+
DEAD_CODE_STRIPPING = YES;
397404
DEFINES_MODULE = YES;
398405
DEVELOPMENT_TEAM = "";
399406
DYLIB_COMPATIBILITY_VERSION = 1;
400407
DYLIB_CURRENT_VERSION = 1;
401408
DYLIB_INSTALL_NAME_BASE = "@rpath";
409+
ENABLE_MODULE_VERIFIER = YES;
402410
GENERATE_INFOPLIST_FILE = YES;
403411
INFOPLIST_KEY_NSHumanReadableCopyright = "";
404412
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -409,6 +417,8 @@
409417
);
410418
MACH_O_TYPE = staticlib;
411419
MARKETING_VERSION = 1.0;
420+
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
421+
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++20";
412422
PRODUCT_BUNDLE_IDENTIFIER = "com.lukaspistrol.CodeLanguages-Container";
413423
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
414424
SKIP_INSTALL = YES;
@@ -427,11 +437,13 @@
427437
CODE_SIGN_STYLE = Automatic;
428438
COMBINE_HIDPI_IMAGES = YES;
429439
CURRENT_PROJECT_VERSION = 1;
440+
DEAD_CODE_STRIPPING = YES;
430441
DEFINES_MODULE = YES;
431442
DEVELOPMENT_TEAM = "";
432443
DYLIB_COMPATIBILITY_VERSION = 1;
433444
DYLIB_CURRENT_VERSION = 1;
434445
DYLIB_INSTALL_NAME_BASE = "@rpath";
446+
ENABLE_MODULE_VERIFIER = YES;
435447
GENERATE_INFOPLIST_FILE = YES;
436448
INFOPLIST_KEY_NSHumanReadableCopyright = "";
437449
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -442,6 +454,8 @@
442454
);
443455
MACH_O_TYPE = staticlib;
444456
MARKETING_VERSION = 1.0;
457+
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
458+
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++20";
445459
PRODUCT_BUNDLE_IDENTIFIER = "com.lukaspistrol.CodeLanguages-Container";
446460
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
447461
SKIP_INSTALL = YES;
@@ -522,6 +536,14 @@
522536
kind = branch;
523537
};
524538
};
539+
28AAB6AC29CA57D40087654B /* XCRemoteSwiftPackageReference "tree-sitter-dart" */ = {
540+
isa = XCRemoteSwiftPackageReference;
541+
repositoryURL = "https://github.com/lukepistrol/tree-sitter-dart.git";
542+
requirement = {
543+
branch = feature/spm;
544+
kind = branch;
545+
};
546+
};
525547
28B3F02B290C35D9000CD04D /* XCRemoteSwiftPackageReference "tree-sitter-c" */ = {
526548
isa = XCRemoteSwiftPackageReference;
527549
repositoryURL = "https://github.com/tree-sitter/tree-sitter-c.git";
@@ -723,6 +745,11 @@
723745
package = 2886C786298135540023E016 /* XCRemoteSwiftPackageReference "tree-sitter-kotlin" */;
724746
productName = TreeSitterKotlin;
725747
};
748+
28AAB6AD29CA57D40087654B /* TreeSitterDart */ = {
749+
isa = XCSwiftPackageProductDependency;
750+
package = 28AAB6AC29CA57D40087654B /* XCRemoteSwiftPackageReference "tree-sitter-dart" */;
751+
productName = TreeSitterDart;
752+
};
726753
28B3F02C290C35D9000CD04D /* TreeSitterC */ = {
727754
isa = XCSwiftPackageProductDependency;
728755
package = 28B3F02B290C35D9000CD04D /* XCRemoteSwiftPackageReference "tree-sitter-c" */;

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

+19-10
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"location" : "https://github.com/tree-sitter/tree-sitter-bash.git",
1616
"state" : {
1717
"branch" : "master",
18-
"revision" : "7f9506c34ab6a0f4e3e052b7a49cbeef91f71236"
18+
"revision" : "b338fa9f4807b9e0336cd4dde04948a8c324a4cf"
1919
}
2020
},
2121
{
@@ -33,7 +33,7 @@
3333
"location" : "https://github.com/tree-sitter/tree-sitter-c-sharp.git",
3434
"state" : {
3535
"branch" : "master",
36-
"revision" : "3a5de1b38136add719c2e4dfba64359619745ae6"
36+
"revision" : "fcacbeb4af6bcdcfb4527978a997bb03f4fe086d"
3737
}
3838
},
3939
{
@@ -42,7 +42,7 @@
4242
"location" : "https://github.com/tree-sitter/tree-sitter-cpp.git",
4343
"state" : {
4444
"branch" : "master",
45-
"revision" : "66262d3e76eb2046c76e6d661a6b72664bfb5819"
45+
"revision" : "03fa93db133d6048a77d4de154a7b17ea8b9d076"
4646
}
4747
},
4848
{
@@ -54,6 +54,15 @@
5454
"revision" : "10d5f9247b180f0eaf92bbb4300a07d0549718f6"
5555
}
5656
},
57+
{
58+
"identity" : "tree-sitter-dart",
59+
"kind" : "remoteSourceControl",
60+
"location" : "https://github.com/lukepistrol/tree-sitter-dart.git",
61+
"state" : {
62+
"branch" : "feature/spm",
63+
"revision" : "38d41b085dfbea84e940ef756a69485c71e403d0"
64+
}
65+
},
5766
{
5867
"identity" : "tree-sitter-dockerfile",
5968
"kind" : "remoteSourceControl",
@@ -69,7 +78,7 @@
6978
"location" : "https://github.com/elixir-lang/tree-sitter-elixir.git",
7079
"state" : {
7180
"branch" : "main",
72-
"revision" : "b20eaa75565243c50be5e35e253d8beb58f45d56"
81+
"revision" : "869dff3ceb8823ca4b17ca33b663667c8e41e8ba"
7382
}
7483
},
7584
{
@@ -96,7 +105,7 @@
96105
"location" : "https://github.com/tree-sitter/tree-sitter-haskell.git",
97106
"state" : {
98107
"branch" : "master",
99-
"revision" : "3bdba07c7a8eec23f87fa59ce9eb2ea4823348b3"
108+
"revision" : "fb3c19e8e307acaf9336ab88330fd386ce731638"
100109
}
101110
},
102111
{
@@ -177,7 +186,7 @@
177186
"location" : "https://github.com/tree-sitter/tree-sitter-php.git",
178187
"state" : {
179188
"branch" : "master",
180-
"revision" : "f860e598194f4a71747f91789bf536b393ad4a56"
189+
"revision" : "1a40581b7a899201d7c2b4684ee34490bc306bd6"
181190
}
182191
},
183192
{
@@ -192,9 +201,9 @@
192201
{
193202
"identity" : "tree-sitter-regex",
194203
"kind" : "remoteSourceControl",
195-
"location" : "https://github.com/thecoolwinter/tree-sitter-regex",
204+
"location" : "https://github.com/thecoolwinter/tree-sitter-regex/",
196205
"state" : {
197-
"branch" : "master",
206+
"branch" : "feature/spm",
198207
"revision" : "bcdbf846fa8cfce0d28971d43199e52c1e365aa7"
199208
}
200209
},
@@ -231,7 +240,7 @@
231240
"location" : "https://github.com/alex-pinkus/tree-sitter-swift.git",
232241
"state" : {
233242
"branch" : "with-generated-files",
234-
"revision" : "b18cec3827e7a5d0223b5c14a70584ff1c7e2c62"
243+
"revision" : "eda05af7ac41adb4eb19c346883c0fa32fe3bdd8"
235244
}
236245
},
237246
{
@@ -249,7 +258,7 @@
249258
"location" : "https://github.com/maxxnino/tree-sitter-zig.git",
250259
"state" : {
251260
"branch" : "main",
252-
"revision" : "6b3f5788f38be900b45f5af5a753bf6a37d614b8"
261+
"revision" : "f3bc9ffe9ca10f52dee01999b5b6ce9a4074b0ac"
253262
}
254263
}
255264
],

CodeLanguages-Container/CodeLanguages-Container/CodeLanguages_Container.h

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ extern TSLanguage *tree_sitter_c();
2727
extern TSLanguage *tree_sitter_cpp();
2828
extern TSLanguage *tree_sitter_c_sharp();
2929
extern TSLanguage *tree_sitter_css();
30+
extern TSLanguage *tree_sitter_dart();
3031
extern TSLanguage *tree_sitter_dockerfile();
3132
extern TSLanguage *tree_sitter_elixir();
3233
extern TSLanguage *tree_sitter_go();
1.41 MB
Binary file not shown.

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ In order to add support for additional languages we have a complete guide on how
5353
| [C++](https://github.com/tree-sitter/tree-sitter-cpp) |||
5454
| [C#](https://github.com/tree-sitter/tree-sitter-c-sharp) |||
5555
| [CSS](https://github.com/lukepistrol/tree-sitter-css) |||
56+
| [Dart](https://github.com/lukepistrol/tree-sitter-dart/tree/feature/spm) |||
5657
| [Dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) |||
5758
| [Elixir](https://github.com/elixir-lang/tree-sitter-elixir) |||
5859
| [ERB, EJS](https://github.com/tree-sitter/tree-sitter-embedded-template) | | |

Sources/CodeEditLanguages/CodeLanguage+Definitions.swift

+12-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public extension CodeLanguage {
1616
.cpp,
1717
.cSharp,
1818
.css,
19+
.dart,
1920
.dockerfile,
2021
.elixir,
2122
.go,
@@ -46,21 +47,21 @@ public extension CodeLanguage {
4647
static let bash: CodeLanguage = .init(
4748
id: .bash,
4849
tsName: "bash",
49-
extensions: ["sh"]
50+
extensions: ["sh", "bash"]
5051
)
5152

5253
/// A language structure for `C`
5354
static let c: CodeLanguage = .init(
5455
id: .c,
5556
tsName: "c",
56-
extensions: ["c", "h", "o"]
57+
extensions: ["c", "h"]
5758
)
5859

5960
/// A language structure for `C++`
6061
static let cpp: CodeLanguage = .init(
6162
id: .cpp,
6263
tsName: "cpp",
63-
extensions: ["cpp", "h", "hpp", "cc"],
64+
extensions: ["cc", "cpp", "hpp", "h"],
6465
parentURL: CodeLanguage.c.queryURL,
6566
highlights: ["injections"]
6667
)
@@ -79,6 +80,13 @@ public extension CodeLanguage {
7980
extensions: ["css"]
8081
)
8182

83+
/// A language structure for `Dart`
84+
static let dart: CodeLanguage = .init(
85+
id: .dart,
86+
tsName: "dart",
87+
extensions: ["dart"]
88+
)
89+
8290
/// A language structure for `Dockerfile`
8391
static let dockerfile: CodeLanguage = .init(
8492
id: .dockerfile,
@@ -172,7 +180,7 @@ public extension CodeLanguage {
172180
static let objc: CodeLanguage = .init(
173181
id: .objc,
174182
tsName: "objc",
175-
extensions: ["m"]
183+
extensions: ["m", "h"]
176184
)
177185

178186
/// A language structure for `OCaml`

Sources/CodeEditLanguages/CodeLanguage.swift

+2
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public struct CodeLanguage {
7676
return tree_sitter_c_sharp()
7777
case .css:
7878
return tree_sitter_css()
79+
case .dart:
80+
return tree_sitter_dart()
7981
case .dockerfile:
8082
return tree_sitter_dockerfile()
8183
case .elixir:

Sources/CodeEditLanguages/Documentation.docc/CodeLanguage.md

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ let language = CodeLanguage.detectLanguageFrom(url: fileURL)
2424
- C++
2525
- C#
2626
- CSS
27+
- Dart
2728
- Dockerfile
2829
- Elixir
2930
- Go
@@ -73,6 +74,7 @@ let language = CodeLanguage.detectLanguageFrom(url: fileURL)
7374
- ``cpp``
7475
- ``cSharp``
7576
- ``css``
77+
- ``dart``
7678
- ``dockerfile``
7779
- ``elixir``
7880
- ``go``

Sources/CodeEditLanguages/Documentation.docc/TreeSitterModel.md

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ let query = TreeSitterModel.shared.swiftQuery
3737
- ``cppQuery``
3838
- ``cSharpQuery``
3939
- ``cssQuery``
40+
- ``dartQuery``
4041
- ``dockerfileQuery``
4142
- ``elixirQuery``
4243
- ``goQuery``

0 commit comments

Comments
 (0)