emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/nix-mode 956280c161 116/500: Refactor nix--antiquote-close


From: ELPA Syncer
Subject: [nongnu] elpa/nix-mode 956280c161 116/500: Refactor nix--antiquote-close
Date: Sat, 29 Jan 2022 08:26:45 -0500 (EST)

branch: elpa/nix-mode
commit 956280c161d2abbb5dac7f9c35c5ca4cbcfd4a78
Author: Leon Isenberg <ljli@users.noreply.github.com>
Commit: Leon Isenberg <ljli@users.noreply.github.com>

    Refactor nix--antiquote-close
---
 nix-mode.el | 60 +++++++++++++++++++++++-------------------------------------
 1 file changed, 23 insertions(+), 37 deletions(-)

diff --git a/nix-mode.el b/nix-mode.el
index 5535a899a1..2d01b9e0c6 100644
--- a/nix-mode.el
+++ b/nix-mode.el
@@ -16,8 +16,6 @@
 
 ;;; Code:
 
-(require 'cl)
-
 ;; Emacs 24.2 compatability
 (unless (fboundp 'setq-local)
   (defmacro setq-local (var val)
@@ -196,45 +194,33 @@
     (unless (nix--get-string-type ps)
       (let ((string-type (nix--open-brace-string-type ps)))
         (when string-type
-          (put-text-property start (+ 2 start)
+          (put-text-property start (1+ start)
                              'nix-string-type string-type)
           (put-text-property start (1+ start)
                              'nix-syntax-antiquote t)
           (let ((ahead (buffer-substring (1+ start) (min (point-max) (+ 5 
start)))))
-            (case string-type
-              (?\" (cond
-                    ((string-match-p "^\\\\\"" ahead)
-                     (put-text-property (1+ start) (+ 2 start)
-                                        'syntax-table (string-to-syntax "|"))
-                     (goto-char (+ 3 start)))
-                    ((string-match-p "^\\\\\\${" ahead)
-                     (put-text-property (1+ start) (+ 2 start)
-                                        'syntax-table (string-to-syntax "|"))
-                     (goto-char (+ 4 start)))
-                    ((string-match-p "^\"" ahead)
-                     (goto-char (+ 2 start)))
-                    (t
-                     (put-text-property (1+ start) (+ 2 start)
-                                        'syntax-table (string-to-syntax "|"))
-                     (goto-char (+ 2 start)))))
-              (?\' (cond
-                    ((string-match-p "^'''" ahead)
-                     (put-text-property (1+ start) (+ 2 start)
-                                        'syntax-table (string-to-syntax "|"))
-                     (goto-char (+ 4 start)))
-                    ((string-match-p "^''\\${" ahead)
-                     (put-text-property (1+ start) (+ 2 start)
-                                        'syntax-table (string-to-syntax "|"))
-                     (goto-char (+ 5 start)))
-                    ((string-match-p "^''\\\\[nrt]" ahead)
-                     (put-text-property (1+ start) (+ 2 start)
-                                        'syntax-table (string-to-syntax "|"))
-                     (goto-char (+ 5 start)))
-                    ((string-match-p "^''" ahead)
-                     (goto-char (+ 3 start)))
-                    (t (put-text-property (1+ start) (+ 2 start)
-                                          'syntax-table (string-to-syntax "|"))
-                       (goto-char (+ 2 start))))))))))))
+            (pcase string-type
+              (`?\" (cond
+                     ((or (string-match "^\\\\\"" ahead)
+                          (string-match "^\\\\\\${" ahead))
+                      (nix--mark-string (1+ start) string-type)
+                      (goto-char (match-end 0)))
+                     ((string-match-p "^\"" ahead)
+                      (goto-char (+ 2 start)))
+                     ((< (1+ start) (point-max))
+                      (nix--mark-string (1+ start) string-type)
+                      (goto-char (+ 2 start)))))
+              (`?\' (cond
+                     ((or (string-match "^'''" ahead)
+                          (string-match "^''\\${" ahead)
+                          (string-match "^''\\\\[nrt]" ahead))
+                      (nix--mark-string (1+ start) string-type)
+                      (goto-char (match-end 0)))
+                     ((string-match-p "^''" ahead)
+                      (goto-char (+ 3 start)))
+                     ((< (1+ start) (point-max))
+                      (nix--mark-string (1+ start) string-type)
+                      (goto-char (+ 2 start))))))))))))
 
 (defun nix-syntax-propertize (start end)
   "Special syntax properties for Nix from START to END."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]