diff options
Diffstat (limited to 'src/Row.zig')
| -rw-r--r-- | src/Row.zig | 22 |
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 { | |||
| 51 | pub fn cleanWhiteSpace(self: *Row, buf: *Buffer) !void { | 51 | pub 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 { | |||
| 86 | pub fn indentationSize(self: Row) usize { | 86 | pub 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 { | |||
| 139 | const UpdateSyntaxError = std.mem.Allocator.Error; | 139 | const UpdateSyntaxError = std.mem.Allocator.Error; |
| 140 | pub fn updateSyntax(self: *Row, buf: *Buffer) UpdateSyntaxError!void { | 140 | pub 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 | ||