diff --git a/emacs.el b/emacs.el index a5825cd..cd0145f 100644 --- a/emacs.el +++ b/emacs.el @@ -208,6 +208,7 @@ IF OK-IF-ALREADY-EXISTS is true force download." restart-emacs fill-column-indicator pkgbuild-mode + minibuffer-line scala-mode2 ensime @@ -571,6 +572,21 @@ IF OK-IF-ALREADY-EXISTS is true force download." (define-key minibuffer-local-map (kbd "C-p") (kbd "ESC p")) (define-key minibuffer-local-map (kbd "C-n") (kbd "ESC n")) +(when (safe-require-or-eval 'minibuffer-line) + (set-face-underline 'minibuffer-line nil) + (set-variable 'minibuffer-line-format + `(,(concat user-login-name + "@" + (car (split-string system-name + "\\.")) + ":") + (:eval (abbreviate-file-name default-directory)) + " " + (:eval (and (fboundp 'git-ps1-mode-get-current) + (git-ps1-mode-get-current "[GIT:%s]"))))) + (minibuffer-line-mode 1) + ) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; letters, font-lock mode and fonts @@ -2041,8 +2057,9 @@ Commands are searched from ALIST." (define-key ctl-x-map "c" 'compile) -(set (defvar info-in-prompt-format nil - "Format text for minibuffer.") +(set (defvar prompt-line-format nil + "Format text to be prepended to prompt texts of minibuffer. +The value should be a mode-line format: see `mode-line-fomat' for details.") `(,(concat "[" user-login-name "@" @@ -2050,16 +2067,19 @@ Commands are searched from ALIST." "\\.")) "][") (:eval (abbreviate-file-name default-directory)) - "] ")) + "]" + (:eval (and (fboundp 'git-ps1-mode-get-current) + (git-ps1-mode-get-current "[GIT:%s]"))) + " ")) -(defmacro info-in-prompt-set (&rest functions) - "Set info-in-prompt advices for FUNCTIONS." +(defmacro prompt-line--defadvice (&rest functions) + "Set prompt-line advices for FUNCTIONS." `(progn ,@(mapcar (lambda (f) - `(defadvice ,f (before info-in-prompt-modify) + `(defadvice ,f (before prompt-line-modify) "Show info in prompt." (let ((orig (ad-get-arg 0)) - (str (format-mode-line info-in-prompt-format))) + (str (format-mode-line prompt-line-format))) (unless (string-match-p (concat "^" (regexp-quote str)) orig) @@ -2068,19 +2088,20 @@ Commands are searched from ALIST." orig)))))) functions))) -(info-in-prompt-set read-from-minibuffer - read-string - completing-read) +(prompt-line--defadvice read-from-minibuffer + read-string + completing-read) -(define-minor-mode info-in-prompt-mode - "Prepend some infomation to prompt of minibuffer." +(define-minor-mode prompt-line-mode + "Prepend some infomation to prompt of minibuffer. +Set `prompt-line-format' to configure what text to prepend." :init-value nil :global t :lighter "" - (if info-in-prompt-mode - (ad-activate-regexp "^info-in-prompt-modify$") - (ad-deactivate-regexp "^info-in-prompt-modify$"))) + (if prompt-line-mode + (ad-activate-regexp "^prompt-line-modify$") + (ad-deactivate-regexp "^prompt-line-modify$"))) -(info-in-prompt-mode 1) +(prompt-line-mode 1) ;;; emacs.el ends here