branch: master
commit d608680946934ec4a9f1fe73c2b86f84639f802c
Author: Daiki Ueno <[email protected]>
Commit: Daiki Ueno <[email protected]>
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'."