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

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

[elpa] master d608680 20/40: align: Add a room before '*' for arguments


From: Daiki Ueno
Subject: [elpa] master d608680 20/40: align: Add a room before '*' for arguments
Date: Fri, 22 Jan 2016 22:48:42 +0000

branch: master
commit d608680946934ec4a9f1fe73c2b86f84639f802c
Author: Daiki Ueno <address@hidden>
Commit: Daiki Ueno <address@hidden>

    align: Add a room before '*' for arguments
---
 gnome-align.el |   33 ++++++++++++++++++++++++---------
 gnome-tests.el |   24 ++++++++++++------------
 2 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/gnome-align.el b/gnome-align.el
index 7ac94aa..6e68dc8 100644
--- a/gnome-align.el
+++ b/gnome-align.el
@@ -48,15 +48,17 @@
 (cl-defstruct (gnome-align--argument
               (:constructor nil)
               (:constructor gnome-align--make-argument (type-start
-                                                          type-end
-                                                          identifier-start
-                                                          identifier-end))
+                                                        type-end
+                                                        identifier-start
+                                                        identifier-end
+                                                        stars))
               (:copier nil)
               (:predicate nil))
   (type-start nil :read-only t)
   (type-end nil :read-only t)
   (identifier-start nil :read-only t)
-  (identifier-end nil :read-only t))
+  (identifier-end nil :read-only t)
+  (stars 0 :read-only t))
 
 (defun gnome-align--marker-column (marker)
   (save-excursion
@@ -78,7 +80,9 @@
 
 (defun gnome-align--arglist-identifier-start-column (arglist start-column)
   (let ((column start-column)
-       argument-column)
+       argument-column
+       (stars 0)
+       argument-stars)
     (dolist (argument arglist)
       (setq argument-column (+ start-column
                               (gnome-align--argument-type-width argument)))
@@ -88,8 +92,11 @@
          (when (eq (preceding-char) ? )
            (setq argument-column (1+ argument-column)))))
       (when (> argument-column column)
-       (setq column argument-column)))
-    column))
+       (setq column argument-column))
+      (setq argument-stars (gnome-align--argument-stars argument))
+      (when (> argument-stars stars)
+       (setq stars argument-stars)))
+    (+ column stars)))
 
 (defun gnome-align--argument-identifier-width (argument)
   (if (gnome-align--argument-identifier-start argument)
@@ -136,6 +143,7 @@
            type-end
            identifier-start
            identifier-end
+           (stars 0)
            arglist
            last-token-start)
        (goto-char (point-max))
@@ -162,9 +170,16 @@
                          (unless (eq (char-after) ?,)
                            (setq last-token-start (point-marker)))))
              (c-backward-syntactic-ws))
-           (setq type-start last-token-start))
+           (setq type-start last-token-start)
+           (save-excursion
+             (goto-char type-end)
+             (while (and (< type-start (point))
+                         (eq (preceding-char) ?*))
+               (setq stars (1+ stars))
+               (c-backward-token-2))))
          (push (gnome-align--make-argument type-start type-end
-                                             identifier-start identifier-end)
+                                           identifier-start identifier-end
+                                           stars)
                arglist))
        arglist))))
 
diff --git a/gnome-tests.el b/gnome-tests.el
index d4e3113..47fccc4 100644
--- a/gnome-tests.el
+++ b/gnome-tests.el
@@ -20,7 +20,7 @@ void g_gpg_ctx_clear_signers (GGpgCtx *ctx);
 ")
 
 (defconst gnome-test-program-1-aligned "\
-GGpgCtx *g_gpg_ctx_new                   (GError             **error);
+GGpgCtx *g_gpg_ctx_new                   (GError              **error);
 
 typedef void (*GGpgProgressCallback) (gpointer user_data,
                                       const gchar *what,
@@ -28,16 +28,16 @@ typedef void (*GGpgProgressCallback) (gpointer user_data,
                                       gint current,
                                       gint total);
 
-void     g_gpg_ctx_set_progress_callback (GGpgCtx             *ctx,
-                                          GGpgProgressCallback callback,
-                                          gpointer             user_data,
-                                          GDestroyNotify       destroy_data);
-void     g_gpg_ctx_add_signer            (GGpgCtx             *ctx,
-                                          GGpgKey             *key);
-guint    g_gpg_ctx_get_n_signers         (GGpgCtx             *ctx);
-GGpgKey *g_gpg_ctx_get_signer            (GGpgCtx             *ctx,
-                                          guint                index);
-void     g_gpg_ctx_clear_signers         (GGpgCtx             *ctx);
+void     g_gpg_ctx_set_progress_callback (GGpgCtx              *ctx,
+                                          GGpgProgressCallback  callback,
+                                          gpointer              user_data,
+                                          GDestroyNotify        destroy_data);
+void     g_gpg_ctx_add_signer            (GGpgCtx              *ctx,
+                                          GGpgKey              *key);
+guint    g_gpg_ctx_get_n_signers         (GGpgCtx              *ctx);
+GGpgKey *g_gpg_ctx_get_signer            (GGpgCtx              *ctx,
+                                          guint                 index);
+void     g_gpg_ctx_clear_signers         (GGpgCtx              *ctx);
 ")
 
 (defconst gnome-test-program-2 "\
@@ -65,7 +65,7 @@ const gchar **          gtk_widget_list_action_prefixes 
(GtkWidget             *
     (let ((columns (gnome-align--compute-optimal-columns (point-min) 
(point-max))))
       (should (= (cdr (assq 'identifier-start-column columns)) 9))
       (should (= (cdr (assq 'arglist-start-column columns)) 41))
-      (should (= (cdr (assq 'arglist-identifier-start-column columns)) 63)))))
+      (should (= (cdr (assq 'arglist-identifier-start-column columns)) 64)))))
 
 (ert-deftest gnome-test-align-region ()
   "Tests the `gnome-align-region'."



reply via email to

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