Skip to content

Commit 7fc4fa6

Browse files
authored
Add Agda, Julia, Perl, and Verilog Grammars (#50)
* Add Agda Grammar * Add Julia Grammar * Add Perl Grammar * Add Verilog Grammar * Use correct link for JSON Tree Sitter in README * Remove duplicate Julia entry in README * Remove duplicate JSON entry in README
1 parent 4111ff1 commit 7fc4fa6

File tree

11 files changed

+216
-5
lines changed

11 files changed

+216
-5
lines changed

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

+69
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
8ED0560A2A4DBE6E00829B80 /* TreeSitterTypeScript in Frameworks */ = {isa = PBXBuildFile; productRef = 8ED056092A4DBE6E00829B80 /* TreeSitterTypeScript */; };
4040
8EFA0B742A559F4C00021CE9 /* TreeSitterSQL in Frameworks */ = {isa = PBXBuildFile; productRef = 8EFA0B732A559F4C00021CE9 /* TreeSitterSQL */; };
4141
9D6E74512A2B9B2A0070701E /* TreeSitterOCaml in Frameworks */ = {isa = PBXBuildFile; productRef = 9D6E74502A2B9B2A0070701E /* TreeSitterOCaml */; };
42+
9D7399242A5A245000CEF6E8 /* TreeSitterAgda in Frameworks */ = {isa = PBXBuildFile; productRef = 9D7399232A5A245000CEF6E8 /* TreeSitterAgda */; };
43+
9D7399272A5A2B5300CEF6E8 /* TreeSitterJulia in Frameworks */ = {isa = PBXBuildFile; productRef = 9D7399262A5A2B5300CEF6E8 /* TreeSitterJulia */; };
44+
9D73992A2A5A30A400CEF6E8 /* TreeSitterPerl in Frameworks */ = {isa = PBXBuildFile; productRef = 9D7399292A5A30A400CEF6E8 /* TreeSitterPerl */; };
45+
9D73992D2A5A34BF00CEF6E8 /* TreeSitterVerilog in Frameworks */ = {isa = PBXBuildFile; productRef = 9D73992C2A5A34BF00CEF6E8 /* TreeSitterVerilog */; };
4246
9DB1B4362A2C0DAA0027B04E /* TreeSitterJSDoc in Frameworks */ = {isa = PBXBuildFile; productRef = 9DB1B4352A2C0DAA0027B04E /* TreeSitterJSDoc */; };
4347
9DFDC3662A02D9BE0023B3BC /* TreeSitterMarkdown in Frameworks */ = {isa = PBXBuildFile; productRef = 9DFDC3652A02D9BE0023B3BC /* TreeSitterMarkdown */; };
4448
/* End PBXBuildFile section */
@@ -62,7 +66,9 @@
6266
8E87F9542A4B7DC1008C7E13 /* TreeSitterScala in Frameworks */,
6367
9DB1B4362A2C0DAA0027B04E /* TreeSitterJSDoc in Frameworks */,
6468
2846B262296BA1CF005F60B6 /* TreeSitterDockerfile in Frameworks */,
69+
9D73992A2A5A30A400CEF6E8 /* TreeSitterPerl in Frameworks */,
6570
9D6E74512A2B9B2A0070701E /* TreeSitterOCaml in Frameworks */,
71+
9D73992D2A5A34BF00CEF6E8 /* TreeSitterVerilog in Frameworks */,
6672
8EFA0B742A559F4C00021CE9 /* TreeSitterSQL in Frameworks */,
6773
28B3F039290C362C000CD04D /* TreeSitterElixir in Frameworks */,
6874
28B3F02D290C35D9000CD04D /* TreeSitterC in Frameworks */,
@@ -76,6 +82,7 @@
7682
28B3F033290C3608000CD04D /* TreeSitterCSharp in Frameworks */,
7783
28B3F03F290C364D000CD04D /* TreeSitterGoMod in Frameworks */,
7884
28B3F063290C372D000CD04D /* TreeSitterZig in Frameworks */,
85+
9D7399272A5A2B5300CEF6E8 /* TreeSitterJulia in Frameworks */,
7986
8E74B41D2A4C88ED003A9550 /* TreeSitterHTML in Frameworks */,
8087
8ED0560A2A4DBE6E00829B80 /* TreeSitterTypeScript in Frameworks */,
8188
28B3F05A290C36E5000CD04D /* TreeSitterRust in Frameworks */,
@@ -84,6 +91,8 @@
8491
28B3F048290C367C000CD04D /* TreeSitterJava in Frameworks */,
8592
6CEC70FE29C3A85000B61C7A /* TreeSitterRegex in Frameworks */,
8693
282E5977298051980064B34A /* TreeSitterYAML in Frameworks */,
94+
6CA62EA929F9D36700785B11 /* TreeSitterTS in Frameworks */,
95+
9D7399242A5A245000CEF6E8 /* TreeSitterAgda in Frameworks */,
8796
8E7B8ABD2A5D916F00CFC1A7 /* TreeSitterPython in Frameworks */,
8897
2886C788298135540023E016 /* TreeSitterKotlin in Frameworks */,
8998
28B3F057290C36D5000CD04D /* TreeSitterRuby in Frameworks */,
@@ -190,6 +199,10 @@
190199
9DFDC3652A02D9BE0023B3BC /* TreeSitterMarkdown */,
191200
9D6E74502A2B9B2A0070701E /* TreeSitterOCaml */,
192201
9DB1B4352A2C0DAA0027B04E /* TreeSitterJSDoc */,
202+
9D7399232A5A245000CEF6E8 /* TreeSitterAgda */,
203+
9D7399262A5A2B5300CEF6E8 /* TreeSitterJulia */,
204+
9D7399292A5A30A400CEF6E8 /* TreeSitterPerl */,
205+
9D73992C2A5A34BF00CEF6E8 /* TreeSitterVerilog */,
193206
8E87F9532A4B7DC1008C7E13 /* TreeSitterScala */,
194207
8E74B41C2A4C88ED003A9550 /* TreeSitterHTML */,
195208
8ED056092A4DBE6E00829B80 /* TreeSitterTypeScript */,
@@ -253,6 +266,10 @@
253266
9DFDC3642A02D9BE0023B3BC /* XCRemoteSwiftPackageReference "tree-sitter-markdown" */,
254267
9D6E744F2A2B9B2A0070701E /* XCRemoteSwiftPackageReference "tree-sitter-ocaml" */,
255268
9DB1B4342A2C0DA90027B04E /* XCRemoteSwiftPackageReference "tree-sitter-jsdoc" */,
269+
9D7399222A5A245000CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-agda" */,
270+
9D7399252A5A2B5200CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-julia" */,
271+
9D7399282A5A30A400CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-perl" */,
272+
9D73992B2A5A34BF00CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-verilog" */,
256273
8E87F9522A4B7DC1008C7E13 /* XCRemoteSwiftPackageReference "tree-sitter-scala" */,
257274
8E74B41B2A4C88ED003A9550 /* XCRemoteSwiftPackageReference "tree-sitter-html" */,
258275
8ED056082A4DBE6E00829B80 /* XCRemoteSwiftPackageReference "tree-sitter-typescript" */,
@@ -756,6 +773,38 @@
756773
kind = branch;
757774
};
758775
};
776+
9D7399222A5A245000CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-agda" */ = {
777+
isa = XCRemoteSwiftPackageReference;
778+
repositoryURL = "https://github.com/cengelbart39/tree-sitter-agda.git";
779+
requirement = {
780+
branch = feat/spm;
781+
kind = branch;
782+
};
783+
};
784+
9D7399252A5A2B5200CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-julia" */ = {
785+
isa = XCRemoteSwiftPackageReference;
786+
repositoryURL = "https://github.com/tree-sitter/tree-sitter-julia.git";
787+
requirement = {
788+
branch = master;
789+
kind = branch;
790+
};
791+
};
792+
9D7399282A5A30A400CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-perl" */ = {
793+
isa = XCRemoteSwiftPackageReference;
794+
repositoryURL = "https://github.com/ganezdragon/tree-sitter-perl.git";
795+
requirement = {
796+
branch = master;
797+
kind = branch;
798+
};
799+
};
800+
9D73992B2A5A34BF00CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-verilog" */ = {
801+
isa = XCRemoteSwiftPackageReference;
802+
repositoryURL = "https://github.com/tree-sitter/tree-sitter-verilog.git";
803+
requirement = {
804+
branch = master;
805+
kind = branch;
806+
};
807+
};
759808
9DB1B4342A2C0DA90027B04E /* XCRemoteSwiftPackageReference "tree-sitter-jsdoc" */ = {
760809
isa = XCRemoteSwiftPackageReference;
761810
repositoryURL = "https://github.com/cengelbart39/tree-sitter-jsdoc.git";
@@ -930,6 +979,26 @@
930979
package = 9D6E744F2A2B9B2A0070701E /* XCRemoteSwiftPackageReference "tree-sitter-ocaml" */;
931980
productName = TreeSitterOCaml;
932981
};
982+
9D7399232A5A245000CEF6E8 /* TreeSitterAgda */ = {
983+
isa = XCSwiftPackageProductDependency;
984+
package = 9D7399222A5A245000CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-agda" */;
985+
productName = TreeSitterAgda;
986+
};
987+
9D7399262A5A2B5300CEF6E8 /* TreeSitterJulia */ = {
988+
isa = XCSwiftPackageProductDependency;
989+
package = 9D7399252A5A2B5200CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-julia" */;
990+
productName = TreeSitterJulia;
991+
};
992+
9D7399292A5A30A400CEF6E8 /* TreeSitterPerl */ = {
993+
isa = XCSwiftPackageProductDependency;
994+
package = 9D7399282A5A30A400CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-perl" */;
995+
productName = TreeSitterPerl;
996+
};
997+
9D73992C2A5A34BF00CEF6E8 /* TreeSitterVerilog */ = {
998+
isa = XCSwiftPackageProductDependency;
999+
package = 9D73992B2A5A34BF00CEF6E8 /* XCRemoteSwiftPackageReference "tree-sitter-verilog" */;
1000+
productName = TreeSitterVerilog;
1001+
};
9331002
9DB1B4352A2C0DAA0027B04E /* TreeSitterJSDoc */ = {
9341003
isa = XCSwiftPackageProductDependency;
9351004
package = 9DB1B4342A2C0DA90027B04E /* XCRemoteSwiftPackageReference "tree-sitter-jsdoc" */;

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

+36
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@
99
"version" : "0.7.1"
1010
}
1111
},
12+
{
13+
"identity" : "tree-sitter-agda",
14+
"kind" : "remoteSourceControl",
15+
"location" : "https://github.com/cengelbart39/tree-sitter-agda.git",
16+
"state" : {
17+
"branch" : "feat/spm",
18+
"revision" : "076e015d084867a3f367fce3c23dee09fb666eb2"
19+
}
20+
},
1221
{
1322
"identity" : "tree-sitter-bash",
1423
"kind" : "remoteSourceControl",
@@ -153,6 +162,15 @@
153162
"revision" : "73076754005a460947cafe8e03a8cf5fa4fa2938"
154163
}
155164
},
165+
{
166+
"identity" : "tree-sitter-julia",
167+
"kind" : "remoteSourceControl",
168+
"location" : "https://github.com/tree-sitter/tree-sitter-julia.git",
169+
"state" : {
170+
"branch" : "master",
171+
"revision" : "784364cb9185ef8dc245de4b0b51e3a22503419d"
172+
}
173+
},
156174
{
157175
"identity" : "tree-sitter-kotlin",
158176
"kind" : "remoteSourceControl",
@@ -198,6 +216,15 @@
198216
"revision" : "2da49308381b91e19e5d270ec5117616d0e4b135"
199217
}
200218
},
219+
{
220+
"identity" : "tree-sitter-perl",
221+
"kind" : "remoteSourceControl",
222+
"location" : "https://github.com/ganezdragon/tree-sitter-perl.git",
223+
"state" : {
224+
"branch" : "master",
225+
"revision" : "60aa138f9e1db15becad53070f4d5898b0e8a98c"
226+
}
227+
},
201228
{
202229
"identity" : "tree-sitter-php",
203230
"kind" : "remoteSourceControl",
@@ -288,6 +315,15 @@
288315
"revision" : "3429d8c77d7a83e80032667f0642e6cb19d0c772"
289316
}
290317
},
318+
{
319+
"identity" : "tree-sitter-verilog",
320+
"kind" : "remoteSourceControl",
321+
"location" : "https://github.com/tree-sitter/tree-sitter-verilog.git",
322+
"state" : {
323+
"branch" : "master",
324+
"revision" : "22f9b845c77c52b86b21adaebe689864957f4e31"
325+
}
326+
},
291327
{
292328
"identity" : "tree-sitter-yaml",
293329
"kind" : "remoteSourceControl",

CodeLanguages-Container/CodeLanguages-Container/CodeLanguages_Container.h

+4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ extern "C" {
2222
// A collection of pointers to supported tree-sitter languages
2323
// Add new ones below (please keep an alphabetical order)
2424

25+
extern TSLanguage *tree_sitter_agda();
2526
extern TSLanguage *tree_sitter_bash();
2627
extern TSLanguage *tree_sitter_c();
2728
extern TSLanguage *tree_sitter_cpp();
@@ -38,13 +39,15 @@ extern TSLanguage *tree_sitter_java();
3839
extern TSLanguage *tree_sitter_javascript();
3940
extern TSLanguage *tree_sitter_jsdoc();
4041
extern TSLanguage *tree_sitter_json();
42+
extern TSLanguage *tree_sitter_julia();
4143
extern TSLanguage *tree_sitter_kotlin();
4244
extern TSLanguage *tree_sitter_lua();
4345
extern TSLanguage *tree_sitter_markdown();
4446
extern TSLanguage *tree_sitter_markdown_inline();
4547
extern TSLanguage *tree_sitter_objc();
4648
extern TSLanguage *tree_sitter_ocaml();
4749
extern TSLanguage *tree_sitter_ocaml_interface();
50+
extern TSLanguage *tree_sitter_perl();
4851
extern TSLanguage *tree_sitter_php();
4952
extern TSLanguage *tree_sitter_python();
5053
extern TSLanguage *tree_sitter_regex();
@@ -56,6 +59,7 @@ extern TSLanguage *tree_sitter_swift();
5659
extern TSLanguage *tree_sitter_toml();
5760
extern TSLanguage *tree_sitter_tsx();
5861
extern TSLanguage *tree_sitter_typescript();
62+
extern TSLanguage *tree_sitter_verilog();
5963
extern TSLanguage *tree_sitter_yaml();
6064
extern TSLanguage *tree_sitter_zig();
6165

22.3 MB
Binary file not shown.

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ In order to add support for additional languages we have a complete guide on how
4747
4848
| Grammar | Implemented | Syntax Highlighting |
4949
| -------------- | :---------: | :-----------------: |
50-
| [Agda](https://github.com/tree-sitter/tree-sitter-agda) | | _not available_ |
50+
| [Agda](https://github.com/cengelbart39/tree-sitter-agda/tree/feat/spm) | | _not available_ |
5151
| [Bash](https://github.com/tree-sitter/tree-sitter-bash) |||
5252
| [C](https://github.com/tree-sitter/tree-sitter-c) |||
5353
| [C++](https://github.com/tree-sitter/tree-sitter-cpp) |||
@@ -64,14 +64,14 @@ In order to add support for additional languages we have a complete guide on how
6464
| [JavaScript/JSX](https://github.com/tree-sitter/tree-sitter-javascript) |||
6565
| [JSDoc](https://github.com/cengelbart39/tree-sitter-jsdoc/tree/feature/spm) |||
6666
| [JSON](https://github.com/tree-sitter/tree-sitter-json) |||
67-
| [Julia](https://github.com/tree-sitter/tree-sitter-julia) | | _not available_ |
67+
| [Julia](https://github.com/tree-sitter/tree-sitter-julia) | | _not available_ |
6868
| [Kotlin](https://github.com/lukepistrol/tree-sitter-kotlin/tree/feature/spm-queries) |||
6969
| [Lua](https://github.com/lukepistrol/tree-sitter-lua/tree/feature/spm) |||
7070
| [Markdown](https://github.com/MDeiml/tree-sitter-markdown) |||
7171
| [Objective C](https://github.com/lukepistrol/tree-sitter-objc/tree/feature/spm) |||
7272
| [OCaml](https://github.com/tree-sitter/tree-sitter-ocaml) |||
7373
| Plain Text || _not available_ |
74-
| [Perl](https://github.com/ganezdragon/tree-sitter-perl) | | _not available_ |
74+
| [Perl](https://github.com/ganezdragon/tree-sitter-perl) | | _not available_ |
7575
| [PHP](https://github.com/tree-sitter/tree-sitter-php) |||
7676
| [Python](https://github.com/tree-sitter/tree-sitter-python) |||
7777
| [Regex](https://github.com/tree-sitter/tree-sitter-regex) |||
@@ -82,7 +82,7 @@ In order to add support for additional languages we have a complete guide on how
8282
| [Swift](https://github.com/alex-pinkus/tree-sitter-swift/tree/with-generated-files) |||
8383
| [TOML](https://github.com/cengelbart39/tree-sitter-toml/tree/feature/spm) |||
8484
| [TypeScript/TSX](https://github.com/tree-sitter/tree-sitter-typescript) |||
85-
| [Verilog](https://github.com/tree-sitter/tree-sitter-verilog) | | _not available_ |
85+
| [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) |||
8888

Sources/CodeEditLanguages/CodeLanguage+Definitions.swift

+32
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public extension CodeLanguage {
1111

1212
/// An array of all language structures.
1313
static let allLanguages: [CodeLanguage] = [
14+
.agda,
1415
.bash,
1516
.c,
1617
.cpp,
@@ -28,13 +29,15 @@ public extension CodeLanguage {
2829
.jsdoc,
2930
.json,
3031
.jsx,
32+
.julia,
3133
.kotlin,
3234
.lua,
3335
.markdown,
3436
.markdownInline,
3537
.objc,
3638
.ocaml,
3739
.ocamlInterface,
40+
.perl,
3841
.php,
3942
.python,
4043
.regex,
@@ -46,10 +49,18 @@ public extension CodeLanguage {
4649
.toml,
4750
.tsx,
4851
.typescript,
52+
.verilog,
4953
.yaml,
5054
.zig
5155
]
5256

57+
/// A language structure for `Agda`
58+
static let agda: CodeLanguage = .init(
59+
id: .agda,
60+
tsName: "agda",
61+
extensions: ["agda"]
62+
)
63+
5364
/// A language structure for `Bash`
5465
static let bash: CodeLanguage = .init(
5566
id: .bash,
@@ -176,6 +187,13 @@ public extension CodeLanguage {
176187
highlights: ["highlights-jsx", "injections"]
177188
)
178189

190+
/// A language structure for `Julia`
191+
static let julia: CodeLanguage = .init(
192+
id: .julia,
193+
tsName: "julia",
194+
extensions: ["jl"]
195+
)
196+
179197
/// A language structure for `Kotlin`
180198
static let kotlin: CodeLanguage = .init(
181199
id: .kotlin,
@@ -228,6 +246,13 @@ public extension CodeLanguage {
228246
extensions: ["mli"]
229247
)
230248

249+
/// A language structure for `Perl`
250+
static let perl: CodeLanguage = .init(
251+
id: .perl,
252+
tsName: "perl",
253+
extensions: ["pl", "pm"]
254+
)
255+
231256
/// A language structure for `PHP`
232257
static let php: CodeLanguage = .init(
233258
id: .php,
@@ -310,6 +335,13 @@ public extension CodeLanguage {
310335
parentURL: CodeLanguage.javascript.queryURL
311336
)
312337

338+
/// A language structure for `Verilog`
339+
static let verilog: CodeLanguage = .init(
340+
id: .verilog,
341+
tsName: "verilog",
342+
extensions: ["v"]
343+
)
344+
313345
/// A language structure for `YAML`
314346
static let yaml: CodeLanguage = .init(
315347
id: .yaml,

Sources/CodeEditLanguages/CodeLanguage.swift

+8
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ public struct CodeLanguage {
7272
/// Gets the TSLanguage from `tree-sitter`
7373
private var tsLanguage: UnsafeMutablePointer<TSLanguage>? {
7474
switch id {
75+
case .agda:
76+
return tree_sitter_agda()
7577
case .bash:
7678
return tree_sitter_bash()
7779
case .c:
@@ -106,6 +108,8 @@ public struct CodeLanguage {
106108
return tree_sitter_json()
107109
case .jsx:
108110
return tree_sitter_javascript()
111+
case .julia:
112+
return tree_sitter_julia()
109113
case .kotlin:
110114
return tree_sitter_kotlin()
111115
case .lua:
@@ -120,6 +124,8 @@ public struct CodeLanguage {
120124
return tree_sitter_ocaml()
121125
case .ocamlInterface:
122126
return tree_sitter_ocaml_interface()
127+
case .perl:
128+
return tree_sitter_perl()
123129
case .php:
124130
return tree_sitter_php()
125131
case .python:
@@ -142,6 +148,8 @@ public struct CodeLanguage {
142148
return tree_sitter_tsx()
143149
case .typescript:
144150
return tree_sitter_typescript()
151+
case .verilog:
152+
return tree_sitter_verilog()
145153
case .yaml:
146154
return tree_sitter_yaml()
147155
case .zig:

0 commit comments

Comments
 (0)