branch: externals/matlab-mode
commit 7b51492ce95bab783576007b673d6fc07c824642
Author: John Ciolfi <[email protected]>
Commit: John Ciolfi <[email protected]>
matlab-ts-view-parse-errors: show error line content with pointer
---
matlab-ts-mode.el | 20 ++++++++++++++++++--
.../view_parse_errors_simple_expected.txt | 4 ++++
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/matlab-ts-mode.el b/matlab-ts-mode.el
index e938dfabe0..9c4c2bd01e 100644
--- a/matlab-ts-mode.el
+++ b/matlab-ts-mode.el
@@ -3579,13 +3579,29 @@ provided."
(goto-char end-point)
(1+ (current-column)))))
(push (format
- "%s:%d:%d: error: parse error from line %d:%d to line %d:%d
(point %d to %d)\n"
+ "%s:%d:%d: error: parse error from line %d:%d to line %d:%d
(point %d to %d)
+%5d | %s
+ | %s^
+"
buf-name
start-line start-col
start-line start-col
end-line end-col
start-point
- end-point)
+ end-point
+ start-line
+ ;; error line
+ (buffer-substring (save-excursion
+ (goto-char start-point)
+ (line-beginning-position))
+ (save-excursion
+ (goto-char start-point)
+ (line-end-position)))
+ ;; space padding for the pointer (^)
+ (save-excursion
+ (goto-char start-point)
+ (let ((n-spaces (- start-point (line-beginning-position))))
+ (make-string n-spaces ? ))))
result-list)))
(let ((errs (mapconcat #'identity (reverse result-list))))
(if (string= errs "")
diff --git
a/tests/test-matlab-ts-mode-view-parse-errors-files/view_parse_errors_simple_expected.txt
b/tests/test-matlab-ts-mode-view-parse-errors-files/view_parse_errors_simple_expected.txt
index d7a5daba87..0fc36ad30c 100644
---
a/tests/test-matlab-ts-mode-view-parse-errors-files/view_parse_errors_simple_expected.txt
+++
b/tests/test-matlab-ts-mode-view-parse-errors-files/view_parse_errors_simple_expected.txt
@@ -2,4 +2,8 @@ test-matlab-ts-mode-view-parse-errors-action-fun result:
---
Tree-sitter parse errors.
view_parse_errors_simple.m:3:3: error: parse error from line 3:3 to line 3:4
(point 24 to 25)
+ 3 | a = = 2000;
+ | ^
view_parse_errors_simple.m:5:3: error: parse error from line 5:3 to line 5:6
(point 37 to 40)
+ 5 | b = *= 2;
+ | ^