Browse Source

Remove safe-require-or-eval

master
10sr 4 years ago
parent
commit
37783bc0a3
Signed by: 10sr GPG Key ID: 7BEC428194130EB2
1 changed files with 120 additions and 104 deletions
  1. +120
    -104
      emacs.el

+ 120
- 104
emacs.el View File

@@ -51,14 +51,13 @@ Otherwize hook it."
(lambda () (lambda ()
,@body)))) ,@body))))


;; TODO: Remove: Just checking fboundp should be enough for most cases
(defmacro safe-require-or-eval (feature)
"Require FEATURE if available.
;; (defmacro safe-require-or-eval (feature)
;; "Require FEATURE if available.


At compile time the feature will be loaded immediately."
`(eval-and-compile
(message "safe-require-or-eval: Trying to require %s" ,feature)
(require ,feature nil t)))
;; At compile time the feature will be loaded immediately."
;; `(eval-and-compile
;; (message "safe-require-or-eval: Trying to require %s" ,feature)
;; (require ,feature nil t)))


;; TODO: Remove: Defining autoload is no more needed for most cases ;; TODO: Remove: Defining autoload is no more needed for most cases
(defmacro autoload-eval-lazily (feature &optional functions &rest body) (defmacro autoload-eval-lazily (feature &optional functions &rest body)
@@ -189,23 +188,22 @@ found, otherwise returns nil."


)) ))


(when (safe-require-or-eval 'package)
(setq package-archives
`(,@package-archives
("melpa" . "https://melpa.org/packages/")
;; Somehow fails to download via https
("10sr-el" . "http://10sr.github.io/emacs-lisp/elpa/")))
(package-initialize)
(require 'package)
(set-variable 'package-archives
`(,@package-archives
("melpa" . "https://melpa.org/packages/")
;; Somehow fails to download via https
("10sr-el" . "http://10sr.github.io/emacs-lisp/elpa/")))
(package-initialize)


(defun my-auto-install-package ()
"Install packages semi-automatically."
(interactive)
(package-refresh-contents)
(mapc (lambda (pkg)
(or (package-installed-p pkg)
(package-install pkg)))
10sr-package-list))
)
(defun my-auto-install-package ()
"Install packages semi-automatically."
(interactive)
(package-refresh-contents)
(mapc (lambda (pkg)
(or (package-installed-p pkg)
(package-install pkg)))
10sr-package-list))


;; (lazy-load-eval 'sudoku) ;; (lazy-load-eval 'sudoku)


@@ -300,7 +298,7 @@ found, otherwise returns nil."
(file-readable-p user-init-file)) (file-readable-p user-init-file))
(load-file user-init-file))) (load-file user-init-file)))


(safe-require-or-eval 'session)
(require 'session nil t)


;; server ;; server


@@ -365,7 +363,7 @@ found, otherwise returns nil."
;; Interactively evaluate Emacs Lisp expressions ;; Interactively evaluate Emacs Lisp expressions
(define-key ctl-x-map "i" 'ielm) (define-key ctl-x-map "i" 'ielm)


(when (safe-require-or-eval 'which-key)
(when (fboundp 'which-key-mode)
(which-key-mode)) (which-key-mode))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -465,10 +463,14 @@ found, otherwise returns nil."


(require 'page-ext nil t) (require 'page-ext nil t)


(when (safe-require-or-eval 'page-break-lines)
(global-page-break-lines-mode 1))
(when (fboundp 'global-page-break-lines-mode)
(add-hook 'after-first-visit-hook
'global-page-break-lines-mode))


(when (safe-require-or-eval 'git-gutter)
(when (fboundp 'global-git-gutter-mode)
(add-hook 'after-first-visit-hook
'global-git-gutter-mode))
(with-eval-after-load 'git-gutter
(declare-function global-git-gutter-mode "git-gutter") (declare-function global-git-gutter-mode "git-gutter")
(custom-set-variables (custom-set-variables
'(git-gutter:lighter " Gttr")) '(git-gutter:lighter " Gttr"))
@@ -482,17 +484,16 @@ found, otherwise returns nil."
(set-face-background 'git-gutter:modified c) (set-face-background 'git-gutter:modified c)
(set-face-background 'git-gutter:added c) (set-face-background 'git-gutter:added c)
(set-face-background 'git-gutter:deleted c) (set-face-background 'git-gutter:deleted c)
(set-face-background 'git-gutter:unchanged c)))
(global-git-gutter-mode 1)
)
(set-face-background 'git-gutter:unchanged c))))


;; (when (safe-require-or-eval 'fancy-narrow)
;; (fancy-narrow-mode 1))
;; (when (fboundp 'fancy-narrow-mode)
;; (add-hook 'after-first-visit-hook
;; 'fancy-narrow-mode))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; title and mode-line ;; title and mode-line


(when (safe-require-or-eval 'terminal-title)
(when (require 'terminal-title nil t)
;; if TERM is not screen use default value ;; if TERM is not screen use default value
(if (getenv "TMUX") (if (getenv "TMUX")
;; if use tmux locally just basename of current dir ;; if use tmux locally just basename of current dir
@@ -540,7 +541,7 @@ found, otherwise returns nil."
"") "")
))) )))


(when (safe-require-or-eval 'diminish)
(when (require 'diminish nil t)
;; FIXME: Eval after enabling mode ;; FIXME: Eval after enabling mode
(eval-after-init (eval-after-init
(diminish 'recently-mode) (diminish 'recently-mode)
@@ -633,7 +634,7 @@ found, otherwise returns nil."
(define-key minibuffer-local-map (kbd "C-p") (kbd "ESC p")) (define-key minibuffer-local-map (kbd "C-p") (kbd "ESC p"))
(define-key minibuffer-local-map (kbd "C-n") (kbd "ESC n")) (define-key minibuffer-local-map (kbd "C-n") (kbd "ESC n"))


(when (safe-require-or-eval 'minibuffer-line)
(when (require 'minibuffer-line nil t)
(set-face-underline 'minibuffer-line nil) (set-face-underline 'minibuffer-line nil)
(set-variable 'minibuffer-line-refresh-interval (set-variable 'minibuffer-line-refresh-interval
25) 25)
@@ -668,7 +669,7 @@ found, otherwise returns nil."
(minibuffer-line-mode 1) (minibuffer-line-mode 1)
) )


(when (safe-require-or-eval 'prompt-text)
(when (require 'prompt-text nil t)


(set-variable 'prompt-text-format (set-variable 'prompt-text-format
`(,(concat "" `(,(concat ""
@@ -727,18 +728,18 @@ found, otherwise returns nil."
(add-hook 'input-method-inactivate-hook (add-hook 'input-method-inactivate-hook
(lambda () (set-cursor-color "black")))) (lambda () (set-cursor-color "black"))))


(when (safe-require-or-eval 'paren)
(show-paren-mode 1)
(setq show-paren-delay 0.5
show-paren-style 'parenthesis) ; mixed is hard to read
;; (set-face-background 'show-paren-match
;; "black")
;; ;; (face-foreground 'default))
;; (set-face-foreground 'show-paren-match
;; "white")
;; (set-face-inverse-video-p 'show-paren-match
;; t)
)
(when (fboundp 'show-paren-mode)
(add-hook 'after-first-visit-hook
'show-paren-mode))
(set-variable 'show-paren-delay 0.5)
(set-variable 'show-paren-style 'parenthesis) ; mixed is hard to read
;; (set-face-background 'show-paren-match
;; "black")
;; ;; (face-foreground 'default))
;; (set-face-foreground 'show-paren-match
;; "white")
;; (set-face-inverse-video-p 'show-paren-match
;; t)


(transient-mark-mode 1) (transient-mark-mode 1)


@@ -767,25 +768,31 @@ found, otherwise returns nil."
(font-lock-add-keywords nil my-jspace-face) (font-lock-add-keywords nil my-jspace-face)
)) ))


(when (safe-require-or-eval 'whitespace)
(when (fboundp 'global-whitespace-mode)
(add-hook 'after-first-visit-hook
'global-whitespace-mode))

(with-eval-after-load 'whitespace
(defvar whitespace-display-mappings)
(defvar whitespace-mode)
(add-to-list 'whitespace-display-mappings (add-to-list 'whitespace-display-mappings
;; We need t since last one takes precedence ;; We need t since last one takes precedence
`(tab-mark ?\t ,(vconcat "|>\t")) t) `(tab-mark ?\t ,(vconcat "|>\t")) t)
;; (add-to-list 'whitespace-display-mappings ;; (add-to-list 'whitespace-display-mappings
;; `(newline-mark ?\n ,(vconcat "$\n"))) ;; `(newline-mark ?\n ,(vconcat "$\n")))
(setq whitespace-style '(face
trailing ; trailing blanks
;; tabs
;; spaces
;; lines
lines-tail ; lines over 80
newline ; newlines
;; empty ; empty lines at beg or end of buffer
;; big-indent
;; space-mark
tab-mark
newline-mark ; use display table for newline
))
(set-variable 'whitespace-style '(face
trailing ; trailing blanks
;; tabs
;; spaces
;; lines
lines-tail ; lines over 80
newline ; newlines
;; empty ; empty lines at beg or end of buffer
;; big-indent
;; space-mark
tab-mark
newline-mark ; use display table for newline
))
;; (setq whitespace-newline 'font-lock-comment-face) ;; (setq whitespace-newline 'font-lock-comment-face)
;; (setq whitespace-style (delq 'newline-mark whitespace-style)) ;; (setq whitespace-style (delq 'newline-mark whitespace-style))
(defun my-whitesspace-mode-reload () (defun my-whitesspace-mode-reload ()
@@ -796,10 +803,9 @@ found, otherwise returns nil."
(whitespace-mode 1))) (whitespace-mode 1)))


(set-variable 'whitespace-line-column nil) (set-variable 'whitespace-line-column nil)
(global-whitespace-mode t)
(add-hook 'dired-mode-hook (add-hook 'dired-mode-hook
(lambda () (lambda ()
(set (make-local-variable 'whitespace-style) nil)))
(set-variable 'whitespace-style nil t)))
(if (>= (display-color-cells) (if (>= (display-color-cells)
256) 256)
(set-face-foreground 'whitespace-newline "color-109") (set-face-foreground 'whitespace-newline "color-109")
@@ -808,7 +814,7 @@ found, otherwise returns nil."
;; t)) ;; t))
)) ))
(and nil (and nil
'(safe-require-or-eval 'fill-column-indicator)
'(require 'fill-column-indicator nil t)
(setq fill-column-indicator)) (setq fill-column-indicator))


(defun my-gen-hl-line-color-dark () (defun my-gen-hl-line-color-dark ()
@@ -850,7 +856,7 @@ found, otherwise returns nil."
(set-face-foreground 'font-lock-regexp-grouping-backslash "#666") (set-face-foreground 'font-lock-regexp-grouping-backslash "#666")
(set-face-foreground 'font-lock-regexp-grouping-construct "#f60") (set-face-foreground 'font-lock-regexp-grouping-construct "#f60")


;;(safe-require-or-eval 'set-modeline-color)
;;(require 'set-modeline-color nil t)


;; (let ((fg (face-foreground 'default)) ;; (let ((fg (face-foreground 'default))
;; (bg (face-background 'default))) ;; (bg (face-background 'default)))
@@ -863,7 +869,7 @@ found, otherwise returns nil."
;; (set-face-underline 'vertical-border ;; (set-face-underline 'vertical-border
;; nil) ;; nil)


;; (when (safe-require-or-eval 'end-mark)
;; (when (require 'end-mark nil t)
;; (global-end-mark-mode)) ;; (global-end-mark-mode))


;; M-x highlight-* to highlight things ;; M-x highlight-* to highlight things
@@ -877,13 +883,13 @@ found, otherwise returns nil."
end))) end)))
(setq deactivate-mark t))) (setq deactivate-mark t)))


(when (safe-require-or-eval 'auto-highlight-symbol)
(set-variable 'ahs-idle-interval 0.6)
(global-auto-highlight-symbol-mode 1))
(when (fboundp 'global-auto-highlight-symbol-mode)
(add-hook 'after-first-visit-hook
'global-auto-highlight-symbol-mode))
(set-variable 'ahs-idle-interval 0.6)




(when (safe-require-or-eval 'highlight-indentation)
(set-face-background 'highlight-indentation-face "color-236")
(when (fboundp 'highlight-indentation-mode)
(dolist (hook (dolist (hook
'( '(
prog-mode-hook prog-mode-hook
@@ -891,6 +897,8 @@ found, otherwise returns nil."
)) ))
(add-hook hook (add-hook hook
'highlight-indentation-mode))) 'highlight-indentation-mode)))
(with-eval-after-load 'highlight-indentation
(set-face-background 'highlight-indentation-face "color-236"))
;; (set-face-background 'highlight-indentation-current-column-face "#c3b3b3") ;; (set-face-background 'highlight-indentation-current-column-face "#c3b3b3")


(when (fboundp 'fic-mode) (when (fboundp 'fic-mode)
@@ -965,7 +973,8 @@ found, otherwise returns nil."


;; recently ;; recently


(when (safe-require-or-eval 'recently)
;; TODO: Enable after first visit file?
(when (require 'recently nil t)
(define-key ctl-x-map (kbd "C-r") 'recently-show) (define-key ctl-x-map (kbd "C-r") 'recently-show)
(set-variable 'recently-max 1000) (set-variable 'recently-max 1000)
(defvar recently-excludes) (defvar recently-excludes)
@@ -1042,10 +1051,11 @@ found, otherwise returns nil."
(setq revert-without-query '(".+")) (setq revert-without-query '(".+"))


;; save cursor position ;; save cursor position
(when (safe-require-or-eval 'saveplace)
(setq-default save-place t)
(setq save-place-file (concat user-emacs-directory
"places")))
(when (fboundp 'save-place-mode)
(add-hook 'after-first-visit-hook
'save-place-mode))
(set-variable 'save-place-file (concat user-emacs-directory
"places"))


;; http://www.bookshelf.jp/soft/meadow_24.html#SEC260 ;; http://www.bookshelf.jp/soft/meadow_24.html#SEC260
(setq make-backup-files t) (setq make-backup-files t)
@@ -1089,12 +1099,12 @@ found, otherwise returns nil."
(add-to-list 'recentf-exclude (add-to-list 'recentf-exclude
(regexp-quote bookmark-default-file))) (regexp-quote bookmark-default-file)))


(when (safe-require-or-eval 'smart-revert)
(when (fboundp 'smart-revert-on)
(smart-revert-on)) (smart-revert-on))


;; autosave ;; autosave
;; auto-save-visited-mode can be used instead? ;; auto-save-visited-mode can be used instead?
;; (when (safe-require-or-eval 'autosave)
;; (when (require 'autosave nil t)
;; (autosave-set 8)) ;; (autosave-set 8))




@@ -1122,12 +1132,12 @@ found, otherwise returns nil."
(not (equal (getenv "DISPLAY") "")) (not (equal (getenv "DISPLAY") ""))
(executable-find "xclip") (executable-find "xclip")
;; (< emacs-major-version 24) ;; (< emacs-major-version 24)
'(safe-require-or-eval 'xclip)
'(require 'xclip nil t)
nil nil
(turn-on-xclip)) (turn-on-xclip))


(and (eq system-type 'darwin) (and (eq system-type 'darwin)
(safe-require-or-eval 'pasteboard)
(require 'pasteboard nil t)
(turn-on-pasteboard)) (turn-on-pasteboard))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1252,18 +1262,20 @@ found, otherwise returns nil."
(add-to-list 'auto-mode-alist (add-to-list 'auto-mode-alist
`(,git-rebase-filename-regexp . text-mode))) `(,git-rebase-filename-regexp . text-mode)))


(when (safe-require-or-eval 'aggressive-indent)
(when (fboundp 'global-aggressive-indent-mode)
(add-hook 'after-first-visit-hook
'global-aggressive-indent-mode))
(with-eval-after-load 'aggressive-indent
(defvar aggressive-indent-excluded-modes) (defvar aggressive-indent-excluded-modes)
(setq aggressive-indent-excluded-modes
`(web-mode
diff-mode
toml-mode
conf-mode
dockerfile-mode
groovy-mode
scala-mode
,@aggressive-indent-excluded-modes))
(global-aggressive-indent-mode 1))
(set-variable 'aggressive-indent-excluded-modes
`(web-mode
diff-mode
toml-mode
conf-mode
dockerfile-mode
groovy-mode
scala-mode
,@aggressive-indent-excluded-modes)))


(when (fboundp 'ggtags-mode) (when (fboundp 'ggtags-mode)
(add-hook 'c-mode-common-hook (add-hook 'c-mode-common-hook
@@ -1314,10 +1326,12 @@ found, otherwise returns nil."
'("^\\([^ \n]+\\):\\([0-9]+\\) " 1 2)) '("^\\([^ \n]+\\):\\([0-9]+\\) " 1 2))
) )


(when (safe-require-or-eval 'company)
(when (fboundp 'global-company-mode)
(add-hook 'after-first-visit-hook
'global-company-mode))
(with-eval-after-load 'company
;; http://qiita.com/sune2/items/b73037f9e85962f5afb7 ;; http://qiita.com/sune2/items/b73037f9e85962f5afb7
;; https://qiita.com/yuze/items/a145b1e3edb6d0c24cbf ;; https://qiita.com/yuze/items/a145b1e3edb6d0c24cbf
(global-company-mode)
(set-variable 'company-idle-delay nil) (set-variable 'company-idle-delay nil)
(set-variable 'company-minimum-prefix-length 2) (set-variable 'company-minimum-prefix-length 2)
(set-variable 'company-selection-wrap-around t) (set-variable 'company-selection-wrap-around t)
@@ -1399,8 +1413,9 @@ found, otherwise returns nil."
;; https://github.com/lunaryorn/flycheck ;; https://github.com/lunaryorn/flycheck
;; TODO: Any way to disable auto check? ;; TODO: Any way to disable auto check?
;; Update flycheck-hooks-alist? ;; Update flycheck-hooks-alist?
(when (safe-require-or-eval 'flycheck)
(eval-after-init (global-flycheck-mode)))
(when (fboundp 'global-flycheck-mode)
(add-hook 'after-first-visit-hook
'global-flycheck-mode))
;; (set-variable 'flycheck-display-errors-delay 2.0) ;; (set-variable 'flycheck-display-errors-delay 2.0)
;; (fset 'flycheck-display-error-at-point-soon 'ignore) ;; (fset 'flycheck-display-error-at-point-soon 'ignore)


@@ -1501,7 +1516,7 @@ found, otherwise returns nil."




;; http://fukuyama.co/foreign-regexp ;; http://fukuyama.co/foreign-regexp
'(and (safe-require-or-eval 'foreign-regexp)
'(and (require 'foreign-regexp nil t)
(progn (progn
(setq foreign-regexp/regexp-type 'perl) (setq foreign-regexp/regexp-type 'perl)
'(setq reb-re-syntax 'foreign-regexp) '(setq reb-re-syntax 'foreign-regexp)
@@ -1520,8 +1535,9 @@ found, otherwise returns nil."
;; (define-key ctl-x-map (kbd "C-g") 'gited-list)) ;; (define-key ctl-x-map (kbd "C-g") 'gited-list))
(defalias 'gited 'gited-list) (defalias 'gited 'gited-list)


(when (safe-require-or-eval 'git-commit)
(global-git-commit-mode 1))
(when (fboundp 'global-git-commit-mode)
(add-hook 'after-first-visit-hook
'global-git-commit-mode))
(with-eval-after-load 'git-commit (with-eval-after-load 'git-commit
(add-hook 'git-commit-setup-hook (add-hook 'git-commit-setup-hook
'turn-off-auto-fill t)) 'turn-off-auto-fill t))
@@ -1544,7 +1560,7 @@ found, otherwise returns nil."
;; (when (autoload-eval-lazily 'malabar-mode) ;; (when (autoload-eval-lazily 'malabar-mode)
;; (add-to-list 'load-path ;; (add-to-list 'load-path
;; (expand-file-name (concat user-emacs-directory "/cedet"))) ;; (expand-file-name (concat user-emacs-directory "/cedet")))
;; (safe-require-or-eval 'cedet-devel-load)
;; (require 'cedet-devel-load nil t)
;; (eval-after-init (activate-malabar-mode))) ;; (eval-after-init (activate-malabar-mode)))


(with-eval-after-load 'make-mode (with-eval-after-load 'make-mode
@@ -2066,7 +2082,7 @@ ARG is num to show, or defaults to 7."
;; 'my-replace-nasi-none) ;; 'my-replace-nasi-none)


(with-eval-after-load 'dired (with-eval-after-load 'dired
(safe-require-or-eval 'ls-lisp)
(require 'ls-lisp nil t)
(defvar dired-mode-map (make-sparse-keymap)) (defvar dired-mode-map (make-sparse-keymap))
;; dired-do-chgrp sometimes cause system hung ;; dired-do-chgrp sometimes cause system hung
(define-key dired-mode-map "G" 'ignore) (define-key dired-mode-map "G" 'ignore)
@@ -2300,7 +2316,7 @@ and search from projectile root (if projectile is available)."
(error "My-Rgrep: Command for rgrep not found") (error "My-Rgrep: Command for rgrep not found")
))) )))
(if (and current-prefix-arg (if (and current-prefix-arg
(safe-require-or-eval 'projectile)
(eval-and-compile (require 'projectile nil t))
(projectile-project-p)) (projectile-project-p))
(projectile-with-default-dir (projectile-project-root) (projectile-with-default-dir (projectile-project-root)
(compilation-start command-args (compilation-start command-args
@@ -2319,7 +2335,7 @@ and search from projectile root (if projectile is available)."
(or (thing-at-point 'symbol t) (or (thing-at-point 'symbol t)
(error "No symbol at point"))) (error "No symbol at point")))
(error "My-Rgrep: Command for rgrep not found")))) (error "My-Rgrep: Command for rgrep not found"))))
(if (safe-require-or-eval 'projectile)
(if (eval-and-compile (require 'projectile nil t))
(projectile-with-default-dir (or (projectile-project-root) (projectile-with-default-dir (or (projectile-project-root)
default-directory) default-directory)
(compilation-start command-args (compilation-start command-args


Loading…
Cancel
Save