[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 3690ce8 13/15: Add nameless-insert-name-or-self-insert com
From: |
Artur Malabarba |
Subject: |
[elpa] master 3690ce8 13/15: Add nameless-insert-name-or-self-insert command |
Date: |
Thu, 03 Sep 2015 11:01:24 +0000 |
branch: master
commit 3690ce8cb3910903d512848c46137e39852d9483
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
Add nameless-insert-name-or-self-insert command
---
nameless.el | 64 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 40 insertions(+), 24 deletions(-)
diff --git a/nameless.el b/nameless.el
index 93d33d5..2ebdb8a 100644
--- a/nameless.el
+++ b/nameless.el
@@ -143,32 +143,48 @@ for it to take effect."
(progn (forward-sexp -1)
(looking-at-p
"\\(cl-\\)?def\\(un\\|macro\\|inline\\)\\*?\\_>"))))))
-(defun nameless-insert-name (&optional self-insert)
+(defun nameless-insert-name (&optional noerror)
+ "Insert `nameless-current-name' or the alias at point.
+If point is immediately after an alias configured in
+`nameless-aliases' or `nameless-global-aliases', replace it with
+the full name for that alias.
+Otherwise, insert `nameless-current-name'.
+
+If NOERROR is nil, signal an error if the alias at point is not
+configured, or if `nameless-current-name' is nil."
+ (interactive)
+ (if (string-match (rx (or (syntax symbol)
+ (syntax word)))
+ (string (char-before)))
+ (let* ((r (point))
+ (l (save-excursion
+ (forward-sexp -1)
+ (skip-chars-forward "^[:alnum:]")
+ (point)))
+ (alias (buffer-substring l r))
+ (full-name (when alias
+ (cdr (or (assoc alias nameless-aliases)
+ (assoc alias nameless-global-aliases))))))
+ (if full-name
+ (progn (delete-region l r)
+ (insert full-name "-"))
+ (unless noerror
+ (user-error "No name for alias `%s', see `nameless-aliases'"
alias))))
+ (if nameless-current-name
+ (insert nameless-current-name "-")
+ (unless noerror
+ (user-error "No name for current buffer, see
`nameless-current-name'")))))
+
+(defun nameless-insert-name-or-self-insert (&optional self-insert)
"Insert the name of current package, with a hyphen."
(interactive "P")
- (cond
- ((or self-insert
- (not nameless-current-name)
- (eq (char-before) ?\\)
- (nameless--in-arglist-p))
- (call-interactively #'self-insert-command))
- ((string-match (rx (or (syntax symbol)
- (syntax word)))
- (string (char-before)))
- (let* ((r (point))
- (l (save-excursion
- (forward-sexp -1)
- (skip-chars-forward "^[:alnum:]")
- (point)))
- (alias (buffer-substring l r))
- (full-name (when alias
- (cdr (or (assoc alias nameless-aliases)
- (assoc alias nameless-global-aliases))))))
- (if full-name
- (progn (delete-region l r)
- (insert full-name "-"))
+ (if (or self-insert
+ (not nameless-current-name)
+ (eq (char-before) ?\\)
+ (nameless--in-arglist-p))
+ (call-interactively #'self-insert-command)
+ (or (nameless-insert-name 'noerror)
(call-interactively #'self-insert-command))))
- (t (insert nameless-current-name "-"))))
(defun nameless--name-regexp (name)
"Return a regexp of the current name."
@@ -178,7 +194,7 @@ for it to take effect."
;;; Minor mode
;;;###autoload
(define-minor-mode nameless-mode
- nil nil " :" '(("_" . nameless-insert-name))
+ nil nil " :" '(("_" . nameless-insert-name-or-self-insert))
(if nameless-mode
(if (or nameless-current-name
(ignore-errors (string-match "\\.el\\'" (lm-get-package-name))))
- [elpa] master updated (4de2352 -> e0a3544), Artur Malabarba, 2015/09/03
- [elpa] master dc2fb41 06/15: Improve regexps, Artur Malabarba, 2015/09/03
- [elpa] master 3074f24 01/15: Initial commit, Artur Malabarba, 2015/09/03
- [elpa] master f662c5e 10/15: Fix composition, Artur Malabarba, 2015/09/03
- [elpa] master 2cd0e01 03/15: Autoload, Artur Malabarba, 2015/09/03
- [elpa] master 1a1719a 02/15: Add file, Artur Malabarba, 2015/09/03
- [elpa] master 7c425ed 12/15: Documentation, Artur Malabarba, 2015/09/03
- [elpa] master e23d22c 04/15: Implement disabling the mode too, Artur Malabarba, 2015/09/03
- [elpa] master e8922a6 05/15: Only hide prefix if something is written after it, Artur Malabarba, 2015/09/03
- [elpa] master 3690ce8 13/15: Add nameless-insert-name-or-self-insert command,
Artur Malabarba <=
- [elpa] master b81dadf 08/15: Add nameless-affect-indentation variable, to decide between display and compose, Artur Malabarba, 2015/09/03
- [elpa] master 59d6da9 07/15: Change defaults a bit, Artur Malabarba, 2015/09/03
- [elpa] master 1937b95 09/15: Implement aliases, Artur Malabarba, 2015/09/03
- [elpa] master c1dd76b 14/15: Readme, Artur Malabarba, 2015/09/03
- [elpa] master 9767c97 11/15: Improve aliases, Artur Malabarba, 2015/09/03
- [elpa] master e0a3544 15/15: Add 'packages/nameless/' from commit 'c1dd76b972ab978884d5c1b2add43e83cc23134e', Artur Malabarba, 2015/09/03