.emacs-defs
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 30 Jan 2021 23:17:51 +0200
changeset 1714 73cab0de25c6
parent 1689 96846689e388
child 1717 3c60aeba5004
permissions -rw-r--r--
Docs: my-profiler-enabled.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1284
0e25700290c4 Simplify expression.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1278
diff changeset
     1
;; -*- mode: emacs-lisp; coding: utf-8; fill-column: 78; no-byte-compile: t; -*-
1241
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
1688
0bab53c47567 Moved startup profiler settings to init.el and simplified activation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1687
diff changeset
     3
(defvar my-profiler-enabled nil
1714
73cab0de25c6 Docs: my-profiler-enabled.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1689
diff changeset
     4
  "Switch for enabling startup profiling.
73cab0de25c6 Docs: my-profiler-enabled.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1689
diff changeset
     5
73cab0de25c6 Docs: my-profiler-enabled.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1689
diff changeset
     6
Put value to '~/.emacs.d/.emacs-pre' which isn't overridden on installation.")
1688
0bab53c47567 Moved startup profiler settings to init.el and simplified activation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1687
diff changeset
     7
1675
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
     8
(defvar my-lisp-usr-home-dir
1241
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
  (expand-file-name "~/usr/share/emacs/site-lisp")
1675
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    10
  "There is a place for additional lisp packages installed via 'DIST=~/usr make install'.")
1241
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
(defvar my-lisp-dir
1674
68a521583d8e Added suffix "/" to my-lisp-dir for next easy/safe concat operations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1672
diff changeset
    13
  (expand-file-name (concat user-emacs-directory "mylisp/"))
1241
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
  "Here live my lisp packages.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
(add-to-list 'load-path my-lisp-dir)
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
(defvar my-lisp-autoload (concat my-lisp-dir "loaddefs.el")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
  "Path to autoload for mode files.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
(defvar my-lisp-auth (concat user-emacs-directory ".emacs-auth")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
  "Path to auth info for Emacs.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
(defvar my-lisp-autogen (concat user-emacs-directory ".emacs-autogen")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
  "Path to automatically generated config file. It content depend on
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  installation environment and it was overridden on install.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
(defvar my-lisp-pre (concat user-emacs-directory ".emacs-pre")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
  "Path to file with pre-settings. Intended for local modifications.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
(defvar my-lisp-dotemacs (concat user-emacs-directory ".emacs-my")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
  "Path to file with settings. Overwritten on install.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
(defvar my-lisp-post (concat user-emacs-directory ".emacs-post")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
  "Path to file with post-settings. Intended for local modifications.")
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
(setq custom-file (concat user-emacs-directory ".emacs-custom"))
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
(setq save-place-file (concat user-emacs-directory ".emacs-places"))
1285
8e2c4332223d Use newer recommended place for bookmarks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1284
diff changeset
    33
(setq bookmark-default-file (concat user-emacs-directory "bookmarks"))
1241
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
(setq ido-save-directory-list-file (concat user-emacs-directory ".ido.last"))
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
1687
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    36
(setq
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    37
 package-archives
1689
96846689e388 Work with packages over HTTPS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1688
diff changeset
    38
 '(("gnu" . "https://elpa.gnu.org/packages/")
1687
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    39
   ("melpa-stbl" . "https://stable.melpa.org/packages/")
1689
96846689e388 Work with packages over HTTPS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1688
diff changeset
    40
   ("melpa" . "https://melpa.org/packages/"))
1687
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    41
 package-archive-priorities
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    42
 '(("gnu" . 10)
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    43
   ("melpa-stbl" . 5)
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    44
   ("melpa" . 0)) )
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    45
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    46
(setq
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    47
 package-selected-packages
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    48
 '(adoc-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    49
   apache-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    50
   dockerfile-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    51
   groovy-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    52
   markdown-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    53
   terraform-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    54
   web-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    55
   yaml-mode
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    56
   expand-region
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    57
   helm
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    58
   ))
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    59
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    60
(defun my-lisp--install-external-packages ()
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    61
  ;; (package-initialize)
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    62
  ;; Update `package-archive-contents'.
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    63
  (advice-add #'y-or-n-p :override (lambda (prompt) t))
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    64
  (package-refresh-contents)
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    65
  ;; (package-install 'yaml-mode)
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    66
  (package-install-selected-packages))
3f69332472cb Added Make target to preinstall packages from ELPA.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1675
diff changeset
    67
1675
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    68
(defun my-lisp--load-pre ()
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    69
  (mapc (lambda (f)
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    70
          (when (file-exists-p f)
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    71
            (load f nil nil t)))
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    72
        (list custom-file my-lisp-autogen my-lisp-auth my-lisp-pre my-lisp-autoload)))
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    73
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    74
(defun my-lisp--load-usr-home ()
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    75
  "Add hierarchy `my-lisp-usr-home-dir' to `load-path'."
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    76
  (when (file-directory-p my-lisp-usr-home-dir)
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    77
    (add-to-list 'load-path my-lisp-usr-home-dir)
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    78
    (let ((default-directory my-lisp-usr-home-dir))
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    79
      (normal-top-level-add-subdirs-to-load-path))))
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    80
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    81
(defun my-lisp--load-all ()
1672
e2d0fc84c6f5 Simplified Makefile byte compillation recipe by moving some logic from CLI to elisp.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1670
diff changeset
    82
  "Load everything to help during byte compilation to spot errors
e2d0fc84c6f5 Simplified Makefile byte compillation recipe by moving some logic from CLI to elisp.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1670
diff changeset
    83
better. Not for regular use but for the Makefile."
1675
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    84
  (my-lisp--load-usr-home)
08f7fd3c4d5b Load more files for byte compilation check. Switched to my-lisp-* prefix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1674
diff changeset
    85
  (my-lisp--load-pre))
1241
4f22d9fe2e5b Byte compile '.emacs-my' and 'my/*.el'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    86
1254
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    87
(defmacro my--eval-after-load (feature &rest forms)
1278
8e47e801be9d Remove qouting from 'my--eval-after-load' macro usage because that code doesn't evaluated.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1254
diff changeset
    88
  (declare (indent defun))
1254
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    89
  `(,(if (or (not (boundp 'byte-compile-current-file))
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    90
             (not byte-compile-current-file)
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    91
             (if (symbolp feature)
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    92
                 (require feature nil :no-error)
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    93
               (load feature :no-message :no-error)))
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    94
         'progn
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    95
       (message "my--eval-after-load: cannot find %s" feature)
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    96
       'with-no-warnings)
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    97
    (eval-after-load ',feature
1284
0e25700290c4 Simplify expression.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1278
diff changeset
    98
      '(funcall (lambda () ,@forms)))))
1254
19c7b3be9b3a Define special macro to avoid warning about "assignment to free variable".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1241
diff changeset
    99