summaryrefslogtreecommitdiff
path: root/src/builtins.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-15 13:13:36 -0300
committerGabriel Schneider <[email protected]>2026-09-15 17:24:42 -0300
commit8ec8924cd577f71953f8e420af1cd60da92f3300 (patch)
treefb28f12321fd263a3dda07e9c82c24477df1f48f /src/builtins.zig
parentffc700d14d61fd5e6ca874a186932300c447c836 (diff)
downloadpardes-8ec8924cd577f71953f8e420af1cd60da92f3300.tar.gz
pardes-8ec8924cd577f71953f8e420af1cd60da92f3300.zip
Add optional tree-sitter declaration context
Diffstat (limited to 'src/builtins.zig')
-rw-r--r--src/builtins.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/builtins.zig b/src/builtins.zig
index c483482a..f4e22308 100644
--- a/src/builtins.zig
+++ b/src/builtins.zig
@@ -312,6 +312,26 @@ pub const FontSel = struct {
}
};
+pub const TreeContext = struct {
+ pub const enabled = pardes.syntax.enabled;
+ pub const takes_arg = true;
+
+ pub fn run(c: Ctx) void {
+ if (comptime !enabled) unreachable;
+ if (!panes.File.supportsContext(c.pane)) return;
+ const file = &c.pane.file.?;
+ const arg = std.mem.trim(u8, c.arg orelse "", " \t\r\n");
+ const on = if (arg.len == 0) !file.tree_context else if (std.mem.eql(u8, arg, "on")) true else if (std.mem.eql(u8, arg, "off")) false else {
+ c.p.reportError(c.id, "TreeContext", error.ExpectedOnOrOff);
+ return;
+ };
+ file.tree_context = on;
+ file.syntax_dirty = true;
+ c.pane.wrap_n = 0;
+ c.pane.context_rows = 0;
+ }
+};
+
pub const PdfFit = struct {
pub const enabled = pardes.pdf_enabled;
pub fn run(c: Ctx) void {