diff --git a/src/file_type_lsp.zig b/src/file_type_lsp.zig index 5b216187..9064fc3c 100644 --- a/src/file_type_lsp.zig +++ b/src/file_type_lsp.zig @@ -116,7 +116,7 @@ pub const make = .{}; pub const markdown = .{ .language_server = .{ "marksman", "server" }, - .formatter = .{ "prettier", "--parser", "markdown" }, + .formatter = .{ "prettier", "--parser", "markdown", "--prose-wrap", "always", "--print-width", "{{reflow_width}}" }, }; pub const @"markdown-inline" = .{}; diff --git a/src/tui/expansion.zig b/src/tui/expansion.zig index c98ab393..427a78f1 100644 --- a/src/tui/expansion.zig +++ b/src/tui/expansion.zig @@ -9,6 +9,7 @@ /// {{selections*}} - All current selections expanded to multiple quoted arguments /// {{indent_mode}} - The current indent mode ("tabs" or "spaces") /// {{indent_size}} - The current indent size (in columns) +/// {{reflow_width}} - The current reflow width (in columns) /// {{blame_commit}} - The blame commit ID at the line number of the primary cursor pub fn expand(allocator: Allocator, arg: []const u8) Error![]const u8 { var result: std.Io.Writer.Allocating = .init(allocator); @@ -162,6 +163,15 @@ const functions = struct { return stream.toOwnedSlice(); } + /// {{reflow_width}} - The current reflow width (in columns) + pub fn reflow_width(allocator: Allocator) Error![]const u8 { + const mv = tui.mainview() orelse return &.{}; + const ed = mv.get_active_editor() orelse return &.{}; + var stream: std.Io.Writer.Allocating = .init(allocator); + try stream.writer.print("{d}", .{ed.reflow_width orelse tui.config().reflow_width}); + return stream.toOwnedSlice(); + } + /// {{blame_commit}} - The blame commit ID at the line number of the primary cursor pub fn blame_commit(allocator: Allocator) Error![]const u8 { const mv = tui.mainview() orelse return &.{};