summaryrefslogtreecommitdiff
path: root/.emacs.d/init.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r--.emacs.d/init.el113
1 files changed, 113 insertions, 0 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
new file mode 100644
index 0000000..7dbcae0
--- /dev/null
+++ b/.emacs.d/init.el
@@ -0,0 +1,113 @@
+(require 'package)
+(add-to-list 'package-archives
+ '("melpa" . "https://melpa.org/packages/") t)
+
+(setopt line-number-mode t)
+(setq display-line-numbers 'relative)
+
+(set-frame-font "Maple Mono NF CN-11:style=Regular" nil t)
+
+(use-package which-key
+ :ensure t
+ :config (which-key-mode))
+
+(use-package emacs
+ :config
+ (setq major-mode-remap-alist
+ '((yaml-mode . yaml-ts-mode)
+ (toml-mode . toml-ts-mode)
+ (bash-mode . bash-ts-mode)
+ (json-mode . json-ts-mode)
+ (css-mode . css-ts-mode)))
+
+ ;; for emacs-macport, use alt as meta instead of command
+ (setq mac-command-modifier 'super
+ ns-command-modifier 'super
+ mac-option-modifier 'meta
+ ns-option-modifier 'meta
+ mac-right-option-modifier 'none
+ ns-right-option-modifier 'none)
+ :hook
+ ;; Auto parenthesis matching
+ ((prog-mode . electric-pair-mode)
+ (compilation-filter . ansi-color-compilation-filter)))
+
+(use-package project
+ :custom
+ (when (>= emacs-major-version 30)
+ (project-mode-line t)))
+
+(use-package eat
+ :ensure t
+ :config
+ (eat-eshell-mode)
+ (eat-eshell-visual-command-mode))
+
+(use-package direnv
+ :ensure t
+ :custom (direnv-always-show-summary nil)
+ :config (direnv-mode))
+
+(use-package eglot
+ :ensure t)
+
+(use-package paredit
+ :ensure t
+ :mode (("\\.asm" . paredit-mode)
+ ("\\.el" . paredit-mode)))
+
+(use-package web-mode
+ :ensure t
+ :mode
+ (("\\.HTML\\'" . web-mode)
+ ("\\.css\\'" . web-mode)
+ ("\\.svelte" . web-mode))
+ :custom
+ (web-mode-markup-indent-offset 2)
+ (web-mode-css-indent-offset 2)
+ (web-mode-code-indent-offset 2))
+
+(use-package emmet-mode
+ :ensure t
+ :hook ((web-mode . emmet-mode)))
+
+(use-package magit
+ :ensure t)
+
+(use-package rust-mode
+ :ensure t
+ :hook (rust-mode . eglot-ensure))
+
+(use-package hl-line-mode
+ ;; use the builtin current-line highlighter
+ :hook ((prog-mode) (text-mode) (org-agenda-mode)))
+
+(use-package flyspell-mode
+ ;; https://www.emacswiki.org/emacs/FlySpell
+ :hook ((text-mode . flyspell-mode)
+ (prog-mode . flyspell-prog-mode)))
+
+(use-package emacs
+ :hook ((before-save . delete-trailing-whitespace))
+
+ :bind (("s-SPC" . cycle-spacing))
+
+ :custom
+ (use-short-answers t)
+ (dired-listing-switches "-AL --group-directories-first")
+ (tab-width 2)
+ (custom-file (concat user-emacs-directory "custom.el"))
+ (display-line-numbers 'relative)
+ (backup-directory-alist '(("." . "~/.ema:Cs.d/backups")))
+ (auto-save-default nil)
+
+ :config
+ (when (file-exists-p custom-file)
+ (load custom-file))
+ (set-scroll-bar-mode nil)
+ (setq-default indent-tabs-mode t)
+ (load-theme 'noctalia t)
+ (electric-indent-mode +1)
+ (setq ido-enable-flex-matching t)
+ (setq ido-everywhere t)
+ (fido-vertical-mode))