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

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

[nongnu] elpa/scala-mode e8c8a51 169/217: Couple imenu-related issues (#


From: ELPA Syncer
Subject: [nongnu] elpa/scala-mode e8c8a51 169/217: Couple imenu-related issues (#95)
Date: Sun, 29 Aug 2021 11:31:06 -0400 (EDT)

branch: elpa/scala-mode
commit e8c8a51d55c27d52118d3b3f4aa4817cdc70414f
Author: Igor Shymko <igor.shimko@gmail.com>
Commit: Sam Halliday <sam.halliday@gmail.com>

    Couple imenu-related issues (#95)
    
    * Fix couple imenu related issues
    
    * Lisp nesting exceeds `max-lisp-eval-depth' error in
     `scala-syntax:handle-brace-equals-or-next`
      in SBT build scripts not ending with closing braces.
    * Scan error: "Containing expression ends prematurely"
      in files like:
      ```
      object X {
        object Y
      }
      ```
    
    * Add word boundaries for `scala-syntax:definition-words-re`.
    This prevents case insensitive match like:
    `class X extends Default {}`. Def in Default doesn't match in this case.
    
    * Unreverse the order of nested imenu-index items
---
 scala-mode2-imenu.el  | 13 +++++++------
 scala-mode2-syntax.el | 16 +++++++++-------
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/scala-mode2-imenu.el b/scala-mode2-imenu.el
index 5eec53a..9bc9c77 100644
--- a/scala-mode2-imenu.el
+++ b/scala-mode2-imenu.el
@@ -97,12 +97,13 @@
 
 (defun scala-imenu:nested-members ()
   (let ((start-point (point)))
-    (save-excursion (scala-syntax:end-of-definition)
-                   ;; This gets us inside of the class definition
-                   ;; It seems like there should be a better way
-                   ;; to do this.
-                   (backward-char)
-                   (scala-imenu:get-nested-members start-point))))
+    (save-excursion
+      (scala-syntax:end-of-definition)
+      ;; This gets us inside of the class definition
+      ;; It seems like there should be a better way
+      ;; to do this.
+      (backward-char)
+      (reverse (scala-imenu:get-nested-members start-point)))))
 
 (defvar scala-imenu:nested-definition-types '("class" "object" "trait"))
 
diff --git a/scala-mode2-syntax.el b/scala-mode2-syntax.el
index 80cc8cc..401f529 100644
--- a/scala-mode2-syntax.el
+++ b/scala-mode2-syntax.el
@@ -922,7 +922,7 @@ not. A list must be either enclosed in parentheses or start 
with
 
 (defconst scala-syntax:all-definition-re
   (scala-syntax:build-definition-re
-   (concat "\\(?1:" scala-syntax:definition-words-re "\\)")))
+   (concat "\\(?1:" scala-syntax:definition-words-re "\\)\\b")))
 
 ;; Functions to help with beginning and end of definitions.
 
@@ -968,12 +968,14 @@ val a, b = (1, 2)
       (lambda () (condition-case ex (scala-syntax:forward-sexp-or-next-line) 
('error nil)))))))
 
 (defun scala-syntax:handle-brace-equals-or-next ()
-  (cond ((looking-at "[[:space:]]*{") (forward-sexp))
-       ((looking-at "[[:space:]]*=") (scala-syntax:forward-sexp-or-next-line)
-        (scala-syntax:handle-brace-equals-or-next))
-       ((looking-at scala-syntax:all-definition-re) nil)
-       (t (scala-syntax:forward-sexp-or-next-line)
-          (scala-syntax:handle-brace-equals-or-next))))
+  (cond ((eobp) nil)
+        ((looking-at "[[:space:]]*{") (forward-sexp))
+        ((looking-at "[[:space:]]*=") (scala-syntax:forward-sexp-or-next-line)
+         (scala-syntax:handle-brace-equals-or-next))
+        ((looking-at scala-syntax:all-definition-re) nil)
+        ((looking-at "[[:space:]]*\n[[:space:]]*}") (skip-syntax-forward 
"[[:space:]]*\n[[:space:]]*}"))
+        (t (scala-syntax:forward-sexp-or-next-line)
+           (scala-syntax:handle-brace-equals-or-next))))
 
 (defun scala-syntax:movement-function-until-re (re movement-function)
   (save-excursion



reply via email to

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