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 merge requests found
......@@ -24,40 +24,29 @@
(time-subtract after-init-time before-init-time)))
gcs-done)))
;; extract different file for emacs
(let ((config-file (expand-file-name "cache/userconfig" user-emacs-directory)))
(or (file-exists-p config-file)
(copy-file (concat user-emacs-directory "lisp/templates/userconfig.template")
config-file)
)
(load config-file)
;; add `lisp' to `load-path'.
(add-to-list 'load-path
(expand-file-name "lisp" user-emacs-directory))
;; load user configs.
(require 'configs)
(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)
(when (file-exists-p custom-file)
(load custom-file))
(add-to-list 'load-path
(expand-file-name "lisp" user-emacs-directory))
(require 'cl-lib)
(require 'cl-lib)
;; Language and coding
(set-language-environment "utf-8")
(set-keyboard-coding-system '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)
(defalias 'after-load 'with-eval-after-load)
......@@ -105,7 +94,6 @@
(show-paren-mode 1)
(delete-selection-mode 1)
(electric-pair-mode 1)
;; (popwin-mode 1)
(size-indication-mode t)
;; use y-n to replace yes-no
(fset 'yes-or-no-p 'y-or-n-p)
......@@ -297,6 +285,7 @@
:config
:diminish which-key-mode
)
(require 'functions)
(require 'keybindings)
(require 'prog-common)
(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 @@
"e l" 'flycheck-list-errors
;; jump mode
"j i" 'imenu
;; global
"o c" 'open-userconfig-file
"o i" 'open-init-file
)
(evil-mode 1)
......
;; -*- mode: emacs-lisp -*-
(defvar user/custom-file
(expand-file-name "cache/custom.el" user-emacs-directory))
(setq
;; configs for Emacs variables which defined by user
(defvar user/recentf-save-file
(expand-file-name "cache/recentf" user-emacs-directory))
;; user/custom-file
;; user/recentf-save-file
;; user/save-place-file
(defvar user/save-place-file
(expand-file-name "cache/places" user-emacs-directory))
;; user/notes-dir
;; user/package-mirror
(defvar user/projectile-known-projects-file
(expand-file-name "cache/projectile-bookmarks.eld" user-emacs-directory))
;; user/lsp-client
)
(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