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

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

[elpa] master dee4c47 07/22: Merge pull request #491 from felipeochoa/fo


From: Dmitry Gutov
Subject: [elpa] master dee4c47 07/22: Merge pull request #491 from felipeochoa/forward-sexp-in-str
Date: Tue, 19 Feb 2019 06:06:45 -0500 (EST)

branch: master
commit dee4c4786135db93e1712003ef3917f54b42e792
Merge: 4de0e2d 6d160d0
Author: Dmitry Gutov <address@hidden>
Commit: GitHub <address@hidden>

    Merge pull request #491 from felipeochoa/forward-sexp-in-str
    
    Use regular forward-sexp when inside strings
---
 js2-mode.el         |  2 ++
 tests/navigation.el | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/js2-mode.el b/js2-mode.el
index c1b4877..085a18d 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -12405,6 +12405,8 @@ move backward across N balanced expressions."
     (let (forward-sexp-function
           node (start (point)) pos lp rp child)
       (cond
+       ((js2-string-node-p (js2-node-at-point))
+        (forward-sexp arg))
        ;; backward-sexp
        ;; could probably make this better for some cases:
        ;;  - if in statement block (e.g. function body), go to parent
diff --git a/tests/navigation.el b/tests/navigation.el
index d7a8314..73737ba 100644
--- a/tests/navigation.el
+++ b/tests/navigation.el
@@ -58,3 +58,35 @@
 
 (ert-deftest js2-jump-to-property-object-property ()
   (js2-navigation-helper "aObject.value = {prop:1};aObject.value.prop" 18))
+
+
+;; forward-sexp
+
+(defun js2-test-forward-sexp (pre-point skipped after-sexp)
+  "Test `js2-mode-forward-sexp'.
+The test buffer's contents are set to the concatenation of
+PRE-POINT, SKIPPED, and AFTER-SEXP.  Point is placed after
+PRE-POINT, and `forward-sexp' is called.  Then point should be
+after SKIPPED."
+  (with-temp-buffer
+    (insert pre-point skipped after-sexp)
+    (js2-mode)
+    (goto-char (1+ (length pre-point)))
+    (forward-sexp)
+    (should (= (point) (+ 1 (length pre-point) (length skipped))))))
+
+(ert-deftest js2-forward-sexp-skip-semi ()
+  "Ensure expr-stmt-nodes' semicolons are skipped over."
+  (js2-test-forward-sexp "" "const s = 123;" ""))
+
+(ert-deftest js2-forward-sexp-inside-string ()
+  "Test forward sexp inside a string."
+  (js2-test-forward-sexp "const s = 'some " "(string contents)" " xyz';"))
+
+(ert-deftest js2-backward-sexp-inside-string ()
+  "Test backward sexp inside a string."
+  (with-temp-buffer
+    (insert "const s = 'some (string contents) ")
+    (save-excursion (insert "xyz';"))
+    (backward-sexp)
+    (should (= (point) 17))))



reply via email to

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