summaryrefslogtreecommitdiff
path: root/src/Row.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Row.zig')
-rw-r--r--src/Row.zig22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/Row.zig b/src/Row.zig
index d1de2aa..b8e1674 100644
--- a/src/Row.zig
+++ b/src/Row.zig
@@ -51,7 +51,7 @@ pub fn appendString(self: *Row, buf: *Buffer, str: []const u8) !void {
51pub fn cleanWhiteSpace(self: *Row, buf: *Buffer) !void { 51pub fn cleanWhiteSpace(self: *Row, buf: *Buffer) !void {
52 const orig_len = self.data.items.len; 52 const orig_len = self.data.items.len;
53 while (self.data.items.len > 0) { 53 while (self.data.items.len > 0) {
54 if (std.ascii.isBlank(self.data.items[self.data.items.len - 1])) { 54 if (std.ascii.isWhitespace(self.data.items[self.data.items.len - 1])) {
55 _ = self.data.pop(); 55 _ = self.data.pop();
56 } else { 56 } else {
57 break; 57 break;
@@ -86,7 +86,7 @@ pub fn deleteChar(self: *Row, buf: *Buffer, at: usize) !void {
86pub fn indentationSize(self: Row) usize { 86pub fn indentationSize(self: Row) usize {
87 var idx: usize = 0; 87 var idx: usize = 0;
88 while (idx < self.data.items.len) : (idx += 1) { 88 while (idx < self.data.items.len) : (idx += 1) {
89 if (!std.ascii.isBlank(self.data.items[idx])) { 89 if (!std.ascii.isWhitespace(self.data.items[idx])) {
90 break; 90 break;
91 } 91 }
92 } 92 }
@@ -105,7 +105,7 @@ pub fn rxToCx(self: Row, config: Config, rx: usize) usize {
105 } 105 }
106 106
107 var cur_rx: usize = 0; 107 var cur_rx: usize = 0;
108 for (self.data.items) |char, cx| { 108 for (self.data.items, 0..) |char, cx| {
109 if (char == '\t') { 109 if (char == '\t') {
110 cur_rx += config.tab_stop - (cur_rx % config.tab_stop); 110 cur_rx += config.tab_stop - (cur_rx % config.tab_stop);
111 } else { 111 } else {
@@ -139,7 +139,7 @@ pub fn update(self: *Row, buf: *Buffer) !void {
139const UpdateSyntaxError = std.mem.Allocator.Error; 139const UpdateSyntaxError = std.mem.Allocator.Error;
140pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void { 140pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
141 try self.hldata.resize(self.rdata.items.len); 141 try self.hldata.resize(self.rdata.items.len);
142 std.mem.set(Highlight, self.hldata.items, .normal); 142 @memset(self.hldata.items, .normal);
143 if (buf.syntax == null) { 143 if (buf.syntax == null) {
144 return; 144 return;
145 } 145 }
@@ -158,7 +158,7 @@ pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
158 std.debug.assert(scs.len != 0); 158 std.debug.assert(scs.len != 0);
159 if (curr_str_quote == null and !in_comment and scs.len + i <= self.rdata.items.len) { 159 if (curr_str_quote == null and !in_comment and scs.len + i <= self.rdata.items.len) {
160 if (std.mem.eql(u8, scs, self.rdata.items[i..(i + scs.len)])) { 160 if (std.mem.eql(u8, scs, self.rdata.items[i..(i + scs.len)])) {
161 std.mem.set(Highlight, self.hldata.items[i..], .comment); 161 @memset(self.hldata.items[i..], .comment);
162 break :main_loop; 162 break :main_loop;
163 } 163 }
164 } 164 }
@@ -172,7 +172,7 @@ pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
172 if (in_comment) { 172 if (in_comment) {
173 self.hldata.items[i] = .comment_ml; 173 self.hldata.items[i] = .comment_ml;
174 if (mce.len + i <= self.rdata.items.len and std.mem.eql(u8, mce, self.rdata.items[i..(i + mce.len)])) { 174 if (mce.len + i <= self.rdata.items.len and std.mem.eql(u8, mce, self.rdata.items[i..(i + mce.len)])) {
175 std.mem.set(Highlight, self.hldata.items[i..(i + mce.len)], .comment_ml); 175 @memset(self.hldata.items[i..(i + mce.len)], .comment_ml);
176 i += mce.len; 176 i += mce.len;
177 in_comment = false; 177 in_comment = false;
178 last_sep = i; 178 last_sep = i;
@@ -181,7 +181,7 @@ pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
181 continue :main_loop; 181 continue :main_loop;
182 } 182 }
183 } else if (mcs.len + i <= self.rdata.items.len and std.mem.eql(u8, mcs, self.rdata.items[i..(i + mcs.len)])) { 183 } else if (mcs.len + i <= self.rdata.items.len and std.mem.eql(u8, mcs, self.rdata.items[i..(i + mcs.len)])) {
184 std.mem.set(Highlight, self.hldata.items[i..(i + mcs.len)], .comment_ml); 184 @memset(self.hldata.items[i..(i + mcs.len)], .comment_ml);
185 i += mcs.len; 185 i += mcs.len;
186 in_comment = true; 186 in_comment = true;
187 continue :main_loop; 187 continue :main_loop;
@@ -218,9 +218,7 @@ pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
218 } 218 }
219 219
220 if (syntax.flags.hl_numbers) { 220 if (syntax.flags.hl_numbers) {
221 if ((std.ascii.isDigit(c) and (last_sep == i or prev_hl == .number)) 221 if ((std.ascii.isDigit(c) and (last_sep == i or prev_hl == .number)) or (c == '.' and prev_hl == .number)) {
222 or (c == '.' and prev_hl == .number)
223 ) {
224 self.hldata.items[i] = .number; 222 self.hldata.items[i] = .number;
225 i += 1; 223 i += 1;
226 continue :main_loop; 224 continue :main_loop;
@@ -230,7 +228,7 @@ pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
230 if (syntax.isSeparator(c)) { 228 if (syntax.isSeparator(c)) {
231 const id = self.rdata.items[last_sep..i]; 229 const id = self.rdata.items[last_sep..i];
232 if (syntax.keyword_classifier(id)) |hl| { 230 if (syntax.keyword_classifier(id)) |hl| {
233 std.mem.set(Highlight, self.hldata.items[last_sep..i], hl); 231 @memset(self.hldata.items[last_sep..i], hl);
234 } 232 }
235 233
236 last_sep = i + 1; 234 last_sep = i + 1;
@@ -242,7 +240,7 @@ pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void {
242 if (!in_comment) { 240 if (!in_comment) {
243 const id = self.rdata.items[last_sep..self.rdata.items.len]; 241 const id = self.rdata.items[last_sep..self.rdata.items.len];
244 if (syntax.keyword_classifier(id)) |hl| { 242 if (syntax.keyword_classifier(id)) |hl| {
245 std.mem.set(Highlight, self.hldata.items[last_sep..self.rdata.items.len], hl); 243 @memset(self.hldata.items[last_sep..self.rdata.items.len], hl);
246 } 244 }
247 } 245 }
248 246