Skip to content

Commit c1dc7b0

Browse files
committed
added language support for haskell
1 parent f2b8764 commit c1dc7b0

4 files changed

Lines changed: 17 additions & 0 deletions

File tree

Package.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ let package = Package(
2222
.package(url: "https://github.com/lukepistrol/tree-sitter-css.git", branch: "feature/spm"),
2323
.package(url: "https://github.com/tree-sitter/tree-sitter-go.git", branch: "master"),
2424
.package(url: "https://github.com/camdencheek/tree-sitter-go-mod.git", branch: "main"),
25+
.package(url: "https://github.com/tree-sitter/tree-sitter-haskell.git", branch: "master"),
2526
.package(url: "https://github.com/mattmassicotte/tree-sitter-html.git", branch: "feature/spm"),
2627
.package(url: "https://github.com/tree-sitter/tree-sitter-java.git", branch: "master"),
2728
.package(url: "https://github.com/tree-sitter/tree-sitter-javascript.git", branch: "master"),
@@ -47,6 +48,7 @@ let package = Package(
4748
.product(name: "TreeSitterCSS", package: "tree-sitter-css"),
4849
.product(name: "TreeSitterGo", package: "tree-sitter-go"),
4950
.product(name: "TreeSitterGoMod", package: "tree-sitter-go-mod"),
51+
.product(name: "TreeSitterHaskell", package: "tree-sitter-haskell"),
5052
.product(name: "TreeSitterHTML", package: "tree-sitter-html"),
5153
.product(name: "TreeSitterJava", package: "tree-sitter-java"),
5254
.product(name: "TreeSitterJS", package: "tree-sitter-javascript"),

Sources/CodeEditTextView/CodeLanguage/CodeLanguage.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import TreeSitterCSharp
1616
import TreeSitterCSS
1717
import TreeSitterGo
1818
import TreeSitterGoMod
19+
import TreeSitterHaskell
1920
import TreeSitterHTML
2021
import TreeSitterJava
2122
import TreeSitterJS
@@ -96,6 +97,8 @@ public struct CodeLanguage {
9697
return tree_sitter_go()
9798
case .goMod:
9899
return tree_sitter_gomod()
100+
case .haskell:
101+
return tree_sitter_haskell()
99102
case .html:
100103
return tree_sitter_html()
101104
case .java:
@@ -154,6 +157,7 @@ public extension CodeLanguage {
154157
.css,
155158
.go,
156159
.goMod,
160+
.haskell,
157161
.html,
158162
.java,
159163
.javascript,
@@ -192,6 +196,9 @@ public extension CodeLanguage {
192196
/// A language structure for `GoMod`
193197
static let goMod: CodeLanguage = .init(id: .goMod, tsName: "GoMod", extensions: ["mod"])
194198

199+
/// A language structure for `Haskell`
200+
static let haskell: CodeLanguage = .init(id: .haskell, tsName: "Haskell", extensions: ["hs"])
201+
195202
/// A language structure for `HTML`
196203
static let html: CodeLanguage = .init(id: .html, tsName: "HTML", extensions: ["html", "htm"])
197204

Sources/CodeEditTextView/CodeLanguage/TreeSitterLanguage.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public enum TreeSitterLanguage: String {
1616
case css
1717
case go
1818
case goMod
19+
case haskell
1920
case html
2021
case java
2122
case javascript

Sources/CodeEditTextView/CodeLanguage/TreeSitterModel.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ public class TreeSitterModel {
3434
return goQuery
3535
case .goMod:
3636
return goModQuery
37+
case .haskell:
38+
return haskellQuery
3739
case .html:
3840
return htmlQuery
3941
case .java:
@@ -98,6 +100,11 @@ public class TreeSitterModel {
98100
return queryFor(.goMod)
99101
}()
100102

103+
/// Query for `Haskell` files.
104+
public private(set) lazy var haskellQuery: Query? = {
105+
return queryFor(.haskell)
106+
}()
107+
101108
/// Query for `HTML` files.
102109
public private(set) lazy var htmlQuery: Query? = {
103110
return queryFor(.html)

0 commit comments

Comments
 (0)