]> code.delx.au - gnu-emacs-elpa/commitdiff
snippet: Make options customizable
authorDaiki Ueno <ueno@gnu.org>
Sun, 17 Jan 2016 03:14:15 +0000 (12:14 +0900)
committerDaiki Ueno <ueno@gnu.org>
Sun, 17 Jan 2016 03:14:15 +0000 (12:14 +0900)
gnome-align.el
gnome-snippet.el

index d84d0dbb5dcf94f25b7efd51bde3c0ba15437560..7ac94aa6b805b9a3042df697b2990b2610e8b0a3 100644 (file)
 (require 'cc-mode)
 (require 'cl-lib)
 
+(defgroup gnome-minor-mode nil
+  "GNOME-style C source code editing"
+  :prefix "gnome-"
+  :group 'c)
+
 (defcustom gnome-align-max-column 80
   "Maximum number of columns per line."
   :type '(choice (integer :tag "Columns")
                 (const :tag "No wrap"))
-  :group 'c)
+  :group 'gnome-minor-mode)
 
 (defvar gnome-align-identifier-start-column nil)
 (make-variable-buffer-local 'gnome-align-identifier-start-column)
index f8aad95bebf77e70a21d173365ca4ac263e54d4e..a2862ab297d224b4a9c37396a46043916af0c5f2 100644 (file)
 (defvar gnome-snippet-parent-class nil)
 (make-variable-buffer-local 'gnome-snippet-parent-class)
 
-(defvar gnome-snippet-align-arglist nil)
+(defcustom gnome-snippet-align-arglist t
+  "Whether to align argument list of the inserted snippet"
+  :type 'boolean
+  :group 'gnome-minor-mode)
+
 (make-variable-buffer-local 'gnome-snippet-align-arglist)
 
 (defun gnome-snippet--parse-name (name)
@@ -309,13 +313,14 @@ static GObject *
     (setq arglist-start (point-marker))
     (insert "GType *object,
 guint n_construct_properties,
-GObjectConstructParam *construct_properties")
-    (funcall (if gnome-snippet-align-arglist
-                #'gnome-align-region
-              #'indent-region)
-            arglist-start (point))
-    (insert ")\n")
+GObjectConstructParam *construct_properties)\n")
     (setq body-start (point-marker))
+    (if gnome-snippet-align-arglist
+       (progn
+         (goto-char arglist-start)
+         (gnome-align-at-point))
+      (indent-region arglist-start (point)))
+    (goto-char body-start)
     (insert "{
   " (gnome-snippet--format-PackageClass package class) " *self = "
   (gnome-snippet--format-PACKAGE_CLASS package class) " (object);
@@ -340,13 +345,14 @@ static void
     (insert "GObject *object,
 guint prop_id,
 const GValue *value,
-GParamSpec *pspec")
-    (funcall (if gnome-snippet-align-arglist
-                #'gnome-align-region
-              #'indent-region)
-            arglist-start (point))
-    (insert ")\n")
+GParamSpec *pspec)\n")
     (setq body-start (point-marker))
+    (if gnome-snippet-align-arglist
+       (progn
+         (goto-char arglist-start)
+         (gnome-align-at-point))
+      (indent-region arglist-start (point)))
+    (goto-char body-start)
     (insert "{
   " (gnome-snippet--format-PackageClass package class) " *self = "
   (gnome-snippet--format-PACKAGE_CLASS package class) " (object);
@@ -376,13 +382,14 @@ static void
     (insert "GObject *object,
 guint prop_id,
 GValue *value,
-GParamSpec *pspec")
-    (funcall (if gnome-snippet-align-arglist
-                #'gnome-align-region
-              #'indent-region)
-            arglist-start (point))
-    (insert ")\n")
+GParamSpec *pspec)\n")
     (setq body-start (point-marker))
+    (if gnome-snippet-align-arglist
+       (progn
+         (goto-char arglist-start)
+         (gnome-align-at-point))
+      (indent-region arglist-start (point)))
+    (goto-char body-start)
     (insert "{
   " (gnome-snippet--format-PackageClass package class) " *self = "
 (gnome-snippet--format-PACKAGE_CLASS package class) " (object);