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

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

[elpa] externals/fountain-mode 14a898b 1/2: Merge functions into fountai


From: Paul W. Rankin
Subject: [elpa] externals/fountain-mode 14a898b 1/2: Merge functions into fountain-completion-update
Date: Sat, 10 Aug 2019 03:24:21 -0400 (EDT)

branch: externals/fountain-mode
commit 14a898b4a478739f9f9396bd82c7c1a058eac7ef
Author: Paul W. Rankin <address@hidden>
Commit: Paul W. Rankin <address@hidden>

    Merge functions into fountain-completion-update
    
    Merges fountain-completion-update-locations and
    fountain-completion-update-characters
---
 fountain-mode.el | 61 ++++++++++++++++++++------------------------------------
 1 file changed, 22 insertions(+), 39 deletions(-)

diff --git a/fountain-mode.el b/fountain-mode.el
index 13b16e4..04210a1 100644
--- a/fountain-mode.el
+++ b/fountain-mode.el
@@ -1278,43 +1278,6 @@ Each element is a cons (NAME . OCCUR) where NAME is a 
string, and
 OCCUR is an integer representing the character's number of
 occurrences. ")
 
-(defun fountain-completion-update-locations (start end &optional length)
-  "Update `fountain-completion-locations' between START and END."
-  (goto-char end)
-  (if (fountain-match-scene-heading)
-      (forward-line)
-    (fountain-forward-scene 1))
-  (setq end (point))
-  (goto-char start)
-  (fountain-forward-scene 0)
-  (while (< (point) end)
-    (when (fountain-match-scene-heading)
-      (let ((location (match-string-no-properties 4)))
-        (unless (member location fountain-completion-locations)
-          (push location fountain-completion-locations))))
-    (fountain-forward-scene 1)))
-
-(defun fountain-completion-update-characters (start end &optional length)
-  "Update `fountain-completion-characters' in current buffer."
-  (goto-char end)
-  (if (fountain-match-scene-heading)
-      (forward-line)
-    (fountain-forward-scene 1))
-  (setq end (point))
-  (goto-char start)
-  (fountain-forward-scene 0)
-  (while (< (point) end)
-    (when (fountain-match-character)
-      (let* ((character (match-string-no-properties 4))
-             (candidate (assoc-string character 
fountain-completion-characters))
-             (n (cdr candidate)))
-        (if (not n)
-            (push (cons character 1) fountain-completion-characters)
-          (cl-incf (cdr candidate)))))
-    (fountain-forward-character 1))
-  (setq fountain-completion-characters
-        (sort fountain-completion-characters #'(lambda (a b)
-                                                 (< (cdr b) (cdr a))))))
 
 (defun fountain-completion-get-characters ()
   "Return candidates for completing character.
@@ -1405,8 +1368,28 @@ Add to `fountain-mode-hook' to have completion upon 
load."
   (save-excursion
     (save-restriction
       (widen)
-      (fountain-completion-update-locations (point-min) (point-max))
-      (fountain-completion-update-characters (point-min) (point-max))))
+      (goto-char (point-min))
+      (while (< (point) (point-max))
+        (when (fountain-match-scene-heading)
+          (let ((location (match-string-no-properties 4)))
+            (unless (member location fountain-completion-locations)
+              (push location fountain-completion-locations))))
+        (fountain-forward-scene 1))
+      (goto-char (point-min))
+      (while (< (point) (point-max))
+        (when (fountain-match-character)
+          (let ((character (match-string-no-properties 4))
+                candidate lines)
+            (setq candidate (assoc-string character
+                                          fountain-completion-characters)
+                  lines (cdr candidate))
+            (if (null lines)
+                (push (cons character 1) fountain-completion-characters)
+              (cl-incf (cdr candidate)))))
+        (fountain-forward-character 1))
+      (setq fountain-completion-characters
+            (sort fountain-completion-characters
+                  #'(lambda (a b) (< (cdr b) (cdr a)))))))
   (message "Completion candidates updated"))
 
 



reply via email to

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