From dd231edbd8a2805aaf0728fb5800a356ed1d14ce Mon Sep 17 00:00:00 2001 From: Miodrag Milenkovic Date: Thu, 28 Feb 2019 12:54:25 -0500 Subject: Avoid signaling "Beginning of buffer" in rust-lookng-back-macro Also save some work if we don't have at least two characters behind us in the buffer, we know we can't be looking at a macro then. The signal occurs when one tries 'racer-describe' when positioned over "String", which eventually ends up calling (with-temp-buffer (insert "") (delay-mode-hooks (rust-mode)) (font-lock-ensure)) This simpler block will also trigger the error (with-temp-buffer (insert "<>") (rust-mode) (font-lock-ensure)) (font-lock-ensure) call ends up calling (rust-looking-back-macro). --- rust-mode.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'rust-mode.el') diff --git a/rust-mode.el b/rust-mode.el index a433d8d..c3d132a 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -80,7 +80,8 @@ Like `looking-back' but for fixed strings rather than regexps (so that it's not (defun rust-looking-back-macro () "Non-nil if looking back at an ident followed by a !" - (save-excursion (backward-char) (and (= ?! (char-after)) (rust-looking-back-ident)))) + (if (> (point) 2) + (save-excursion (backward-char) (and (= ?! (char-after)) (rust-looking-back-ident))))) ;; Syntax definitions and helpers (defvar rust-mode-syntax-table @@ -1594,7 +1595,7 @@ This is written mainly to be used as `end-of-defun-function' for Rust." (when rust-format-on-save (unless (executable-find rust-rustfmt-bin) (error "Could not locate executable \"%s\"" rust-rustfmt-bin)))) - + (defvar rustc-compilation-regexps (let ((file "\\([^\n]+\\)") (start-line "\\([0-9]+\\)") -- cgit v1.2.3 From e2e713eaafde203a1767048400058d3b7fe5d41a Mon Sep 17 00:00:00 2001 From: Miodrag Milenkovic Date: Thu, 28 Feb 2019 20:09:59 -0500 Subject: refer to (point-min) instead of 1 --- rust-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rust-mode.el') diff --git a/rust-mode.el b/rust-mode.el index c3d132a..bc181ad 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -80,7 +80,7 @@ Like `looking-back' but for fixed strings rather than regexps (so that it's not (defun rust-looking-back-macro () "Non-nil if looking back at an ident followed by a !" - (if (> (point) 2) + (if (> (- (point) (point-min)) 1) (save-excursion (backward-char) (and (= ?! (char-after)) (rust-looking-back-ident))))) ;; Syntax definitions and helpers -- cgit v1.2.3