Skip to content

Commit 989d82f

Browse files
Merge branch 'CodeEditApp:main' into line-numbers
2 parents 461b250 + 832505b commit 989d82f

4 files changed

Lines changed: 19 additions & 2 deletions

File tree

Package.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ let package = Package(
3232
.package(url: "https://github.com/tree-sitter/tree-sitter-rust.git", branch: "master"),
3333
.package(url: "https://github.com/alex-pinkus/tree-sitter-swift", branch: "with-generated-files"),
3434
.package(url: "https://github.com/mattmassicotte/tree-sitter-yaml.git", branch: "feature/spm"),
35+
.package(url: "https://github.com/maxxnino/tree-sitter-zig.git", branch: "main"),
3536
],
3637
targets: [
3738
.target(
@@ -56,6 +57,7 @@ let package = Package(
5657
.product(name: "TreeSitterRust", package: "tree-sitter-rust"),
5758
.product(name: "TreeSitterSwift", package: "tree-sitter-swift"),
5859
.product(name: "TreeSitterYAML", package: "tree-sitter-yaml"),
60+
.product(name: "TreeSitterZig", package: "tree-sitter-zig"),
5961
]),
6062
.testTarget(
6163
name: "CodeEditTextViewTests",

Sources/CodeEditTextView/CodeLanguage/CodeLanguage.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import TreeSitterRuby
2626
import TreeSitterRust
2727
import TreeSitterSwift
2828
import TreeSitterYAML
29+
import TreeSitterZig
2930

3031
/// A structure holding metadata for code languages
3132
public struct CodeLanguage {
@@ -117,6 +118,8 @@ public struct CodeLanguage {
117118
return tree_sitter_swift()
118119
case .yaml:
119120
return tree_sitter_yaml()
121+
case .zig:
122+
return tree_sitter_zig()
120123
case .plainText:
121124
return nil
122125
}
@@ -161,7 +164,8 @@ public extension CodeLanguage {
161164
.ruby,
162165
.rust,
163166
.swift,
164-
.yaml
167+
.yaml,
168+
.zig
165169
]
166170

167171
/// A language structure for `Bash`
@@ -221,6 +225,9 @@ public extension CodeLanguage {
221225
/// A language structure for `YAML`
222226
static let yaml: CodeLanguage = .init(id: .yaml, tsName: "YAML", extensions: ["yml", "yaml"])
223227

228+
/// A language structure for `Zig`
229+
static let zig: CodeLanguage = .init(id: .zig, tsName: "Zig", extensions: ["zig"])
230+
224231
/// The default language (plain text)
225232
static let `default`: CodeLanguage = .init(id: .plainText, tsName: "Plain Text", extensions: ["txt"])
226233
}

Sources/CodeEditTextView/CodeLanguage/TreeSitterLanguage.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@ public enum TreeSitterLanguage: String {
2727
case rust
2828
case swift
2929
case yaml
30+
case zig
3031
case plainText
3132
}

Sources/CodeEditTextView/CodeLanguage/TreeSitterModel.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class TreeSitterModel {
1717
/// Get a query for a specific language
1818
/// - Parameter language: The language to request the query for.
1919
/// - Returns: A Query if available. Returns `nil` for not implemented languages
20-
// swiftlint:disable:next cyclomatic_complexity
20+
// swiftlint:disable:next cyclomatic_complexity function_body_length
2121
public func query(for language: TreeSitterLanguage) -> Query? {
2222
switch language {
2323
case .bash:
@@ -56,6 +56,8 @@ public class TreeSitterModel {
5656
return swiftQuery
5757
case .yaml:
5858
return yamlQuery
59+
case .zig:
60+
return zigQuery
5961
case .plainText:
6062
return nil
6163
}
@@ -151,6 +153,11 @@ public class TreeSitterModel {
151153
return queryFor(.yaml)
152154
}()
153155

156+
/// Query for `Zig` files.
157+
public private(set) lazy var zigQuery: Query? = {
158+
return queryFor(.zig)
159+
}()
160+
154161
private func queryFor(_ codeLanguage: CodeLanguage) -> Query? {
155162
guard let language = codeLanguage.language,
156163
let url = codeLanguage.queryURL else { return nil }

0 commit comments

Comments
 (0)