[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 82c34eb 12/20: snippet: Refactor name prompt
From: |
Daiki Ueno |
Subject: |
[elpa] master 82c34eb 12/20: snippet: Refactor name prompt |
Date: |
Wed, 10 Feb 2016 08:36:38 +0000 |
branch: master
commit 82c34eb73e5e6a14e431ef9e0017fe5d00fbb91e
Author: Daiki Ueno <address@hidden>
Commit: Daiki Ueno <address@hidden>
snippet: Refactor name prompt
---
gnome-c-snippet.el | 190 +++++++++++++++------------------------------------
1 files changed, 56 insertions(+), 134 deletions(-)
diff --git a/gnome-c-snippet.el b/gnome-c-snippet.el
index 548bcd4..4ea4b0a 100644
--- a/gnome-c-snippet.el
+++ b/gnome-c-snippet.el
@@ -61,28 +61,47 @@
words))
(nreverse words))))
-(defun gnome-c-snippet--read-package-and-class (package-prompt
- class-prompt
- package-symbol
- class-symbol)
+(defun gnome-c-snippet--read-name (prompt symbol &optional default)
(when (or current-prefix-arg
- (not (and (symbol-value package-symbol)
- (symbol-value class-symbol))))
- (set package-symbol
+ (not (symbol-value symbol)))
+ (set symbol
(gnome-c-snippet--parse-name
- (read-string (or package-prompt
- "Package (CamelCase): ")
- (if (symbol-value package-symbol)
- (gnome-c-snippet--format-Package
- (symbol-value package-symbol))))))
- (set class-symbol
- (gnome-c-snippet--parse-name
- (read-string (or class-prompt
- "Class (CamelCase): ")
- (if (symbol-value class-symbol)
- (gnome-c-snippet--format-Class
- (symbol-value class-symbol)))))))
- (list (symbol-value package-symbol) (symbol-value class-symbol)))
+ (read-string prompt
+ (or (if (symbol-value symbol)
+ (gnome-c-snippet--format-Package
+ (symbol-value symbol)))
+ default)))))
+ (symbol-value symbol))
+
+(defun gnome-c-snippet--read-package-and-class (parent)
+ (append (list (gnome-c-snippet--read-name
+ "Package (CamelCase): "
+ 'gnome-c-snippet-package)
+ (gnome-c-snippet--read-name
+ "Class (CamelCase): "
+ 'gnome-c-snippet-class))
+ (when parent
+ (list (gnome-c-snippet--read-name
+ "Parent package (CamelCase): "
+ 'gnome-c-snippet-parent-package)
+ (gnome-c-snippet--read-name
+ "Parent class (CamelCase): "
+ 'gnome-c-snippet-parent-class)))))
+
+(defun gnome-c-snippet--read-package-and-interface (parent)
+ (list (gnome-c-snippet--read-name
+ "Package (CamelCase): "
+ 'gnome-c-snippet-package)
+ (gnome-c-snippet--read-name
+ "Interface (CamelCase): "
+ 'gnome-c-snippet-class)
+ (when parent
+ (list (gnome-c-snippet--read-name
+ "Parent package (CamelCase): "
+ 'gnome-c-snippet-parent-package)
+ (gnome-c-snippet--read-name
+ "Parent class (CamelCase): "
+ 'gnome-c-snippet-parent-class)))))
(defun gnome-c-snippet--format-PACKAGE (package)
(mapconcat #'upcase package "_"))
@@ -113,44 +132,25 @@
;;;###autoload
(defun gnome-c-snippet-insert-package_class (package class)
"Insert the class name before the current point."
- (interactive (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(insert (gnome-c-snippet--format-package_class package class)))
;;;###autoload
(defun gnome-c-snippet-insert-PACKAGE_CLASS (package class)
"Insert the class name before the current point."
- (interactive (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(insert (gnome-c-snippet--format-PACKAGE_CLASS package class)))
;;;###autoload
(defun gnome-c-snippet-insert-PackageClass (package class)
"Insert the class name (in CamelCase) before the current point."
- (interactive (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(insert (gnome-c-snippet--format-PackageClass package class)))
(defun gnome-c-snippet-insert-interface-declaration (package iface
parent-package
parent-class)
"Insert interface declaration for PACKAGE and IFACE"
- (interactive
- (append (gnome-c-snippet--read-package-and-class
- nil
- "Interface (CamelCase): "
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class)
- (gnome-c-snippet--read-package-and-class
- "Parent package (CamelCase): "
- "Parent class (CamelCase): "
- 'gnome-c-snippet-parent-package
- 'gnome-c-snippet-parent-class)))
+ (interactive (gnome-c-snippet--read-package-and-interface t))
(insert "\
#define " (gnome-c-snippet--format-PACKAGE package) "_TYPE_"
(gnome-c-snippet--format-CLASS iface) " (" (gnome-c-snippet--format-package
package) "_" (gnome-c-snippet--format-class iface) "_get_type ())
G_DECLARE_INTERFACE (" (gnome-c-snippet--format-PackageClass package iface) ",
"
@@ -173,16 +173,7 @@ G_DECLARE_" (if derivable "DERIVABLE" "FINAL") "_TYPE ("
(gnome-c-snippet--forma
parent-package
parent-class)
"Insert final class declaration for PACKAGE and CLASS."
- (interactive
- (append (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class)
- (gnome-c-snippet--read-package-and-class
- "Parent package (CamelCase): "
- "Parent class (CamelCase): "
- 'gnome-c-snippet-parent-package
- 'gnome-c-snippet-parent-class)))
+ (interactive (gnome-c-snippet--read-package-and-class t))
(gnome-c-snippet--insert-class-declaration package
class
parent-package
@@ -194,16 +185,7 @@ G_DECLARE_" (if derivable "DERIVABLE" "FINAL") "_TYPE ("
(gnome-c-snippet--forma
parent-package
parent-class)
"Insert derivable class declaration for PACKAGE and CLASS."
- (interactive
- (append (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class)
- (gnome-c-snippet--read-package-and-class
- "Parent package (CamelCase): "
- "Parent class (CamelCase): "
- 'gnome-c-snippet-parent-package
- 'gnome-c-snippet-parent-class)))
+ (interactive (gnome-c-snippet--read-package-and-class t))
(gnome-c-snippet--insert-class-declaration package
class
parent-package
@@ -215,17 +197,7 @@ G_DECLARE_" (if derivable "DERIVABLE" "FINAL") "_TYPE ("
(gnome-c-snippet--forma
parent-package
parent-class)
"Insert class definition for PACKAGE and CLASS."
- (interactive
- (append (gnome-c-snippet--read-package-and-class
- nil
- "Interface (CamelCase): "
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class)
- (gnome-c-snippet--read-package-and-class
- "Parent package (CamelCase): "
- "Parent class (CamelCase): "
- 'gnome-c-snippet-parent-package
- 'gnome-c-snippet-parent-class)))
+ (interactive (gnome-c-snippet--read-package-and-interface t))
(insert "\
static void
" (gnome-c-snippet--format-package_class package iface) "_default_init ("
(gnome-c-snippet--format-PackageClass package iface) "Interface *iface) {
@@ -260,16 +232,7 @@ static void
parent-package
parent-class)
"Insert class definition for PACKAGE and CLASS."
- (interactive
- (append (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class)
- (gnome-c-snippet--read-package-and-class
- "Parent package (CamelCase): "
- "Parent class (CamelCase): "
- 'gnome-c-snippet-parent-package
- 'gnome-c-snippet-parent-class)))
+ (interactive (gnome-c-snippet--read-package-and-class t))
(gnome-c-snippet--insert-class-definition package
class
parent-package
@@ -281,16 +244,7 @@ static void
parent-package
parent-class)
"Insert abstract class definition for PACKAGE and CLASS."
- (interactive
- (append (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class)
- (gnome-c-snippet--read-package-and-class
- "Parent package (CamelCase): "
- "Parent class (CamelCase): "
- 'gnome-c-snippet-parent-package
- 'gnome-c-snippet-parent-class)))
+ (interactive (gnome-c-snippet--read-package-and-class t))
(gnome-c-snippet--insert-class-definition package
class
parent-package
@@ -299,11 +253,7 @@ static void
(defun gnome-c-snippet-insert-constructor (package class)
"Insert 'constructor' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (arglist-start body-start)
(insert "\
static GObject *
@@ -330,11 +280,7 @@ GObjectConstructParam *construct_properties)\n")
(defun gnome-c-snippet-insert-set_property (package class)
"Insert 'set_property' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (arglist-start body-start)
(insert "\
static void
@@ -367,11 +313,7 @@ GParamSpec *pspec)\n")
(defun gnome-c-snippet-insert-get_property (package class)
"Insert 'get_property' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (arglist-start body-start)
(insert "\
static void
@@ -404,11 +346,7 @@ GParamSpec *pspec)\n")
(defun gnome-c-snippet-insert-dispose (package class)
"Insert 'dispose' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (body-start)
(insert "\
static void
@@ -425,11 +363,7 @@ static void
(defun gnome-c-snippet-insert-finalize (package class)
"Insert 'finalize' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (body-start)
(insert "\
static void
@@ -447,11 +381,7 @@ static void
(defun gnome-c-snippet-insert-dispatch_properties_changed (package class)
"Insert 'dispatch_properties_changed vfunc of GObjectClass for
PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (arglist-start body-start)
(insert "\
static void
@@ -478,11 +408,7 @@ GParamSpec **pspecs)\n")
(defun gnome-c-snippet-insert-notify (package class)
"Insert 'notify' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (arglist-start body-start)
(insert "\
static void
@@ -507,11 +433,7 @@ GParamSpec *pspec)\n")
(defun gnome-c-snippet-insert-constructed (package class)
"Insert 'constructed' vfunc of GObjectClass for PACKAGE and CLASS."
- (interactive
- (gnome-c-snippet--read-package-and-class
- nil nil
- 'gnome-c-snippet-package
- 'gnome-c-snippet-class))
+ (interactive (gnome-c-snippet--read-package-and-class nil))
(let (body-start)
(insert "\
static void
- [elpa] master cca4a06 02/20: Fix keybindings in README.md, (continued)
- [elpa] master cca4a06 02/20: Fix keybindings in README.md, Daiki Ueno, 2016/02/10
- [elpa] master 9566ae5 03/20: Fix examples in README.md, Daiki Ueno, 2016/02/10
- [elpa] master 6a18372 04/20: README.md: Use inline code blocks properly, Daiki Ueno, 2016/02/10
- [elpa] master 76e929a 05/20: README.md: Use inline code blocks properly, Daiki Ueno, 2016/02/10
- [elpa] master 25184d6 06/20: Fix typo in README.md, Daiki Ueno, 2016/02/10
- [elpa] master 79f77aa 07/20: snippet: Fix typo, Daiki Ueno, 2016/02/10
- [elpa] master 34132ba 08/20: README.md: Fix typo, Daiki Ueno, 2016/02/10
- [elpa] master 4cd7696 09/20: align: Expand documentation of align-region, Daiki Ueno, 2016/02/10
- [elpa] master b23b5a3 10/20: snippet: Upcase the first letter of names, Daiki Ueno, 2016/02/10
- [elpa] master df2906e 11/20: snippet: Always require subword, Daiki Ueno, 2016/02/10
- [elpa] master 82c34eb 12/20: snippet: Refactor name prompt,
Daiki Ueno <=
- [elpa] master 9db7ee5 13/20: snippet: Support guessing package/class names, Daiki Ueno, 2016/02/10
- [elpa] master 2136dd5 14/20: snippet: Fix for older pcase, Daiki Ueno, 2016/02/10
- [elpa] master f3c2b22 15/20: tests: Add snippt tests, Daiki Ueno, 2016/02/10
- [elpa] master 2bfe1ad 16/20: snippet: Support guessing parent package/class, Daiki Ueno, 2016/02/10
- [elpa] master 4ea87a1 17/20: tests: Add tests for guess-name-from-file-name, Daiki Ueno, 2016/02/10
- [elpa] master ab8b3ae 18/20: snippet: Add _{class_,}init, Daiki Ueno, 2016/02/10
- [elpa] master d827bb5 19/20: snippet: Improve _init prompt, Daiki Ueno, 2016/02/10
- [elpa] master 1abce8e 20/20: Merge commit 'd827bb511203a64da3ae5cc6910b87b7c99d233b', Daiki Ueno, 2016/02/10