Skip to content
Snippets Groups Projects
Commit e511811f authored by MoScriber's avatar MoScriber
Browse files

add functions.el and configs.el for more robust

parent adef6f50
No related branches found
No related tags found
No related merge requests found
...@@ -24,40 +24,29 @@ ...@@ -24,40 +24,29 @@
(time-subtract after-init-time before-init-time))) (time-subtract after-init-time before-init-time)))
gcs-done))) gcs-done)))
;; extract different file for emacs ;; add `lisp' to `load-path'.
(let ((config-file (expand-file-name "cache/userconfig" user-emacs-directory))) (add-to-list 'load-path
(or (file-exists-p config-file) (expand-file-name "lisp" user-emacs-directory))
(copy-file (concat user-emacs-directory "lisp/templates/userconfig.template")
config-file) ;; load user configs.
) (require 'configs)
(load config-file) (or (file-exists-p user/userconfig-file)
(copy-file (concat user-emacs-directory "lisp/templates/userconfig.template")
user/userconfig-file)
) )
(load user/userconfig-file)
;; load `custom-file'
(setq custom-file user/custom-file) (setq custom-file user/custom-file)
(when (file-exists-p custom-file) (when (file-exists-p custom-file)
(load custom-file)) (load custom-file))
(add-to-list 'load-path (require 'cl-lib)
(expand-file-name "lisp" user-emacs-directory))
(require 'cl-lib)
;; Language and coding ;; Language and coding
(set-language-environment "utf-8") (set-language-environment "utf-8")
(set-keyboard-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8)
(set-default-coding-systems 'utf-8) (set-default-coding-systems 'utf-8)
;;; My Functions
(defun open-init-file()
"Find and open the init.el."
(interactive)
(find-file (concat user-emacs-directory "init.el")))
(defun load-init-file()
"Load init.el."
(interactive)
(load-file (concat user-emacs-directory "init.el"))
)
(if (fboundp 'with-eval-after-load) (if (fboundp 'with-eval-after-load)
(defalias 'after-load 'with-eval-after-load) (defalias 'after-load 'with-eval-after-load)
...@@ -105,7 +94,6 @@ ...@@ -105,7 +94,6 @@
(show-paren-mode 1) (show-paren-mode 1)
(delete-selection-mode 1) (delete-selection-mode 1)
(electric-pair-mode 1) (electric-pair-mode 1)
;; (popwin-mode 1)
(size-indication-mode t) (size-indication-mode t)
;; use y-n to replace yes-no ;; use y-n to replace yes-no
(fset 'yes-or-no-p 'y-or-n-p) (fset 'yes-or-no-p 'y-or-n-p)
...@@ -297,6 +285,7 @@ ...@@ -297,6 +285,7 @@
:config :config
:diminish which-key-mode :diminish which-key-mode
) )
(require 'functions)
(require 'keybindings) (require 'keybindings)
(require 'prog-common) (require 'prog-common)
(require 'prog-c-cpp) (require 'prog-c-cpp)
......
;;; configs.el -- configurations for my Emacs
;;; Commentary:
;;; Code:
(defvar user/userconfig-file
(expand-file-name "cache/userconfig" user-emacs-directory))
(defvar user/custom-file
(expand-file-name "cache/custom.el" user-emacs-directory))
(defvar user/recentf-save-file
(expand-file-name "cache/recentf" user-emacs-directory))
(defvar user/save-place-file
(expand-file-name "cache/places" user-emacs-directory))
(defvar user/projectile-known-projects-file
(expand-file-name "cache/projectile-bookmarks.eld" user-emacs-directory))
(defvar user/projectile-cache-file
(expand-file-name "cache/projectile.cache" user-emacs-directory))
(defvar user/notes-dir "~/org"
"User defined notes directory.")
(defvar user/notes-extensions '("org" "md" "markdown"))
(defvar user/mode-line-format
(list
"%e" ;; print error message
mode-line-front-space
'(:eval evil-mode-line-tag) ;; Show evil mode.
mode-line-mule-info mode-line-client mode-line-modified
mode-line-remote
mode-line-frame-identification mode-line-buffer-identification ;; buffer files
mode-line-modes ;; Major mode and some important minor modes.
" "
mode-line-position ;; position of this buffer
;; " "
'(vc-mode vc-mode) ;; version control messages.
mode-line-misc-info mode-line-end-spaces))
(defvar elpa-pack-dir
(expand-file-name "elpa" user-emacs-directory )
"Packages install by package-initilize.")
(defvar default-package-mirror '(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("gnu" . "https://elpa.gnu.org/packages/"))
)
(defvar emacs-china-package-mirror '(("gnu" . "http://elpa.emacs-china.org/gnu/")
("melpa" . "http://elpa.emacs-china.org/melpa/")
("org" . "http://elpa.emacs-china.org/org/"))
)
(defvar user/package-mirror default-package-mirror)
(defvar user/nox-server-programs
'((rust-mode . (nox-rls "rls"))
((c++-mode c-mode) . ("clangd"))
(python-mode . ("pyls" "-v" "--tcp" "--host" "localhost" "--port" :autoport))
(haskell-mode . (nox-hie "hie-wrapper" "--lsp"))
))
(defvar user/nox-list
(list
'python-mode-hook
'c-mode-hook
'c-mode-common-hook
'c++-mode-hook
'haskell-mode-hook))
(defvar user/lsp-client 'nox
"If `nox' use nox as lsp client.
If `lsp-mode' use lsp-mode as lsp client.")
(provide 'configs)
;;; configs.el ends here
;;; functions.el -- my functions & macros
;;; Commentary:
;;; Code:
(defun open-init-file()
"Find and open the init.el."
(interactive)
(find-file (concat user-emacs-directory "init.el")))
(defun load-init-file()
"Load init.el."
(interactive)
(load-file (concat user-emacs-directory "init.el"))
)
(defun open-userconfig-file()
"Open userconfig."
(interactive)
(find-file user/userconfig-file))
(provide 'functions)
;;; functions.el ends here
...@@ -46,6 +46,9 @@ ...@@ -46,6 +46,9 @@
"e l" 'flycheck-list-errors "e l" 'flycheck-list-errors
;; jump mode ;; jump mode
"j i" 'imenu "j i" 'imenu
;; global
"o c" 'open-userconfig-file
"o i" 'open-init-file
) )
(evil-mode 1) (evil-mode 1)
......
;; -*- mode: emacs-lisp -*- ;; -*- mode: emacs-lisp -*-
(defvar user/custom-file (setq
(expand-file-name "cache/custom.el" user-emacs-directory)) ;; configs for Emacs variables which defined by user
(defvar user/recentf-save-file ;; user/custom-file
(expand-file-name "cache/recentf" user-emacs-directory)) ;; user/recentf-save-file
;; user/save-place-file
(defvar user/save-place-file ;; user/notes-dir
(expand-file-name "cache/places" user-emacs-directory)) ;; user/package-mirror
(defvar user/projectile-known-projects-file ;; user/lsp-client
(expand-file-name "cache/projectile-bookmarks.eld" user-emacs-directory)) )
(defvar user/projectile-cache-file
(expand-file-name "cache/projectile.cache" user-emacs-directory))
(defvar user/notes-dir "~/org"
"User defined notes directory.")
(defvar user/notes-extensions '("org" "md" "markdown"))
(defvar user/mode-line-format
(list
"%e" ;; print error message
mode-line-front-space
'(:eval evil-mode-line-tag) ;; Show evil mode.
mode-line-mule-info mode-line-client mode-line-modified
mode-line-remote
mode-line-frame-identification mode-line-buffer-identification ;; buffer files
mode-line-modes ;; Major mode and some important minor modes.
" "
mode-line-position ;; position of this buffer
;; " "
'(vc-mode vc-mode) ;; version control messages.
mode-line-misc-info mode-line-end-spaces))
(defvar elpa-pack-dir
(expand-file-name "elpa" user-emacs-directory )
"Packages install by package-initilize.")
(defvar default-package-mirror '(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("gnu" . "https://elpa.gnu.org/packages/")))
(defvar emacs-china-package-mirror '(("gnu" . "http://elpa.emacs-china.org/gnu/")
("melpa" . "http://elpa.emacs-china.org/melpa/")
("org" . "http://elpa.emacs-china.org/org/"))
)
(defvar user/package-mirror default-package-mirror)
(defvar user/nox-server-programs
'((rust-mode . (nox-rls "rls"))
((c++-mode c-mode) . ("clangd"))
(python-mode . ("pyls" "-v" "--tcp" "--host" "localhost" "--port" :autoport))
(haskell-mode . (nox-hie "hie-wrapper" "--lsp"))
))
(defvar user/nox-list
(list
'python-mode-hook
'c-mode-hook
'c-mode-common-hook
'c++-mode-hook
'haskell-mode-hook))
(defvar user/lsp-client 'nox
"If `nox' use nox as lsp client
If `lsp-mode' use lsp-mode as lsp client.")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment