Compare commits
14 Commits
a416bffb54
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a779a480c | ||
|
|
7fb855f332 | ||
|
|
b03af9e719 | ||
|
|
3490e9daa9 | ||
|
|
14ecd3b17a | ||
|
|
2fe4ba46e8 | ||
|
|
a47707a471 | ||
|
|
2b6faa0e39 | ||
|
|
c3b368711e | ||
|
|
154c0c3fb8 | ||
|
|
4607880ca4 | ||
|
|
204c683083 | ||
|
|
f2ec25c9d9 | ||
|
|
abaeeb6486 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -68,3 +68,4 @@ history
|
|||||||
/easysession
|
/easysession
|
||||||
/tramp-rpc
|
/tramp-rpc
|
||||||
/straight/
|
/straight/
|
||||||
|
/eaf/
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
#s(lsp-session ("/Users/zelongk/.emacs.d" "/Users/zelongk/programming/ocaml" "/Users/zelongk/uni/undergrad/26s1") nil #s(hash-table test equal) #s(hash-table test equal) #s(hash-table test equal))
|
|
||||||
@@ -10,14 +10,16 @@
|
|||||||
|
|
||||||
(setq package-enable-at-startup nil)
|
(setq package-enable-at-startup nil)
|
||||||
|
|
||||||
(setq native-comp-jit-compilation t)
|
(setq native-comp-jit-compilation nil)
|
||||||
(setq native-comp-async-report-warnings-errors nil)
|
(setq native-comp-async-report-warnings-errors nil)
|
||||||
|
|
||||||
(add-to-list 'load-path (expand-file-name "lisp/" user-emacs-directory))
|
(add-to-list 'load-path (expand-file-name "lisp/" user-emacs-directory))
|
||||||
|
(add-to-list 'load-path (expand-file-name "site-lisp/" user-emacs-directory))
|
||||||
(setq use-package-enable-imenu-support t)
|
(setq use-package-enable-imenu-support t)
|
||||||
(setq load-prefer-newer noninteractive)
|
(setq load-prefer-newer noninteractive)
|
||||||
|
|
||||||
(setenv "LSP_USE_PLISTS" "true") ;; Lsp-mode plists
|
(setenv "LSP_USE_PLISTS" "true") ;; Lsp-mode plists
|
||||||
|
(setenv "LIBGS" "/opt/homebrew/lib/libgs.dylib")
|
||||||
|
|
||||||
;; PERF: Many elisp file API calls consult `file-name-handler-alist'.
|
;; PERF: Many elisp file API calls consult `file-name-handler-alist'.
|
||||||
;; Setting it to nil speeds up startup significantly.
|
;; Setting it to nil speeds up startup significantly.
|
||||||
@@ -40,7 +42,7 @@
|
|||||||
inhibit-startup-screen t
|
inhibit-startup-screen t
|
||||||
inhibit-startup-echo-area-message user-login-name
|
inhibit-startup-echo-area-message user-login-name
|
||||||
inhibit-default-init t
|
inhibit-default-init t
|
||||||
initial-major-mode 'fundamental-mode
|
;; initial-major-mode 'l-mode
|
||||||
initial-scratch-message nil)
|
initial-scratch-message nil)
|
||||||
|
|
||||||
;; Faster to disable these here (before they've been initialized)
|
;; Faster to disable these here (before they've been initialized)
|
||||||
|
|||||||
10
init.el
10
init.el
@@ -17,8 +17,8 @@
|
|||||||
(delete-dups (append file-name-handler-alist default-handlers))))
|
(delete-dups (append file-name-handler-alist default-handlers))))
|
||||||
101)))
|
101)))
|
||||||
|
|
||||||
;; (require 'init-elpaca)
|
(require 'init-elpaca)
|
||||||
(require 'init-straight)
|
;; (require 'init-straight)
|
||||||
(require 'init-gc)
|
(require 'init-gc)
|
||||||
(require 'init-better-default)
|
(require 'init-better-default)
|
||||||
(require 'init-hydra)
|
(require 'init-hydra)
|
||||||
@@ -41,24 +41,26 @@
|
|||||||
|
|
||||||
(require 'init-input)
|
(require 'init-input)
|
||||||
(require 'init-utils)
|
(require 'init-utils)
|
||||||
|
;; (require 'init-eaf)
|
||||||
|
|
||||||
(require 'init-coding)
|
(require 'init-coding)
|
||||||
(require 'init-vcs)
|
(require 'init-vcs)
|
||||||
(require 'init-llm)
|
(require 'init-llm)
|
||||||
(require 'init-check)
|
(require 'init-check)
|
||||||
|
(require 'init-writing)
|
||||||
|
|
||||||
;; (require 'init-eglot)
|
;; (require 'init-eglot)
|
||||||
(require 'init-lsp)
|
(require 'init-lsp)
|
||||||
|
|
||||||
(require 'init-org)
|
(require 'init-org)
|
||||||
(require 'init-tex)
|
(require 'init-tex)
|
||||||
;; (require 'init-markdown)
|
|
||||||
(require 'init-typst)
|
|
||||||
(require 'init-cc)
|
(require 'init-cc)
|
||||||
(require 'init-python)
|
(require 'init-python)
|
||||||
(require 'init-haskell)
|
(require 'init-haskell)
|
||||||
(require 'init-rust)
|
(require 'init-rust)
|
||||||
(require 'init-ocaml)
|
(require 'init-ocaml)
|
||||||
|
(require 'init-typst)
|
||||||
|
|
||||||
|
|
||||||
(provide 'init)
|
(provide 'init)
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|||||||
@@ -1,17 +1,7 @@
|
|||||||
;; -*- lexical-binding: t -*-
|
;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
(use-package benchmark-init :demand t
|
(use-package benchmark-init :demand t
|
||||||
:hook (after-init . benchmark-init/deactivate))
|
:hook (elpaca-after-init . benchmark-init/deactivate))
|
||||||
|
|
||||||
(let (
|
|
||||||
;; 加载的时候临时增大`gc-cons-threshold'以加速启动速度。
|
|
||||||
(gc-cons-threshold most-positive-fixnum)
|
|
||||||
;; 清空避免加载远程文件的时候分析文件。
|
|
||||||
(file-name-handler-alist nil))
|
|
||||||
(require 'benchmark-init-modes)
|
|
||||||
(require 'benchmark-init)
|
|
||||||
(benchmark-init/activate)
|
|
||||||
)
|
|
||||||
|
|
||||||
;; Load some component of large package (org, magit etc.) before complete mount
|
;; Load some component of large package (org, magit etc.) before complete mount
|
||||||
(defvar elemacs-incremental-packages '(t)
|
(defvar elemacs-incremental-packages '(t)
|
||||||
@@ -98,20 +88,22 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
(exec-path-from-shell-initialize)))
|
(exec-path-from-shell-initialize)))
|
||||||
|
|
||||||
(setq custom-file (expand-file-name "~/.emacs.d/custom.el"))
|
(setq custom-file (expand-file-name "~/.emacs.d/custom.el"))
|
||||||
(add-hook 'after-init-hook (lambda () (load custom-file 'no-error 'no-message)))
|
(add-hook 'elpaca-after-init-hook (lambda () (load custom-file 'no-error 'no-message)))
|
||||||
|
|
||||||
;; Start server
|
;; Start server
|
||||||
(use-package server
|
(use-package server
|
||||||
|
:ensure nil
|
||||||
|
:autoload server-running-p
|
||||||
:hook (emacs-startup . (lambda ()
|
:hook (emacs-startup . (lambda ()
|
||||||
(unless server-mode
|
(unless (server-running-p)
|
||||||
(server-mode 1)))))
|
(server-mode 1)))))
|
||||||
|
|
||||||
;; Save place
|
|
||||||
(use-package saveplace
|
(use-package saveplace
|
||||||
:hook (after-init . save-place-mode))
|
:ensure nil
|
||||||
|
:hook (elpaca-after-init . save-place-mode))
|
||||||
|
|
||||||
(use-package display-line-numbers
|
(use-package display-line-numbers
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook (text-mode . display-line-numbers-mode)
|
:hook (text-mode . display-line-numbers-mode)
|
||||||
:hook (prog-mode . display-line-numbers-mode)
|
:hook (prog-mode . display-line-numbers-mode)
|
||||||
:config
|
:config
|
||||||
@@ -125,40 +117,42 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
(add-hook mode (lambda () (display-line-numbers-mode -1))))
|
(add-hook mode (lambda () (display-line-numbers-mode -1))))
|
||||||
(setq display-line-numbers-type 'relative)
|
(setq display-line-numbers-type 'relative)
|
||||||
)
|
)
|
||||||
(use-package del-trailing-white
|
|
||||||
:straight nil
|
;; (use-package del-trailing-white
|
||||||
:hook ((prog-mode markdown-mode conf-mode) . enable-trailing-whitespace)
|
;; :ensure nil
|
||||||
:init
|
;; :hook ((prog-mode markdown-mode conf-mode) . enable-trailing-whitespace)
|
||||||
(setq-default show-trailing-whitespace nil)
|
;; :init
|
||||||
(defun enable-trailing-whitespace ()
|
;; (setq-default show-trailing-whitespace nil)
|
||||||
"Show trailing spaces and delete on saving."
|
;; (defun enable-trailing-whitespace ()
|
||||||
(setq show-trailing-whitespace t)
|
;; "Show trailing spaces and delete on saving."
|
||||||
(add-hook 'before-save-hook #'delete-trailing-whitespace nil t))
|
;; (setq show-trailing-whitespace t)
|
||||||
)
|
;; (add-hook 'before-save-hook #'delete-trailing-whitespace nil t))
|
||||||
|
;; )
|
||||||
|
|
||||||
(use-package subword
|
(use-package subword
|
||||||
:straight nil
|
:ensure nil
|
||||||
:diminish
|
:diminish
|
||||||
:hook (prog-mode minibuffer-setup))
|
:hook (prog-mode minibuffer-setup))
|
||||||
|
|
||||||
(use-package paren
|
(use-package paren
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook (after-init . show-paren-mode))
|
:hook (elpaca-after-init . show-paren-mode))
|
||||||
|
|
||||||
;; ;; Show trailing whitespace only in prog-mode and text-mode
|
;; ;; Show trailing whitespace only in prog-mode and text-mode
|
||||||
;; (add-hook 'prog-mode-hook (lambda () (setq show-trailing-whitespace t)))
|
;; (add-hook 'prog-mode-hook (lambda () (setq show-trailing-whitespace t)))
|
||||||
;; (add-hook 'text-mode-hook (lambda () (setq show-trailing-whitespace t)))
|
;; (add-hook 'text-mode-hook (lambda () (setq show-trailing-whitespace t)))
|
||||||
|
|
||||||
(use-package recentf
|
(use-package recentf
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook (after-init . recentf-mode)
|
:hook (elpaca-after-init . recentf-mode)
|
||||||
:init
|
:init
|
||||||
(setq recentf-max-saved-items 500
|
(setq recentf-max-saved-items 500
|
||||||
recentf-exclude
|
recentf-exclude
|
||||||
'("\\.?cache" ".cask" "url" "COMMIT_EDITMSG\\'" "bookmarks"
|
'("\\.?cache" ".cask" "url" "COMMIT_EDITMSG\\'" "bookmarks"
|
||||||
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
|
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
|
||||||
"\\.?ido\\.last$" "\\.revive$" "/G?TAGS$" "/.elfeed/"
|
"\\.?ido\\.last$" "\\.revive$" "/G?TAGS$" "/.elfeed/"
|
||||||
"^/tmp/" "^/var/folders/.+$" "^/ssh:" "/persp-confs/"
|
"^/tmp/" "^/var/folders/.+$" "^/ssh:" "^/rpc:" "/persp-confs/"
|
||||||
|
"^/sshx:" "^/sudo:"
|
||||||
(lambda (file) (file-in-directory-p file package-user-dir)))
|
(lambda (file) (file-in-directory-p file package-user-dir)))
|
||||||
recentf-auto-cleanup 'never)
|
recentf-auto-cleanup 'never)
|
||||||
:config
|
:config
|
||||||
@@ -166,8 +160,8 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
(add-to-list 'recentf-filename-handlers #'abbreviate-file-name))
|
(add-to-list 'recentf-filename-handlers #'abbreviate-file-name))
|
||||||
|
|
||||||
(use-package savehist
|
(use-package savehist
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook (after-init . savehist-mode)
|
:hook (elpaca-after-init . savehist-mode)
|
||||||
:init (setq enable-recursive-minibuffers t ; Allow commands in minibuffers
|
:init (setq enable-recursive-minibuffers t ; Allow commands in minibuffers
|
||||||
history-length 1000
|
history-length 1000
|
||||||
savehist-additional-variables '(mark-ring
|
savehist-additional-variables '(mark-ring
|
||||||
@@ -181,7 +175,12 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
(setq kill-whole-line t)
|
(setq kill-whole-line t)
|
||||||
(setq make-backup-files nil)
|
(setq make-backup-files nil)
|
||||||
(setq use-short-answers t)
|
(setq use-short-answers t)
|
||||||
;; (setq frame-title-format "\n")
|
(setq frame-title-format
|
||||||
|
'((:eval (if (and (boundp 'projectile-mode)
|
||||||
|
projectile-mode
|
||||||
|
(projectile-project-p))
|
||||||
|
(format "[%s] %s" (projectile-project-name) (buffer-name)) ;; Add project name in front when avaliable
|
||||||
|
"%b")))) ;; Otherwise buffer name only
|
||||||
(setq custom-safe-themes t)
|
(setq custom-safe-themes t)
|
||||||
|
|
||||||
(add-to-list 'default-frame-alist '(drag-internal-border . 1))
|
(add-to-list 'default-frame-alist '(drag-internal-border . 1))
|
||||||
@@ -202,14 +201,6 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
x-stretch-cursor t
|
x-stretch-cursor t
|
||||||
window-combination-resize t)
|
window-combination-resize t)
|
||||||
|
|
||||||
(define-key global-map (kbd "C-<wheel-up>") nil)
|
|
||||||
(define-key global-map (kbd "C-<wheel-down>") nil)
|
|
||||||
(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选
|
|
||||||
(global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制
|
|
||||||
(global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存
|
|
||||||
(global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴
|
|
||||||
(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销
|
|
||||||
|
|
||||||
(setq kill-ring-max 200)
|
(setq kill-ring-max 200)
|
||||||
;; Save clipboard contents into kill-ring before replace them
|
;; Save clipboard contents into kill-ring before replace them
|
||||||
(setq save-interprogram-paste-before-kill t)
|
(setq save-interprogram-paste-before-kill t)
|
||||||
@@ -221,7 +212,7 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
|
|
||||||
(use-package browse-kill-ring
|
(use-package browse-kill-ring
|
||||||
:bind ("C-c k" . browse-kill-ring)
|
:bind ("C-c k" . browse-kill-ring)
|
||||||
:hook (after-init . browse-kill-ring-default-keybindings)
|
:hook (elpaca-after-init . browse-kill-ring-default-keybindings)
|
||||||
:init (setq browse-kill-ring-separator "────────────────"
|
:init (setq browse-kill-ring-separator "────────────────"
|
||||||
browse-kill-ring-separator-face 'shadow))
|
browse-kill-ring-separator-face 'shadow))
|
||||||
|
|
||||||
@@ -229,7 +220,7 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
:init
|
:init
|
||||||
(setq scroll-conservatively 3
|
(setq scroll-conservatively 3
|
||||||
scroll-margin 0)
|
scroll-margin 0)
|
||||||
:hook (after-init . ultra-scroll-mode))
|
:hook (elpaca-after-init . ultra-scroll-mode))
|
||||||
|
|
||||||
(use-package helpful
|
(use-package helpful
|
||||||
:bind (([remap describe-function] . helpful-callable)
|
:bind (([remap describe-function] . helpful-callable)
|
||||||
@@ -269,17 +260,16 @@ If this is a daemon session, load them all immediately instead."
|
|||||||
;; (setq auto-save-file-name-transforms
|
;; (setq auto-save-file-name-transforms
|
||||||
;; `((".*" ,(concat user-emacs-directory "auto-save/") t)))
|
;; `((".*" ,(concat user-emacs-directory "auto-save/") t)))
|
||||||
|
|
||||||
(setq tramp-default-method "rpc")
|
|
||||||
|
|
||||||
(use-package tramp
|
(use-package tramp
|
||||||
:straight (:type built-in))
|
:config
|
||||||
|
(setq tramp-default-method "rpc"))
|
||||||
|
|
||||||
(use-package tramp-hlo
|
(use-package tramp-hlo
|
||||||
:config
|
:hook (elpaca-after-init . tramp-hlo-setup))
|
||||||
(tramp-hlo-setup))
|
|
||||||
|
|
||||||
|
(use-package msgpack)
|
||||||
(use-package tramp-rpc
|
(use-package tramp-rpc
|
||||||
:straight (tramp-rpc :host github :repo "ArthurHeymans/emacs-tramp-rpc")
|
:ensure (tramp-rpc :host github :repo "ArthurHeymans/emacs-tramp-rpc")
|
||||||
:config
|
:config
|
||||||
(tramp-rpc-magit-enable)
|
(tramp-rpc-magit-enable)
|
||||||
(tramp-rpc-projectile-enable))
|
(tramp-rpc-projectile-enable))
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
;; -*- lexical-binding: t -*-
|
;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
(define-prefix-command 'orgmode-map)
|
(define-key global-map (kbd "C-<wheel-up>") nil)
|
||||||
(global-set-key (kbd "C-c n") 'orgmode-map)
|
(define-key global-map (kbd "C-<wheel-down>") nil)
|
||||||
|
(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选
|
||||||
(define-key orgmode-map (kbd "a") #'org-agenda)
|
(global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制
|
||||||
(define-key orgmode-map (kbd "n") #'org-capture)
|
(global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存
|
||||||
(define-key orgmode-map (kbd "t") #'org-todo-list)
|
(global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴
|
||||||
|
(global-set-key (kbd "s-x") 'execute-extended-command) ;对应Windows上面的Ctrol-z 撤销
|
||||||
|
(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销
|
||||||
|
|
||||||
(setq duplicate-line-final-position 1)
|
(setq duplicate-line-final-position 1)
|
||||||
(global-set-key (kbd "M-p") #'duplicate-dwim)
|
(global-set-key (kbd "M-p") #'duplicate-dwim)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(use-package cc-mode
|
(use-package cc-mode
|
||||||
:straight nil
|
:ensure nil
|
||||||
:init (setq-default c-basic-offset 2))
|
:init (setq-default c-basic-offset 2))
|
||||||
|
|
||||||
|
|
||||||
(when (treesit-available-p)
|
(when (treesit-available-p)
|
||||||
(use-package c-ts-mode
|
(use-package c-ts-mode
|
||||||
:straight nil
|
:ensure nil
|
||||||
:functions treesit-available-p
|
:functions treesit-available-p
|
||||||
:init
|
:init
|
||||||
(setq c-ts-mode-indent-offset 2)
|
(setq c-ts-mode-indent-offset 2)
|
||||||
|
|||||||
@@ -20,13 +20,13 @@
|
|||||||
;; Display errors a little quicker (default is 0.9s)
|
;; Display errors a little quicker (default is 0.9s)
|
||||||
flycheck-display-errors-delay 0.25))
|
flycheck-display-errors-delay 0.25))
|
||||||
|
|
||||||
(use-package flyover
|
;; (use-package flyover
|
||||||
:diminish
|
;; :diminish
|
||||||
:hook prog-mode
|
;; :hook prog-mode
|
||||||
:config
|
;; :config
|
||||||
;; Disable flyover-mode in emacs-lisp-mode
|
;; ;; Disable flyover-mode in emacs-lisp-mode
|
||||||
(add-hook 'emacs-lisp-mode-hook (lambda () (flyover-mode -1)))
|
;; (add-hook 'emacs-lisp-mode-hook (lambda () (flyover-mode -1)))
|
||||||
:custom (flyover-checkers '(flycheck)))
|
;; :custom (flyover-checkers '(flycheck)))
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-check)
|
(provide 'init-check)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
;; -*- lexical-binding: t -*-
|
;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
(use-package xref
|
(use-package xref
|
||||||
|
:ensure nil
|
||||||
:init
|
:init
|
||||||
;; Use faster search tool
|
;; Use faster search tool
|
||||||
(when (executable-find "rg")
|
(when (executable-find "rg")
|
||||||
@@ -10,43 +11,17 @@
|
|||||||
(setq xref-show-definitions-function #'xref-show-definitions-completing-read
|
(setq xref-show-definitions-function #'xref-show-definitions-completing-read
|
||||||
xref-show-xrefs-function #'xref-show-definitions-completing-read))
|
xref-show-xrefs-function #'xref-show-definitions-completing-read))
|
||||||
|
|
||||||
(use-package apheleia
|
(use-package apheleia :diminish
|
||||||
:diminish
|
:hook (prog-mode))
|
||||||
:hook (after-init . apheleia-global-mode))
|
|
||||||
|
|
||||||
(use-package editorconfig
|
(use-package editorconfig
|
||||||
:diminish
|
:diminish
|
||||||
:hook after-init)
|
:hook elpaca-after-init)
|
||||||
|
|
||||||
(use-package cask-mode)
|
|
||||||
(use-package csv-mode)
|
|
||||||
(use-package cue-sheet-mode)
|
|
||||||
(use-package dart-mode)
|
|
||||||
(use-package lua-mode)
|
|
||||||
(use-package v-mode)
|
|
||||||
(use-package vimrc-mode)
|
|
||||||
(use-package julia-ts-mode)
|
|
||||||
(use-package scala-ts-mode)
|
|
||||||
(use-package yaml-ts-mode
|
|
||||||
|
|
||||||
:mode ("\\.yaml\\'" . yaml-ts-mode))
|
|
||||||
|
|
||||||
;; Fish shell mode and auto-formatting
|
|
||||||
(use-package fish-mode
|
|
||||||
:commands fish_indent-before-save
|
|
||||||
:defines eglot-server-programs
|
|
||||||
:hook (fish-mode . (lambda ()
|
|
||||||
"Integrate `fish_indent` formatting with Fish shell mode."
|
|
||||||
(add-hook 'before-save-hook #'fish_indent-before-save)))
|
|
||||||
:config
|
|
||||||
(with-eval-after-load 'eglot
|
|
||||||
(add-to-list 'eglot-server-programs
|
|
||||||
'(fish-mode . ("fish-lsp" "start")))))
|
|
||||||
|
|
||||||
(use-package docker-compose-mode)
|
(use-package docker-compose-mode)
|
||||||
|
|
||||||
(use-package treesit-auto
|
(use-package treesit-auto
|
||||||
:hook (after-init . global-treesit-auto-mode)
|
:hook (elpaca-after-init . global-treesit-auto-mode)
|
||||||
:custom
|
:custom
|
||||||
(treesit-auto-install 'prompt)
|
(treesit-auto-install 'prompt)
|
||||||
:config
|
:config
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
;; Optionally use the `orderless' completion style.
|
;; Optionally use the `orderless' completion style.
|
||||||
(use-package orderless
|
(use-package orderless
|
||||||
:custom
|
:custom
|
||||||
(completion-styles '(orderless basic))
|
(completion-styles '(orderless partial-completion basic))
|
||||||
(completion-category-defaults nil)
|
(completion-category-defaults nil)
|
||||||
(completion-category-overrides '((file (styles orderless partial-completion))))
|
(completion-category-overrides '((file (styles orderless partial-completion))))
|
||||||
(orderless-component-separator #'orderless-escapable-split-on-space))
|
(orderless-component-separator #'orderless-escapable-split-on-space))
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
("RET" . vertico-directory-enter)
|
("RET" . vertico-directory-enter)
|
||||||
("DEL" . vertico-directory-delete-char)
|
("DEL" . vertico-directory-delete-char)
|
||||||
("M-DEL" . vertico-directory-delete-word))
|
("M-DEL" . vertico-directory-delete-word))
|
||||||
:hook (after-init . vertico-mode)
|
:hook (elpaca-after-init . vertico-mode)
|
||||||
:hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
|
:hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
|
||||||
|
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
;; :hook (vertico-mode . vertico-posframe-mode))
|
;; :hook (vertico-mode . vertico-posframe-mode))
|
||||||
|
|
||||||
(use-package vertico-multiform
|
(use-package vertico-multiform
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook (vertico-mode . vertico-multiform-mode)
|
:hook (vertico-mode . vertico-multiform-mode)
|
||||||
:config
|
:config
|
||||||
(defvar +vertico-transform-functions nil)
|
(defvar +vertico-transform-functions nil)
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
|
|
||||||
;; Enrich existing commands with completion annotations
|
;; Enrich existing commands with completion annotations
|
||||||
(use-package marginalia
|
(use-package marginalia
|
||||||
:hook (after-init . marginalia-mode))
|
:hook (elpaca-after-init . marginalia-mode))
|
||||||
|
|
||||||
|
|
||||||
;; Add icons to completion candidates
|
;; Add icons to completion candidates
|
||||||
@@ -117,6 +117,7 @@
|
|||||||
([remap Info-search] . consult-info)
|
([remap Info-search] . consult-info)
|
||||||
;; ([remap isearch-forward] . consult-line)
|
;; ([remap isearch-forward] . consult-line)
|
||||||
([remap recentf-open-files] . consult-recent-file)
|
([remap recentf-open-files] . consult-recent-file)
|
||||||
|
([remap bookmark-jump] . consult-bookmark)
|
||||||
("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
|
("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
|
||||||
;; Custom M-# bindings for fast register access
|
;; Custom M-# bindings for fast register access
|
||||||
("M-#" . consult-register-load)
|
("M-#" . consult-register-load)
|
||||||
@@ -162,7 +163,6 @@
|
|||||||
(setq xref-show-xrefs-function #'consult-xref
|
(setq xref-show-xrefs-function #'consult-xref
|
||||||
xref-show-definitions-function #'consult-xref))
|
xref-show-definitions-function #'consult-xref))
|
||||||
|
|
||||||
;; (use-package consult-projectile)
|
|
||||||
(use-package consult-flycheck)
|
(use-package consult-flycheck)
|
||||||
|
|
||||||
(use-package consult-dir
|
(use-package consult-dir
|
||||||
@@ -236,6 +236,7 @@
|
|||||||
circe-mode
|
circe-mode
|
||||||
help-mode
|
help-mode
|
||||||
gud-mode
|
gud-mode
|
||||||
|
eat-mode
|
||||||
vterm-mode)
|
vterm-mode)
|
||||||
t))
|
t))
|
||||||
:custom-face
|
:custom-face
|
||||||
@@ -251,14 +252,13 @@
|
|||||||
(advice-add #'persistent-scratch-save :before #'corfu-quit)
|
(advice-add #'persistent-scratch-save :before #'corfu-quit)
|
||||||
(add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer))
|
(add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer))
|
||||||
|
|
||||||
;; (use-package nerd-icons-corfu
|
(use-package nerd-icons-corfu
|
||||||
;; :init
|
:init
|
||||||
;; (with-eval-after-load 'corfu
|
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
||||||
;; (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)))
|
|
||||||
|
|
||||||
;; A few more useful configurations...
|
;; A few more useful configurations...
|
||||||
(use-package emacs
|
(use-package emacs
|
||||||
:straight nil
|
:ensure nil
|
||||||
:custom
|
:custom
|
||||||
;; TAB cycle if there are only few candidates
|
;; TAB cycle if there are only few candidates
|
||||||
;; (completion-cycle-threshold 3)
|
;; (completion-cycle-threshold 3)
|
||||||
@@ -294,10 +294,6 @@
|
|||||||
;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive)
|
;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive)
|
||||||
(advice-add 'pcomplete-completions-at-point :around #'cape-wrap-nonexclusive))
|
(advice-add 'pcomplete-completions-at-point :around #'cape-wrap-nonexclusive))
|
||||||
|
|
||||||
;; (use-package yasnippet-capf
|
|
||||||
;; :after cape
|
|
||||||
;; :config
|
|
||||||
;; (add-to-list 'completion-at-point-functions #'yasnippet-capf))
|
|
||||||
|
|
||||||
(provide 'init-completion)
|
(provide 'init-completion)
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
(use-package dashboard
|
(use-package dashboard
|
||||||
:init
|
:init
|
||||||
(use-package doom-dashboard
|
(use-package doom-dashboard
|
||||||
:straight (doom-dashboard :host github
|
:ensure (doom-dashboard :host github
|
||||||
:repo "emacs-dashboard/doom-dashboard")
|
:repo "emacs-dashboard/doom-dashboard")
|
||||||
:demand t
|
:demand t
|
||||||
;; Movement keys like doom.
|
;; Movement keys like doom.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
;; -*- lexical-binding: t -*-
|
;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
(use-package dired
|
(use-package dired
|
||||||
:straight nil
|
:ensure nil
|
||||||
:bind (:map dired-mode-map
|
:bind (:map dired-mode-map
|
||||||
("C-c C-p" . wdired-change-to-wdired-mode)
|
("C-c C-p" . wdired-change-to-wdired-mode)
|
||||||
("b" . dired-up-directory))
|
("b" . dired-up-directory))
|
||||||
@@ -9,11 +9,13 @@
|
|||||||
;; Always delete and copy recursively
|
;; Always delete and copy recursively
|
||||||
(setq dired-recursive-deletes 'always
|
(setq dired-recursive-deletes 'always
|
||||||
dired-recursive-copies 'always
|
dired-recursive-copies 'always
|
||||||
|
dired-dwim-target t
|
||||||
dired-kill-when-opening-new-dired-buffer t)
|
dired-kill-when-opening-new-dired-buffer t)
|
||||||
|
|
||||||
;; Show directory first
|
;; Show directory first
|
||||||
(setq dired-listing-switches "-alh --group-directories-first"
|
(setq dired-listing-switches "-alh --group-directories-first"
|
||||||
dired-use-ls-dired t)
|
dired-use-ls-dired t))
|
||||||
|
|
||||||
|
|
||||||
;; Colorful dired
|
;; Colorful dired
|
||||||
(use-package diredfl
|
(use-package diredfl
|
||||||
@@ -21,26 +23,16 @@
|
|||||||
:hook dired-mode
|
:hook dired-mode
|
||||||
:hook dirvish-directory-view-mode)
|
:hook dirvish-directory-view-mode)
|
||||||
|
|
||||||
|
|
||||||
;; Extra Dired functionality
|
;; Extra Dired functionality
|
||||||
(use-package dired-aux :straight nil))
|
(use-package dired-aux :ensure nil)
|
||||||
|
|
||||||
(use-package nerd-icons-dired
|
(use-package nerd-icons-dired
|
||||||
:diminish
|
:diminish
|
||||||
:functions (nerd-icons-icon-for-dir my-nerd-icons-icon-for-dir)
|
:hook
|
||||||
:hook dired-mode
|
(dired-mode . nerd-icons-dired-mode))
|
||||||
:init
|
|
||||||
(defface nerd-icons-dired-dir-face
|
|
||||||
'((t (:inherit 'font-lock-doc-face)))
|
|
||||||
"Face for the directory icon."
|
|
||||||
:group 'nerd-icons-faces)
|
|
||||||
(defun my-nerd-icons-icon-for-dir (dir)
|
|
||||||
(nerd-icons-icon-for-dir dir :face 'nerd-icons-dired-dir-face))
|
|
||||||
(setq nerd-icons-dired-dir-icon-function #'my-nerd-icons-icon-for-dir))
|
|
||||||
|
|
||||||
;; (use-package dirvish
|
;; (use-package dirvish
|
||||||
;; :bind ("C-c o p" . dirvish-side)
|
;; :bind ("C-c o p" . dirvish-side)
|
||||||
;; :init (dirvish-override-dired-mode)
|
|
||||||
;; :config
|
;; :config
|
||||||
;; (setq dirvish-use-header-line nil
|
;; (setq dirvish-use-header-line nil
|
||||||
;; dirvish-use-mode-line nil))
|
;; dirvish-use-mode-line nil))
|
||||||
|
|||||||
28
lisp/init-eaf.el
Normal file
28
lisp/init-eaf.el
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package eaf
|
||||||
|
:defer nil
|
||||||
|
:load-path "~/.emacs.d/site-lisp/emacs-application-framework/"
|
||||||
|
:custom ; See https://github.com/emacs-eaf/emacs-application-framework/wiki/Customization
|
||||||
|
(eaf-browser-continue-where-left-off t)
|
||||||
|
(eaf-browser-enable-adblocker t)
|
||||||
|
;; (browse-url-browser-function 'eaf-open-browser)
|
||||||
|
:defines eaf-pdf-viewer-keybinding
|
||||||
|
:config
|
||||||
|
(require 'eaf-pdf-viewer)
|
||||||
|
(require 'eaf-music-player)
|
||||||
|
;; (require 'eaf-jupyter)
|
||||||
|
(require 'eaf-mindmap)
|
||||||
|
(require 'eaf-markdown-previewer)
|
||||||
|
(require 'eaf-system-monitor)
|
||||||
|
(require 'eaf-js-video-player)
|
||||||
|
(require 'eaf-image-viewer)
|
||||||
|
(eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding)
|
||||||
|
(eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'init-eaf)
|
||||||
@@ -1,64 +1,64 @@
|
|||||||
;; -*- lexical-binding: t -*-
|
;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
(use-package delsel
|
(use-package delsel
|
||||||
:hook (after-init . delete-selection-mode))
|
:ensure nil
|
||||||
|
:hook (elpaca-after-init . delete-selection-mode))
|
||||||
|
|
||||||
(use-package smartparens
|
(use-package electric-pair-mode
|
||||||
:diminish
|
:ensure nil
|
||||||
:hook (after-init . smartparens-global-mode)
|
:hook elpaca-after-init
|
||||||
:init (sp-use-paredit-bindings)
|
|
||||||
:config
|
:config
|
||||||
;; Autopair quotes more conservatively; if I'm next to a word/before another
|
(dolist (mode '(LaTeX-mode-hook org-mode-hook))
|
||||||
;; quote, I don't want to open a new pair or it would unbalance them.
|
(add-hook mode
|
||||||
(let ((unless-list '(sp-point-before-word-p
|
(lambda ()
|
||||||
sp-point-after-word-p
|
(setq-local electric-pair-pairs
|
||||||
sp-point-before-same-p)))
|
(append electric-pair-pairs '((?\\ . ?\\))))
|
||||||
(sp-pair "'" nil :unless unless-list)
|
(setq-local electric-pair-text-pairs electric-pair-pairs)))))
|
||||||
(sp-pair "\"" nil :unless unless-list))
|
|
||||||
(dolist (brace '("(" "{" "["))
|
|
||||||
(sp-pair brace nil
|
|
||||||
:post-handlers '(("||\n[i]" "RET") ("| " "SPC"))
|
|
||||||
;; Don't autopair opening braces if before a word character or
|
|
||||||
;; other opening brace. The rationale: it interferes with manual
|
|
||||||
;; balancing of braces, and is odd form to have s-exps with no
|
|
||||||
;; whitespace in between, e.g. ()()(). Insert whitespace if
|
|
||||||
;; genuinely want to start a new form in the middle of a word.
|
|
||||||
:unless '(sp-point-before-word-p sp-point-before-same-p)))
|
|
||||||
|
|
||||||
(sp-local-pair sp-lisp-modes "(" ")" :unless '(:rem sp-point-before-same-p))
|
(use-package puni
|
||||||
|
:hook (elpaca-after-init . puni-global-mode)
|
||||||
|
:custom
|
||||||
|
(puni-confirm-when-delete-unbalanced-active-region nil)
|
||||||
|
:bind (:map puni-mode-map
|
||||||
|
("M-s" . puni-splice)
|
||||||
|
("DEL" . my-backspace)
|
||||||
|
("C-=" . puni-expand-region)
|
||||||
|
)
|
||||||
|
:init
|
||||||
|
(defun my-backspace ()
|
||||||
|
(interactive)
|
||||||
|
(if (looking-back (rx line-start (+ blank)))
|
||||||
|
(delete-region (line-beginning-position) (point))
|
||||||
|
(puni-backward-delete-char))))
|
||||||
|
|
||||||
;; Don't do square-bracket space-expansion where it doesn't make sense to
|
;; (use-package combobulate
|
||||||
(sp-local-pair '(emacs-lisp-mode org-mode markdown-mode markdown-ts-mode gfm-mode)
|
;; :ensure (:host github :repo "mickeynp/combobulate")
|
||||||
"[" nil :post-handlers '(:rem ("| " "SPC"))))
|
;; :hook prog-mode
|
||||||
|
;; :config
|
||||||
|
;; ;; You can customize Combobulate's key prefix here.
|
||||||
;; ;; Hungry deletion
|
;; ;; Note that you may have to restart Emacs for this to take effect!
|
||||||
;; (use-package hungry-delete
|
;; (setq combobulate-key-prefix "C-c o")
|
||||||
;; :diminish
|
;; )
|
||||||
;; :hook (after-init . global-hungry-delete-mode)
|
|
||||||
;; :init (setq hungry-delete-chars-to-skip " \t\f\v"
|
|
||||||
;; hungry-delete-except-modes
|
|
||||||
;; '(help-mode minibuffer-mode minibuffer-inactive-mode calc-mode)))
|
|
||||||
|
|
||||||
(use-package abbrev
|
(use-package abbrev
|
||||||
:straight nil
|
:ensure nil
|
||||||
:diminish
|
:diminish
|
||||||
:config
|
:config
|
||||||
(setq-default abbrev-mode t)
|
(setq-default abbrev-mode t)
|
||||||
(setq abbrev-file-name (expand-file-name "abbrev.el" user-emacs-directory)))
|
(setq abbrev-file-name (expand-file-name "abbrev.el" user-emacs-directory)))
|
||||||
|
|
||||||
(use-package autorevert
|
(use-package autorevert
|
||||||
:straight nil
|
:ensure nil
|
||||||
:diminish
|
:diminish
|
||||||
:hook (after-init . global-auto-revert-mode))
|
:hook (elpaca-after-init . global-auto-revert-mode))
|
||||||
|
|
||||||
(use-package goto-addr
|
(use-package goto-addr
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook ((text-mode . goto-address-mode)
|
:hook ((text-mode . goto-address-mode)
|
||||||
(prog-mode . goto-address-prog-mode)))
|
(prog-mode . goto-address-prog-mode)))
|
||||||
|
|
||||||
(use-package multiple-cursors
|
(use-package multiple-cursors
|
||||||
:hook prog-mode
|
:hook elpaca-after-init
|
||||||
:bind (("C-S-c C-S-c" . mc/edit-lines)
|
:bind (("C-S-c C-S-c" . mc/edit-lines)
|
||||||
("C->" . mc/mark-next-like-this)
|
("C->" . mc/mark-next-like-this)
|
||||||
("C-<" . mc/mark-previous-like-this)
|
("C-<" . mc/mark-previous-like-this)
|
||||||
@@ -70,8 +70,8 @@
|
|||||||
:map mc/keymap
|
:map mc/keymap
|
||||||
("C-|" . mc/vertical-align-with-space)))
|
("C-|" . mc/vertical-align-with-space)))
|
||||||
|
|
||||||
(use-package expand-region
|
;; (use-package expand-region
|
||||||
:bind ("C-=" . er/expand-region))
|
;; :bind ("C-=" . er/expand-region))
|
||||||
|
|
||||||
(use-package mwim
|
(use-package mwim
|
||||||
:bind (([remap move-beginning-of-line] . mwim-beginning)
|
:bind (([remap move-beginning-of-line] . mwim-beginning)
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
(use-package ace-pinyin
|
(use-package ace-pinyin
|
||||||
:diminish
|
:diminish
|
||||||
:hook (after-init . ace-pinyin-global-mode))
|
:hook (elpaca-after-init . ace-pinyin-global-mode))
|
||||||
|
|
||||||
;; show number of matches
|
;; show number of matches
|
||||||
(use-package anzu
|
(use-package anzu
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
:map isearch-mode-map
|
:map isearch-mode-map
|
||||||
([remap isearch-query-replace] . anzu-isearch-query-replace)
|
([remap isearch-query-replace] . anzu-isearch-query-replace)
|
||||||
([remap isearch-query-replace-regexp] . anzu-isearch-query-replace-regexp))
|
([remap isearch-query-replace-regexp] . anzu-isearch-query-replace-regexp))
|
||||||
:hook (after-init . global-anzu-mode))
|
:hook (elpaca-after-init . global-anzu-mode))
|
||||||
|
|
||||||
;; Goto last change
|
;; Goto last change
|
||||||
(use-package goto-chg
|
(use-package goto-chg
|
||||||
@@ -116,11 +116,11 @@
|
|||||||
|
|
||||||
;; Remember undo history
|
;; Remember undo history
|
||||||
(use-package undo-fu-session
|
(use-package undo-fu-session
|
||||||
:hook (after-init . undo-fu-session-global-mode))
|
:hook (elpaca-after-init . undo-fu-session-global-mode))
|
||||||
|
|
||||||
;; Process
|
;; Process
|
||||||
(use-package proced
|
(use-package proced
|
||||||
:straight nil
|
:ensure nil
|
||||||
:init
|
:init
|
||||||
(setq-default proced-format 'verbose)
|
(setq-default proced-format 'verbose)
|
||||||
(setq proced-auto-update-flag t
|
(setq proced-auto-update-flag t
|
||||||
@@ -130,11 +130,11 @@
|
|||||||
(use-package olivetti
|
(use-package olivetti
|
||||||
:hook org-mode
|
:hook org-mode
|
||||||
:diminish
|
:diminish
|
||||||
:bind ("<f7>" . olivetti-mode)
|
:bind (("<f7>" . olivetti-mode))
|
||||||
:custom
|
:custom
|
||||||
(olivetti-style 'fancy)
|
(olivetti-style 'fancy)
|
||||||
(olivetti-margin-width 5)
|
(olivetti-margin-width 5)
|
||||||
(olivetti-body-width 90))
|
(olivetti-body-width 80))
|
||||||
|
|
||||||
(setq-default bidi-display-reordering 'left-to-right
|
(setq-default bidi-display-reordering 'left-to-right
|
||||||
bidi-paragraph-direction 'left-to-right
|
bidi-paragraph-direction 'left-to-right
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
eglot-code-action-indications '(eldoc-hint)))
|
eglot-code-action-indications '(eldoc-hint)))
|
||||||
|
|
||||||
(use-package eglot-booster
|
(use-package eglot-booster
|
||||||
:straight (eglot-booster :type git :host nil :repo "https://github.com/jdtsmith/eglot-booster")
|
:ensure (eglot-booster :type git :host nil :repo "https://github.com/jdtsmith/eglot-booster")
|
||||||
:after eglot
|
:after eglot
|
||||||
:config (eglot-booster-mode))
|
:config (eglot-booster-mode))
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
(use-package eldoc
|
(use-package eldoc
|
||||||
:after eglot
|
:after eglot
|
||||||
:straight nil
|
:ensure nil
|
||||||
:diminish)
|
:diminish)
|
||||||
|
|
||||||
(use-package eldoc-mouse
|
(use-package eldoc-mouse
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
;;;;;;;;;;;; elpaca initialise ;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;; elpaca initialise ;;;;;;;;;;;;;;;;;;
|
||||||
(defvar elpaca-installer-version 0.12)
|
(defvar elpaca-installer-version 0.12)
|
||||||
(defvar elpaca-directory (expand-file-name "elpa/" user-emacs-directory))
|
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
|
||||||
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
|
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
|
||||||
(defvar elpaca-sources-directory (expand-file-name "sources/" elpaca-directory))
|
(defvar elpaca-sources-directory (expand-file-name "sources/" elpaca-directory))
|
||||||
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
|
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
|
||||||
:ref nil :depth 1 :inherit ignore
|
:ref nil :depth 1 :inherit ignore
|
||||||
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
|
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
|
||||||
:build (:not elpaca-activate)))
|
:build (:not elpaca-activate)))
|
||||||
(let* ((repo (expand-file-name "elpa/" elpaca-sources-directory))
|
(let* ((repo (expand-file-name "elpaca/" elpaca-sources-directory))
|
||||||
(build (expand-file-name "elpa/" elpaca-builds-directory))
|
(build (expand-file-name "elpaca/" elpaca-builds-directory))
|
||||||
(order (cdr elpaca-order))
|
(order (cdr elpaca-order))
|
||||||
(default-directory repo))
|
(default-directory repo))
|
||||||
(add-to-list 'load-path (if (file-exists-p build) build repo))
|
(add-to-list 'load-path (if (file-exists-p build) build repo))
|
||||||
@@ -39,34 +39,49 @@
|
|||||||
(let ((load-source-file-function nil)) (load "./elpaca-autoloads"))))
|
(let ((load-source-file-function nil)) (load "./elpaca-autoloads"))))
|
||||||
(add-hook 'after-init-hook #'elpaca-process-queues)
|
(add-hook 'after-init-hook #'elpaca-process-queues)
|
||||||
(elpaca `(,@elpaca-order))
|
(elpaca `(,@elpaca-order))
|
||||||
;; Install a package via the elpaca macro
|
|
||||||
;; See the "recipes" section of the manual for more details.
|
|
||||||
|
|
||||||
;; (elpaca example-package)
|
|
||||||
|
|
||||||
;; Uncomment for systems which cannot create symlinks:
|
|
||||||
|
|
||||||
(when (eq system-type 'windows-nt)
|
(when (eq system-type 'windows-nt)
|
||||||
(elpaca-no-symlink-mode))
|
(elpaca-no-symlink-mode))
|
||||||
|
|
||||||
;; Install use-package support
|
;; Install use-package support
|
||||||
(elpaca elpaca-use-package
|
(elpaca elpaca-use-package
|
||||||
;; Enable use-package :straight support for Elpaca.
|
;; Enable use-package :ensure support for Elpaca.
|
||||||
(elpaca-use-package-mode))
|
(elpaca-use-package-mode))
|
||||||
|
|
||||||
;;When installing a package used in the init file itself,
|
;;When installing a package used in the init file itself,
|
||||||
;;e.g. a package which adds a use-package key word,
|
;;e.g. a package which adds a use-package key word,
|
||||||
;;use the :wait recipe keyword to block until that package is installed/configured.
|
;;use the :wait recipe keyword to block until that package is installed/configured.
|
||||||
;;For example:
|
;;For example:
|
||||||
;;(use-package general :straight (:wait t) :demand t)
|
;;(use-package general :ensure (:wait t) :demand t)
|
||||||
|
|
||||||
(setq elpaca-lock-file (expand-file-name "lock-file.eld" user-emacs-directory))
|
|
||||||
|
|
||||||
(setq use-package-always-ensure t
|
(setq use-package-always-ensure t
|
||||||
use-package-expand-minimally t
|
use-package-expand-minimally t
|
||||||
use-package-always-defer t)
|
use-package-always-defer t)
|
||||||
|
|
||||||
(use-package diminish)
|
(use-package elpaca-ui
|
||||||
|
:ensure nil
|
||||||
|
:bind (:map elpaca-ui-mode-map
|
||||||
|
("p" . previous-line)
|
||||||
|
("F" . elpaca-ui-mark-pull))
|
||||||
|
:hook (elpaca-log-mode . elpaca-log-update-mode)
|
||||||
|
:after popper
|
||||||
|
:init
|
||||||
|
(add-to-list 'popper-reference-buffers
|
||||||
|
'elpaca-log-mode)
|
||||||
|
(setf (alist-get '(major-mode . elpaca-log-mode)
|
||||||
|
display-buffer-alist
|
||||||
|
nil nil #'equal)
|
||||||
|
'((display-buffer-at-bottom
|
||||||
|
display-buffer-in-side-window)
|
||||||
|
(side . below)
|
||||||
|
(slot . 49)
|
||||||
|
(window-height . 0.4)
|
||||||
|
(body-function . select-window))
|
||||||
|
(alist-get "\\*elpaca-diff\\*" display-buffer-alist
|
||||||
|
nil nil #'equal)
|
||||||
|
'((display-buffer-reuse-window
|
||||||
|
display-buffer-in-atom-window)
|
||||||
|
(side . right))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(use-package god-mode
|
(use-package god-mode
|
||||||
|
|||||||
@@ -14,5 +14,16 @@
|
|||||||
haskell-process-auto-import-loaded-modules t)
|
haskell-process-auto-import-loaded-modules t)
|
||||||
(add-to-list 'completion-ignored-extensions ".hi"))
|
(add-to-list 'completion-ignored-extensions ".hi"))
|
||||||
|
|
||||||
|
(use-package haskell-ts-mode
|
||||||
|
:custom
|
||||||
|
(haskell-ts-font-lock-level 4)
|
||||||
|
(haskell-ts-use-indent t)
|
||||||
|
(haskell-ts-ghci "ghci")
|
||||||
|
(haskell-ts-use-indent t)
|
||||||
|
:config
|
||||||
|
(add-to-list 'major-mode-remap-alist '(haskell-mode . haskell-ts-mode)))
|
||||||
|
|
||||||
|
|
||||||
|
(use-package lsp-haskell)
|
||||||
|
|
||||||
(provide 'init-haskell)
|
(provide 'init-haskell)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
:hook ((emacs-lisp-mode . hydra-add-imenu)))
|
:hook ((emacs-lisp-mode . hydra-add-imenu)))
|
||||||
|
|
||||||
(use-package pretty-hydra
|
(use-package pretty-hydra
|
||||||
:straight (:wait t)
|
:ensure (:wait t)
|
||||||
:hook (emacs-lisp-mode . (lambda ()
|
:hook (emacs-lisp-mode . (lambda ()
|
||||||
(add-to-list
|
(add-to-list
|
||||||
'imenu-generic-expression
|
'imenu-generic-expression
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
:custom
|
:custom
|
||||||
(default-input-method "rime")
|
(default-input-method "rime")
|
||||||
(rime-librime-root "/opt/homebrew")
|
(rime-librime-root "/opt/homebrew")
|
||||||
(rime-emacs-module-header-root "~/build-emacs-for-macos/builds/Emacs.app/Contents/Resources/include/"))
|
(rime-emacs-module-header-root "~/build-emacs-for-macos/builds/Emacs.app/Contents/Resources/include/")
|
||||||
|
(rime-show-candidate 'posframe)
|
||||||
|
(rime-posframe-properties nil))
|
||||||
|
|
||||||
|
;; (use-package sis
|
||||||
|
;; :hook ((elpaca-after-init . sis-global-respect-mode)
|
||||||
|
;; (elpaca-after-init . sis-global-context-mode)
|
||||||
|
;; (elpaca-after-init . sis-global-inline-mode)))
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-input)
|
(provide 'init-input)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
:bind (("C-c l s" . gptel-send)
|
:bind (("C-c l s" . gptel-send)
|
||||||
("C-c l m" . gptel-menu))
|
("C-c l m" . gptel-menu))
|
||||||
:config
|
:config
|
||||||
(setq gptel-model 'claude-sonnet-4.5)
|
(setq gptel-model 'gpt-5.2)
|
||||||
(setq gptel-backend (gptel-make-gh-copilot "Copilot"))
|
(setq gptel-backend (gptel-make-gh-copilot "Copilot"))
|
||||||
(setq gptel-default-mode #'org-mode)
|
(setq gptel-default-mode #'org-mode)
|
||||||
(setq gptel-display-buffer-action nil) ; if user changes this, popup manager will bow out
|
(setq gptel-display-buffer-action nil) ; if user changes this, popup manager will bow out
|
||||||
|
|||||||
@@ -13,19 +13,24 @@
|
|||||||
(unless (derived-mode-p
|
(unless (derived-mode-p
|
||||||
'emacs-lisp-mode 'lisp-mode
|
'emacs-lisp-mode 'lisp-mode
|
||||||
'makefile-mode 'snippet-mode
|
'makefile-mode 'snippet-mode
|
||||||
'ron-mode)
|
'lisp-data-mode 'ron-mode)
|
||||||
(lsp-deferred))))
|
(lsp-deferred))))
|
||||||
((markdown-mode yaml-mode yaml-ts-mode) . lsp-deferred)
|
((markdown-mode yaml-mode yaml-ts-mode) . lsp-deferred)
|
||||||
(lsp-mode . (lambda ()
|
(lsp-mode . (lambda ()
|
||||||
;; Integrate `which-key'
|
;; Integrate `which-key'
|
||||||
(lsp-enable-which-key-integration)
|
(lsp-enable-which-key-integration)
|
||||||
(add-hook 'before-save-hook #'lsp-format-buffer t t)
|
;; (add-hook 'before-save-hook #'lsp-format-buffer t t)
|
||||||
(add-hook 'before-save-hook #'lsp-organize-imports t t))))
|
(add-hook 'before-save-hook #'lsp-organize-imports t t))))
|
||||||
|
:hook (lsp-completion-mode . my/lsp-mode-setup-completion)
|
||||||
:bind (:map lsp-mode-map
|
:bind (:map lsp-mode-map
|
||||||
("C-c c d" . lsp-describe-thing-at-point)
|
("C-c c d" . lsp-describe-thing-at-point)
|
||||||
([remap xref-find-definitions] . lsp-find-definition)
|
([remap xref-find-definitions] . lsp-find-definition)
|
||||||
([remap xref-find-references] . lsp-find-references))
|
([remap xref-find-references] . lsp-find-references))
|
||||||
:init (setq lsp-use-plists t
|
:init
|
||||||
|
(defun my/lsp-mode-setup-completion ()
|
||||||
|
(setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults))
|
||||||
|
'(orderless)))
|
||||||
|
(setq lsp-use-plists t
|
||||||
lsp-log-io nil
|
lsp-log-io nil
|
||||||
|
|
||||||
lsp-enable-suggest-server-download t
|
lsp-enable-suggest-server-download t
|
||||||
@@ -58,12 +63,7 @@
|
|||||||
|
|
||||||
;; For diagnostics
|
;; For diagnostics
|
||||||
lsp-diagnostics-disabled-modes '(markdown-mode gfm-mode))
|
lsp-diagnostics-disabled-modes '(markdown-mode gfm-mode))
|
||||||
|
|
||||||
:config
|
:config
|
||||||
(use-package consult-lsp
|
|
||||||
:bind (:map lsp-mode-map
|
|
||||||
("C-M-." . consult-lsp-symbols)))
|
|
||||||
|
|
||||||
(with-no-warnings
|
(with-no-warnings
|
||||||
;; Disable `lsp-mode' in `git-timemachine-mode'
|
;; Disable `lsp-mode' in `git-timemachine-mode'
|
||||||
(defun my/lsp--init-if-visible (fn &rest args)
|
(defun my/lsp--init-if-visible (fn &rest args)
|
||||||
@@ -77,7 +77,42 @@
|
|||||||
(memq sh-shell '(sh bash zsh))))
|
(memq sh-shell '(sh bash zsh))))
|
||||||
(advice-add #'lsp-bash-check-sh-shell :override #'my/lsp-bash-check-sh-shell)
|
(advice-add #'lsp-bash-check-sh-shell :override #'my/lsp-bash-check-sh-shell)
|
||||||
(add-to-list 'lsp-language-id-configuration '(bash-ts-mode . "shellscript"))
|
(add-to-list 'lsp-language-id-configuration '(bash-ts-mode . "shellscript"))
|
||||||
|
:preface
|
||||||
|
(defun lsp-booster--advice-json-parse (old-fn &rest args)
|
||||||
|
"Try to parse bytecode instead of json."
|
||||||
|
(or
|
||||||
|
(when (equal (following-char) ?#)
|
||||||
|
(let ((bytecode (read (current-buffer))))
|
||||||
|
(when (byte-code-function-p bytecode)
|
||||||
|
(funcall bytecode))))
|
||||||
|
(apply old-fn args)))
|
||||||
|
(advice-add (if (progn (require 'json)
|
||||||
|
(fboundp 'json-parse-buffer))
|
||||||
|
'json-parse-buffer
|
||||||
|
'json-read)
|
||||||
|
:around
|
||||||
|
#'lsp-booster--advice-json-parse)
|
||||||
|
|
||||||
|
(defun lsp-booster--advice-final-command (old-fn cmd &optional test?)
|
||||||
|
"Prepend emacs-lsp-booster command to lsp CMD."
|
||||||
|
(let ((orig-result (funcall old-fn cmd test?)))
|
||||||
|
(if (and (not test?) ;; for check lsp-server-present?
|
||||||
|
(not (file-remote-p default-directory)) ;; see lsp-resolve-final-command, it would add extra shell wrapper
|
||||||
|
lsp-use-plists
|
||||||
|
(not (functionp 'json-rpc-connection)) ;; native json-rpc
|
||||||
|
(executable-find "emacs-lsp-booster"))
|
||||||
|
(progn
|
||||||
|
(when-let ((command-from-exec-path (executable-find (car orig-result)))) ;; resolve command from exec-path (in case not found in $PATH)
|
||||||
|
(setcar orig-result command-from-exec-path))
|
||||||
|
(message "Using emacs-lsp-booster for %s!" orig-result)
|
||||||
|
(append (list "emacs-lsp-booster" "--") orig-result))
|
||||||
|
orig-result)))
|
||||||
|
(advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command)
|
||||||
|
|
||||||
|
)
|
||||||
|
(use-package consult-lsp
|
||||||
|
:bind (:map lsp-mode-map
|
||||||
|
("C-M-." . consult-lsp-symbols)))
|
||||||
(use-package lsp-ui
|
(use-package lsp-ui
|
||||||
:custom-face
|
:custom-face
|
||||||
(lsp-ui-sideline-code-action ((t (:inherit warning))))
|
(lsp-ui-sideline-code-action ((t (:inherit warning))))
|
||||||
@@ -150,38 +185,5 @@
|
|||||||
,(face-foreground 'font-lock-constant-face)
|
,(face-foreground 'font-lock-constant-face)
|
||||||
,(face-foreground 'font-lock-variable-name-face))))
|
,(face-foreground 'font-lock-variable-name-face))))
|
||||||
|
|
||||||
:preface
|
|
||||||
(defun lsp-booster--advice-json-parse (old-fn &rest args)
|
|
||||||
"Try to parse bytecode instead of json."
|
|
||||||
(or
|
|
||||||
(when (equal (following-char) ?#)
|
|
||||||
(let ((bytecode (read (current-buffer))))
|
|
||||||
(when (byte-code-function-p bytecode)
|
|
||||||
(funcall bytecode))))
|
|
||||||
(apply old-fn args)))
|
|
||||||
(advice-add (if (progn (require 'json)
|
|
||||||
(fboundp 'json-parse-buffer))
|
|
||||||
'json-parse-buffer
|
|
||||||
'json-read)
|
|
||||||
:around
|
|
||||||
#'lsp-booster--advice-json-parse)
|
|
||||||
|
|
||||||
(defun lsp-booster--advice-final-command (old-fn cmd &optional test?)
|
|
||||||
"Prepend emacs-lsp-booster command to lsp CMD."
|
|
||||||
(let ((orig-result (funcall old-fn cmd test?)))
|
|
||||||
(if (and (not test?) ;; for check lsp-server-present?
|
|
||||||
(not (file-remote-p default-directory)) ;; see lsp-resolve-final-command, it would add extra shell wrapper
|
|
||||||
lsp-use-plists
|
|
||||||
(not (functionp 'json-rpc-connection)) ;; native json-rpc
|
|
||||||
(executable-find "emacs-lsp-booster"))
|
|
||||||
(progn
|
|
||||||
(when-let ((command-from-exec-path (executable-find (car orig-result)))) ;; resolve command from exec-path (in case not found in $PATH)
|
|
||||||
(setcar orig-result command-from-exec-path))
|
|
||||||
(message "Using emacs-lsp-booster for %s!" orig-result)
|
|
||||||
(append (list "emacs-lsp-booster" "--") orig-result))
|
|
||||||
orig-result)))
|
|
||||||
(advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-lsp)
|
(provide 'init-lsp)
|
||||||
|
|||||||
@@ -81,13 +81,27 @@
|
|||||||
'("Y" . meow-sync-grab)
|
'("Y" . meow-sync-grab)
|
||||||
'("z" . meow-pop-selection)
|
'("z" . meow-pop-selection)
|
||||||
'("'" . repeat)
|
'("'" . repeat)
|
||||||
'("<escape>" . ignore)))
|
'("<escape>" . ignore))
|
||||||
|
(meow-define-keys
|
||||||
|
'beacon
|
||||||
|
'("C-g" . meow-grab))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
(use-package meow
|
(use-package meow
|
||||||
:demand t
|
:demand t
|
||||||
:hook (after-init . meow-global-mode)
|
:hook (elpaca-after-init . meow-global-mode)
|
||||||
:config
|
:config
|
||||||
(meow-setup)
|
(meow-setup)
|
||||||
|
(add-to-list 'meow-mode-state-list '(magit-mode . insert))
|
||||||
|
(add-to-list 'meow-mode-state-list '(eat-mode . insert))
|
||||||
|
(add-to-list 'meow-mode-state-list '(eshell-mode . insert))
|
||||||
|
(add-to-list 'meow-mode-state-list '(git-commit-elisp-text-mode . insert))
|
||||||
|
|
||||||
|
(define-key input-decode-map (kbd "C-[") [control-bracketleft])
|
||||||
|
(define-key meow-insert-state-keymap [control-bracketleft] 'meow-insert-exit)
|
||||||
|
(setq meow-keypad-leader-dispatch "C-c"
|
||||||
|
meow-use-clipboard t)
|
||||||
(setq meow-replace-state-name-list
|
(setq meow-replace-state-name-list
|
||||||
'((normal . "<N>")
|
'((normal . "<N>")
|
||||||
(motion . "<M>")
|
(motion . "<M>")
|
||||||
@@ -96,4 +110,40 @@
|
|||||||
(beacon . "<B>")))
|
(beacon . "<B>")))
|
||||||
(setq meow-cursor-type-normal 'bar))
|
(setq meow-cursor-type-normal 'bar))
|
||||||
|
|
||||||
|
;; Meow jk exit
|
||||||
|
(use-package meow
|
||||||
|
:disabled t
|
||||||
|
:after meow
|
||||||
|
:config
|
||||||
|
;; Use jk to escape from insert state to normal state
|
||||||
|
(defvar meow-two-char-escape-sequence "jk")
|
||||||
|
(defvar meow-two-char-escape-delay 0.5)
|
||||||
|
(defun meow--two-char-exit-insert-state (s)
|
||||||
|
"Exit meow insert state when pressing consecutive two keys.
|
||||||
|
|
||||||
|
S is string of the two-key sequence."
|
||||||
|
(when (meow-insert-mode-p)
|
||||||
|
(let ((modified (buffer-modified-p))
|
||||||
|
(undo-list buffer-undo-list))
|
||||||
|
(insert (elt s 0))
|
||||||
|
(let* ((second-char (elt s 1))
|
||||||
|
(event
|
||||||
|
(if defining-kbd-macro
|
||||||
|
(read-event nil nil)
|
||||||
|
(read-event nil nil meow-two-char-escape-delay))))
|
||||||
|
(when event
|
||||||
|
(if (and (characterp event) (= event second-char))
|
||||||
|
(progn
|
||||||
|
(backward-delete-char 1)
|
||||||
|
(set-buffer-modified-p modified)
|
||||||
|
(setq buffer-undo-list undo-list)
|
||||||
|
(meow-insert-exit))
|
||||||
|
(push event unread-command-events)))))))
|
||||||
|
(defun meow-two-char-exit-insert-state ()
|
||||||
|
"Exit meow insert state when pressing consecutive two keys."
|
||||||
|
(interactive)
|
||||||
|
(meow--two-char-exit-insert-state meow-two-char-escape-sequence))
|
||||||
|
(define-key meow-insert-state-keymap (substring meow-two-char-escape-sequence 0 1)
|
||||||
|
#'meow-two-char-exit-insert-state))
|
||||||
|
|
||||||
(provide 'init-meow)
|
(provide 'init-meow)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
(use-package tuareg
|
(use-package tuareg
|
||||||
:straight t
|
:ensure t
|
||||||
:mode (("\\.ocamlinit\\'" . tuareg-mode))
|
:mode (("\\.ocamlinit\\'" . tuareg-mode))
|
||||||
:config
|
:config
|
||||||
(setq tuareg-prettify-symbols-full t))
|
(setq tuareg-prettify-symbols-full t))
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
(use-package utop)
|
(use-package utop)
|
||||||
|
|
||||||
;; (use-package ocaml-eglot
|
;; (use-package ocaml-eglot
|
||||||
;; :straight t
|
;; :ensure t
|
||||||
;; :after tuareg
|
;; :after tuareg
|
||||||
;; :hook (tuareg-mode . ocaml-eglot)
|
;; :hook (tuareg-mode . ocaml-eglot)
|
||||||
;; :hook (ocaml-eglot . eglot-ensure)
|
;; :hook (ocaml-eglot . eglot-ensure)
|
||||||
|
|||||||
221
lisp/init-org.el
221
lisp/init-org.el
@@ -1,39 +1,12 @@
|
|||||||
;; -*- lexical-binding: t -*-
|
;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; (defun org-capture-init()
|
|
||||||
;; (setq org-capture-templates
|
|
||||||
;; '(("t" "Personal todo" entry ("Inbox")
|
|
||||||
;; "* TODO %?\n%i\n%a" :prepend t))))
|
|
||||||
|
|
||||||
(use-package org
|
(use-package org
|
||||||
:straight (org :fork (:host nil
|
:defer
|
||||||
:repo "https://code.tecosaur.net/tec/org-mode.git"
|
:ensure (org :repo "https://code.tecosaur.net/tec/org-mode.git/"
|
||||||
:branch "dev"
|
:branch "dev")
|
||||||
:remote "tecosaur")
|
:hook ((org-mode . org-cdlatex-mode)
|
||||||
:branch "dev"
|
(org-mode . org-indent-mode)
|
||||||
:files (:defaults "etc")
|
(org-mode . visual-line-mode))
|
||||||
:build t
|
|
||||||
:pre-build
|
|
||||||
(with-temp-file "org-version.el"
|
|
||||||
(require 'lisp-mnt)
|
|
||||||
(let ((version
|
|
||||||
(with-temp-buffer
|
|
||||||
(insert-file-contents "lisp/org.el")
|
|
||||||
(lm-header "version")))
|
|
||||||
(git-version
|
|
||||||
(string-trim
|
|
||||||
(with-temp-buffer
|
|
||||||
(call-process "git" nil t nil "rev-parse" "--short" "HEAD")
|
|
||||||
(buffer-string)))))
|
|
||||||
(insert
|
|
||||||
(format "(defun org-release () \"The release version of Org.\" %S)\n" version)
|
|
||||||
(format "(defun org-git-version () \"The truncate git commit hash of Org mode.\" %S)\n" git-version)
|
|
||||||
"(provide 'org-version)\n")))
|
|
||||||
:pin nil)
|
|
||||||
:hook (org-mode . org-cdlatex-mode)
|
|
||||||
:hook (org-mode . org-indent-mode)
|
|
||||||
:hook (org-mode . visual-line-mode)
|
|
||||||
|
|
||||||
:pretty-hydra
|
:pretty-hydra
|
||||||
;; See `org-structure-template-alist'
|
;; See `org-structure-template-alist'
|
||||||
((:color blue :quit-key ("q" "C-g"))
|
((:color blue :quit-key ("q" "C-g"))
|
||||||
@@ -79,13 +52,21 @@
|
|||||||
(if (or (region-active-p) (looking-back "^\s*" 1))
|
(if (or (region-active-p) (looking-back "^\s*" 1))
|
||||||
(org-hydra/body)
|
(org-hydra/body)
|
||||||
(self-insert-command 1))))
|
(self-insert-command 1))))
|
||||||
("M-<return>" . org-insert-subheading))
|
("M-<return>" . org-insert-subheading)
|
||||||
|
("C-'" . nil))
|
||||||
|
:bind (("C-c n t" . org-todo-list)
|
||||||
|
("C-c n a" . org-agenda)
|
||||||
|
("C-c n n" . org-capture))
|
||||||
:config
|
:config
|
||||||
(elemacs-load-packages-incrementally
|
(elemacs-load-packages-incrementally
|
||||||
'(calendar find-func format-spec org-macs org-compat
|
'(calendar find-func format-spec org-macs org-compat
|
||||||
org-faces org-entities org-list org-pcomplete org-src
|
org-faces org-entities org-list org-pcomplete org-src
|
||||||
org-footnote org-macro ob org org-clock org-agenda
|
org-footnote org-macro ob org org-clock org-agenda
|
||||||
org-capture))
|
org-capture))
|
||||||
|
|
||||||
|
(add-hook 'org-mode-hook
|
||||||
|
(lambda ()
|
||||||
|
(yas-activate-extra-mode 'LaTeX-mode)))
|
||||||
;; For hydra
|
;; For hydra
|
||||||
(defun hot-expand (str &optional mod)
|
(defun hot-expand (str &optional mod)
|
||||||
"Expand org template.
|
"Expand org template.
|
||||||
@@ -118,6 +99,7 @@ the element after the #+HEADER: tag."
|
|||||||
(setq org-pretty-entities t
|
(setq org-pretty-entities t
|
||||||
org-pretty-entities-include-sub-superscripts nil)
|
org-pretty-entities-include-sub-superscripts nil)
|
||||||
|
|
||||||
|
|
||||||
(setq org-default-note-file (expand-file-name "notes.org" org-directory)
|
(setq org-default-note-file (expand-file-name "notes.org" org-directory)
|
||||||
org-capture-templates
|
org-capture-templates
|
||||||
'(("t" "Personal todo" entry
|
'(("t" "Personal todo" entry
|
||||||
@@ -128,16 +110,80 @@ the element after the #+HEADER: tag."
|
|||||||
"* %u %?\n%i\n%a" :prepend t)
|
"* %u %?\n%i\n%a" :prepend t)
|
||||||
("j" "Journal" entry
|
("j" "Journal" entry
|
||||||
(file+olp+datetree "diary.org")
|
(file+olp+datetree "diary.org")
|
||||||
"* %U %?\n%i\n%a" :prepend t))
|
"* %U %?\n%i\n%a" :prepend t)))
|
||||||
|
(with-no-warnings
|
||||||
org-todo-keywords
|
(custom-declare-face '+org-todo-active '((t (:inherit (bold font-lock-constant-face org-todo)))) "")
|
||||||
'((sequence "TODO(t)" "IN-PROGRESS(i)" "ON-HOLD(h)" "|" "DONE(d)" "NO(n)")))
|
(custom-declare-face '+org-todo-project '((t (:inherit (bold font-lock-doc-face org-todo)))) "")
|
||||||
|
(custom-declare-face '+org-todo-onhold '((t (:inherit (bold warning org-todo)))) "")
|
||||||
|
(custom-declare-face '+org-todo-cancel '((t (:inherit (bold error org-todo)))) ""))
|
||||||
|
(setq org-todo-keywords
|
||||||
|
'((sequence
|
||||||
|
"TODO(t)" ; A task that needs doing & is ready to do
|
||||||
|
"PROJ(p)" ; A project, which usually contains other tasks
|
||||||
|
"LOOP(r)" ; A recurring task
|
||||||
|
"STRT(s)" ; A task that is in progress
|
||||||
|
"WAIT(w)" ; Something external is holding up this task
|
||||||
|
"HOLD(h)" ; This task is paused/on hold because of me
|
||||||
|
"IDEA(i)" ; An unconfirmed and unapproved task or notion
|
||||||
|
"|"
|
||||||
|
"DONE(d)" ; Task successfully completed
|
||||||
|
"KILL(k)") ; Task was cancelled, aborted, or is no longer applicable
|
||||||
|
(sequence
|
||||||
|
"|"
|
||||||
|
"OKAY(o)"
|
||||||
|
"YES(y)"
|
||||||
|
"NO(n)"))
|
||||||
|
org-todo-keyword-faces
|
||||||
|
'(("[-]" . +org-todo-active)
|
||||||
|
("STRT" . +org-todo-active)
|
||||||
|
("[?]" . +org-todo-onhold)
|
||||||
|
("WAIT" . +org-todo-onhold)
|
||||||
|
("HOLD" . +org-todo-onhold)
|
||||||
|
("PROJ" . +org-todo-project)
|
||||||
|
("NO" . +org-todo-cancel)
|
||||||
|
("KILL" . +org-todo-cancel)))
|
||||||
|
|
||||||
(add-to-list 'org-src-block-faces '("latex" (:inherit default :extend t)))
|
(add-to-list 'org-src-block-faces '("latex" (:inherit default :extend t)))
|
||||||
(add-hook 'org-after-refile-insert-hook
|
(add-hook 'org-after-refile-insert-hook
|
||||||
(defun save-buffer-after-capture ()
|
(defun save-buffer-after-capture ()
|
||||||
(when (bound-and-true-p org-capture-is-refiling)
|
(when (bound-and-true-p org-capture-is-refiling)
|
||||||
(save-buffer)))))
|
(save-buffer))))
|
||||||
|
|
||||||
|
;; ;; Enable lsp in org-babel
|
||||||
|
(cl-defmacro lsp-org-babel-enable (lang)
|
||||||
|
"Support LANG in org source code block."
|
||||||
|
(cl-check-type lang string)
|
||||||
|
(let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
|
||||||
|
(intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
|
||||||
|
`(progn
|
||||||
|
(defun ,intern-pre (info)
|
||||||
|
(setq buffer-file-name (or (->> info caddr (alist-get :file))
|
||||||
|
"org-src-babel.tmp"))
|
||||||
|
(when (fboundp 'lsp-deferred)
|
||||||
|
;; Avoid headerline conflicts
|
||||||
|
(setq-local lsp-headerline-breadcrumb-enable nil)
|
||||||
|
(lsp-deferred)
|
||||||
|
(_
|
||||||
|
(user-error "LSP:: invalid type"))))
|
||||||
|
(put ',intern-pre 'function-documentation
|
||||||
|
(format "Enable lsp-mode in the buffer of org source block (%s)."
|
||||||
|
(upcase ,lang)))
|
||||||
|
|
||||||
|
(if (fboundp ',edit-pre)
|
||||||
|
(advice-add ',edit-pre :after ',intern-pre)
|
||||||
|
(progn
|
||||||
|
(defun ,edit-pre (info)
|
||||||
|
(,intern-pre info))
|
||||||
|
(put ',edit-pre 'function-documentation
|
||||||
|
(format "Prepare local buffer environment for org source block (%s)."
|
||||||
|
(upcase ,lang))))))))
|
||||||
|
|
||||||
|
(defconst org-babel-lang-list
|
||||||
|
'("go" "python" "ipython" "ruby" "js" "css" "sass" "c" "rust" "java" "cpp" "c++" "shell" "haskell")
|
||||||
|
"The supported programming languages for interactive Babel.")
|
||||||
|
(dolist (lang org-babel-lang-list)
|
||||||
|
(eval `(lsp-org-babel-enable ,lang)))
|
||||||
|
)
|
||||||
|
|
||||||
(use-package org-contrib)
|
(use-package org-contrib)
|
||||||
|
|
||||||
@@ -171,7 +217,7 @@ the element after the #+HEADER: tag."
|
|||||||
))
|
))
|
||||||
|
|
||||||
(use-package org-modern-indent
|
(use-package org-modern-indent
|
||||||
:straight (org-modern-indent :type git :host github :repo "jdtsmith/org-modern-indent")
|
:ensure (org-modern-indent :type git :host github :repo "jdtsmith/org-modern-indent")
|
||||||
:config ; add late to hook
|
:config ; add late to hook
|
||||||
(add-hook 'org-mode-hook #'org-modern-indent-mode 90))
|
(add-hook 'org-mode-hook #'org-modern-indent-mode 90))
|
||||||
|
|
||||||
@@ -184,7 +230,7 @@ the element after the #+HEADER: tag."
|
|||||||
(run-at-time nil nil #'org-appear--set-elements))
|
(run-at-time nil nil #'org-appear--set-elements))
|
||||||
|
|
||||||
(use-package hl-todo
|
(use-package hl-todo
|
||||||
:hook (after-init . global-hl-todo-mode)
|
:hook (elpaca-after-init . global-hl-todo-mode)
|
||||||
:config
|
:config
|
||||||
(setq hl-todo-highlight-punctuation ":"
|
(setq hl-todo-highlight-punctuation ":"
|
||||||
hl-todo-keyword-faces
|
hl-todo-keyword-faces
|
||||||
@@ -209,29 +255,49 @@ the element after the #+HEADER: tag."
|
|||||||
("BUG" error bold)
|
("BUG" error bold)
|
||||||
("XXX" font-lock-constant-face bold))))
|
("XXX" font-lock-constant-face bold))))
|
||||||
|
|
||||||
(add-hook 'org-mode-hook
|
|
||||||
(lambda ()
|
|
||||||
(yas-activate-extra-mode 'LaTeX-mode)))
|
|
||||||
|
|
||||||
(use-package org-latex-preview
|
(use-package org-latex-preview
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook (org-mode . org-latex-preview-mode)
|
:hook (org-mode . org-latex-preview-mode)
|
||||||
:hook (org-latex-preview-mode . org-latex-preview-center-mode)
|
:hook (org-latex-preview-mode . org-latex-preview-center-mode)
|
||||||
|
:bind ("C-c C-x SPC" . org-latex-preview-clear-cache)
|
||||||
:config
|
:config
|
||||||
;; Higher resolution when using dvipng
|
;; preview buffer on enter
|
||||||
(plist-put org-latex-preview-appearance-options :page-width 1.0)
|
(add-hook 'org-mode-hook
|
||||||
;; (plist-put org-latex-preview-appearance-options :margin 1)
|
(lambda ()
|
||||||
(plist-put org-latex-preview-appearance-options :scale 2.0)
|
(run-with-idle-timer 0.5 nil
|
||||||
|
(lambda () (org-latex-preview '(16))))))
|
||||||
|
;; Add margin and rescale display math
|
||||||
|
(defvar my/org-latex-display-math-scale 1)
|
||||||
|
(defvar my/org-latex-display-math-margin 5)
|
||||||
|
(defun my/org-latex-preview-add-margin-advice (ov _path-info)
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (overlay-start ov))
|
||||||
|
(when-let* ((elem (org-element-context))
|
||||||
|
((or (eq (org-element-type elem) 'latex-environment)
|
||||||
|
(string-match-p "^\\\\\\[" (org-element-property :value elem))))
|
||||||
|
(img (overlay-get ov 'preview-image))
|
||||||
|
((and (consp img) (eq (car img) 'image))))
|
||||||
|
(let* ((plist (copy-sequence (cdr img)))
|
||||||
|
(height (plist-get plist :height)))
|
||||||
|
(when (and (consp height) (numberp (car height)))
|
||||||
|
(setq plist
|
||||||
|
(plist-put plist :height
|
||||||
|
(cons (* my/org-latex-display-math-scale (car height))
|
||||||
|
(cdr height)))))
|
||||||
|
(setq plist (plist-put plist :margin my/org-latex-display-math-margin))
|
||||||
|
(let ((new-img (cons 'image plist)))
|
||||||
|
(overlay-put ov 'preview-image new-img)
|
||||||
|
(when (overlay-get ov 'display)
|
||||||
|
(overlay-put ov 'display new-img)))))))
|
||||||
|
(advice-add 'org-latex-preview--update-overlay :after
|
||||||
|
#'my/org-latex-preview-add-margin-advice)
|
||||||
|
|
||||||
;; ;; Block C-n, C-p etc from opening up previews when using `org-latex-preview-mode'
|
;; (setq org-latex-preview-numbered t)
|
||||||
;; (setq org-latex-preview-mode-ignored-commands
|
|
||||||
;; '(next-line previous-line mwheel-scroll
|
|
||||||
;; scroll-up-command scroll-down-command))
|
|
||||||
|
|
||||||
(setq org-latex-preview-numbered t)
|
|
||||||
(setq org-latex-preview-mode-display-live t)
|
(setq org-latex-preview-mode-display-live t)
|
||||||
(setq org-latex-preview-process-default 'dvipng)
|
(setq org-latex-preview-process-default 'dvisvgm)
|
||||||
(setq org-latex-preview-mode-update-delay 0.25)
|
(setq org-latex-preview-mode-update-delay 0.25)
|
||||||
|
|
||||||
|
;; Centre display maths
|
||||||
(defun my/org-latex-preview-uncenter (ov)
|
(defun my/org-latex-preview-uncenter (ov)
|
||||||
(overlay-put ov 'before-string nil))
|
(overlay-put ov 'before-string nil))
|
||||||
(defun my/org-latex-preview-recenter (ov)
|
(defun my/org-latex-preview-recenter (ov)
|
||||||
@@ -323,44 +389,7 @@ the element after the #+HEADER: tag."
|
|||||||
(use-package valign
|
(use-package valign
|
||||||
:hook (org-mode . valign-mode))
|
:hook (org-mode . valign-mode))
|
||||||
|
|
||||||
(use-package org-noter
|
(use-package djvu)
|
||||||
:config
|
(use-package org-noter)
|
||||||
(use-package djvu))
|
|
||||||
|
|
||||||
|
|
||||||
;; Enable lsp in org-babel
|
|
||||||
(cl-defmacro lsp-org-babel-enable (lang)
|
|
||||||
"Support LANG in org source code block."
|
|
||||||
(cl-check-type lang string)
|
|
||||||
(let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
|
|
||||||
(intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
|
|
||||||
`(progn
|
|
||||||
(defun ,intern-pre (info)
|
|
||||||
(setq buffer-file-name (or (->> info caddr (alist-get :file))
|
|
||||||
"org-src-babel.tmp"))
|
|
||||||
(when (fboundp 'lsp-deferred)
|
|
||||||
;; Avoid headerline conflicts
|
|
||||||
(setq-local lsp-headerline-breadcrumb-enable nil)
|
|
||||||
(lsp-deferred)
|
|
||||||
(_
|
|
||||||
(user-error "LSP:: invalid type"))))
|
|
||||||
(put ',intern-pre 'function-documentation
|
|
||||||
(format "Enable lsp-mode in the buffer of org source block (%s)."
|
|
||||||
(upcase ,lang)))
|
|
||||||
|
|
||||||
(if (fboundp ',edit-pre)
|
|
||||||
(advice-add ',edit-pre :after ',intern-pre)
|
|
||||||
(progn
|
|
||||||
(defun ,edit-pre (info)
|
|
||||||
(,intern-pre info))
|
|
||||||
(put ',edit-pre 'function-documentation
|
|
||||||
(format "Prepare local buffer environment for org source block (%s)."
|
|
||||||
(upcase ,lang))))))))
|
|
||||||
|
|
||||||
(defconst org-babel-lang-list
|
|
||||||
'("go" "python" "ipython" "ruby" "js" "css" "sass" "c" "rust" "java" "cpp" "c++" "shell")
|
|
||||||
"The supported programming languages for interactive Babel.")
|
|
||||||
(dolist (lang org-babel-lang-list)
|
|
||||||
(eval `(lsp-org-babel-enable ,lang)))
|
|
||||||
|
|
||||||
(provide 'init-org)
|
(provide 'init-org)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
;; Python Mode
|
;; Python Mode
|
||||||
;; Install: pip install pyflakes autopep8
|
;; Install: pip install pyflakes autopep8
|
||||||
(use-package python
|
(use-package python
|
||||||
:straight nil
|
:ensure nil
|
||||||
:functions exec-path-from-shell-copy-env
|
:functions exec-path-from-shell-copy-env
|
||||||
:hook (inferior-python-mode . (lambda ()
|
:hook (inferior-python-mode . (lambda ()
|
||||||
(process-query-on-exit-flag
|
(process-query-on-exit-flag
|
||||||
@@ -23,9 +23,4 @@
|
|||||||
(with-eval-after-load 'exec-path-from-shell
|
(with-eval-after-load 'exec-path-from-shell
|
||||||
(exec-path-from-shell-copy-env "PYTHONPATH")))
|
(exec-path-from-shell-copy-env "PYTHONPATH")))
|
||||||
|
|
||||||
;; (with-eval-after-load 'eglot
|
|
||||||
;; (add-hook 'python-ts-mode-hook #'eglot-ensure)
|
|
||||||
;; (add-to-list 'eglot-server-programs '((python-mode python-ts-mode) . ("pyright-langserver" "--stdio"))))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-python)
|
(provide 'init-python)
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
;; Rust -*- lexical-binding: t; -*-
|
;; Rust -*- lexical-binding: t; -*-
|
||||||
(use-package rust-mode
|
(use-package rust-mode
|
||||||
:functions treesit-available-p
|
:config
|
||||||
:init (setq rust-format-on-save t
|
(add-to-list 'major-mode-remap-alist '(rust-mode . rust-ts-mode)))
|
||||||
rust-mode-treesitter-derive (treesit-available-p)))
|
|
||||||
|
|
||||||
(use-package ron-mode
|
(use-package ron-mode
|
||||||
:mode ("\\.ron" . ron-mode))
|
:mode ("\\.ron" . ron-mode))
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(use-package shell
|
(use-package shell
|
||||||
:straight nil
|
:ensure nil
|
||||||
:hook ((shell-mode . my/shell-mode-hook)
|
:hook ((shell-mode . my/shell-mode-hook)
|
||||||
(comint-output-filter-functions . comint-strip-ctrl-m))
|
(comint-output-filter-functions . comint-strip-ctrl-m))
|
||||||
:init
|
:init
|
||||||
@@ -40,71 +40,11 @@
|
|||||||
:defines eshell-prompt-function
|
:defines eshell-prompt-function
|
||||||
:bind (:map eshell-mode-map
|
:bind (:map eshell-mode-map
|
||||||
([remap recenter-top-bottom] . eshell/clear))
|
([remap recenter-top-bottom] . eshell/clear))
|
||||||
|
|
||||||
:config
|
:config
|
||||||
(setq eshell-banner-message "")
|
;; (defun eshell/clear ()
|
||||||
(with-no-warnings
|
;; (interactive)
|
||||||
(defun eshell/clear ()
|
;; (eshell/clear-scrollback))
|
||||||
"Clear the eshell buffer."
|
(setq eshell-banner-message ""))
|
||||||
(interactive)
|
|
||||||
(let ((inhibit-read-only t))
|
|
||||||
(erase-buffer)
|
|
||||||
(eshell-send-input)))
|
|
||||||
(defun eshell/emacs (&rest args)
|
|
||||||
"Open a file (ARGS) in Emacs. Some habits die hard."
|
|
||||||
(if (null args)
|
|
||||||
;; If I just ran "emacs", I probably expect to be launching
|
|
||||||
;; Emacs, which is rather silly since I'm already in Emacs.
|
|
||||||
;; So just pretend to do what I ask.
|
|
||||||
(bury-buffer)
|
|
||||||
;; We have to expand the file names or else naming a directory in an
|
|
||||||
;; argument causes later arguments to be looked for in that directory,
|
|
||||||
;; not the starting directory
|
|
||||||
(mapc #'find-file (mapcar #'expand-file-name (flatten-tree (reverse args))))))
|
|
||||||
(defalias 'eshell/e #'eshell/emacs)
|
|
||||||
(defalias 'eshell/ec #'eshell/emacs)
|
|
||||||
(defun eshell/ebc (&rest args)
|
|
||||||
"Compile a file (ARGS) in Emacs. Use `compile' to do background make."
|
|
||||||
(if (eshell-interactive-output-p)
|
|
||||||
(let ((compilation-process-setup-function
|
|
||||||
(list 'lambda nil
|
|
||||||
(list 'setq 'process-environment
|
|
||||||
(list 'quote (eshell-copy-environment))))))
|
|
||||||
(compile (eshell-flatten-and-stringify args))
|
|
||||||
(pop-to-buffer compilation-last-buffer))
|
|
||||||
(throw 'eshell-replace-command
|
|
||||||
(let ((l (eshell-stringify-list (flatten-tree args))))
|
|
||||||
(eshell-parse-command (car l) (cdr l))))))
|
|
||||||
(put 'eshell/ebc 'eshell-no-numeric-conversions t)
|
|
||||||
(defun eshell-view-file (file)
|
|
||||||
"View FILE. A version of `view-file' which properly rets the eshell prompt."
|
|
||||||
(interactive "fView file: ")
|
|
||||||
(unless (file-exists-p file) (error "%s does not exist" file))
|
|
||||||
(let ((buffer (find-file-noselect file)))
|
|
||||||
(if (eq (get (buffer-local-value 'major-mode buffer) 'mode-class)
|
|
||||||
'special)
|
|
||||||
(progn
|
|
||||||
(switch-to-buffer buffer)
|
|
||||||
(message "Not using View mode because the major mode is special"))
|
|
||||||
(let ((undo-window (list (window-buffer) (window-start)
|
|
||||||
(+ (window-point)
|
|
||||||
(length (funcall eshell-prompt-function))))))
|
|
||||||
(switch-to-buffer buffer)
|
|
||||||
(view-mode-enter (cons (selected-window) (cons nil undo-window))
|
|
||||||
'kill-buffer)))))
|
|
||||||
|
|
||||||
(defun eshell/less (&rest args)
|
|
||||||
"Invoke `view-file' on a file (ARGS).
|
|
||||||
|
|
||||||
\"less +42 foo\" will go to line 42 in the buffer for foo."
|
|
||||||
(while args
|
|
||||||
(if (string-match "\\`\\+\\([0-9]+\\)\\'" (car args))
|
|
||||||
(let* ((line (string-to-number (match-string 1 (pop args))))
|
|
||||||
(file (pop args)))
|
|
||||||
(eshell-view-file file)
|
|
||||||
(forward-line line))
|
|
||||||
(eshell-view-file (pop args)))))
|
|
||||||
(defalias 'eshell/more #'eshell/less)))
|
|
||||||
|
|
||||||
(use-package xterm-color
|
(use-package xterm-color
|
||||||
:defines (compilation-environment
|
:defines (compilation-environment
|
||||||
@@ -149,7 +89,7 @@
|
|||||||
:bind ("C-`" . eshell-toggle)
|
:bind ("C-`" . eshell-toggle)
|
||||||
:hook ((eshell-load . eat-eshell-mode)
|
:hook ((eshell-load . eat-eshell-mode)
|
||||||
(eshell-load . eat-eshell-visual-command-mode))
|
(eshell-load . eat-eshell-visual-command-mode))
|
||||||
:straight `(eat :repo "https://codeberg.org/akib/emacs-eat"
|
:ensure `(eat :repo "https://codeberg.org/akib/emacs-eat"
|
||||||
:files ("*.el" ("term" "term/*.el") "*.texi"
|
:files ("*.el" ("term" "term/*.el") "*.texi"
|
||||||
"*.ti" ("terminfo/e" "terminfo/e/*")
|
"*.ti" ("terminfo/e" "terminfo/e/*")
|
||||||
("terminfo/65" "terminfo/65/*")
|
("terminfo/65" "terminfo/65/*")
|
||||||
@@ -195,7 +135,7 @@
|
|||||||
|
|
||||||
(use-package eshell-syntax-highlighting
|
(use-package eshell-syntax-highlighting
|
||||||
:after eshell-mode
|
:after eshell-mode
|
||||||
:hook (after-init . eshell-syntax-highlighting-global-mode))
|
:hook (elpaca-after-init . eshell-syntax-highlighting-global-mode))
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-shell)
|
(provide 'init-shell)
|
||||||
|
|||||||
@@ -3,13 +3,24 @@
|
|||||||
;; Yasnippet settings
|
;; Yasnippet settings
|
||||||
(use-package yasnippet
|
(use-package yasnippet
|
||||||
:diminish
|
:diminish
|
||||||
:hook (after-init . yas-global-mode)
|
:hook (elpaca-after-init . yas-global-mode)
|
||||||
:hook ((LaTeX-mode . yas-minor-mode)
|
:hook ((post-self-insert . my/yas-try-expanding-auto-snippets))
|
||||||
(post-self-insert . my/yas-try-expanding-auto-snippets))
|
:commands (yas-minor-mode-on
|
||||||
|
yas-expand
|
||||||
|
yas-expand-snippet
|
||||||
|
yas-lookup-snippet
|
||||||
|
yas-insert-snippet
|
||||||
|
yas-new-snippet
|
||||||
|
yas-visit-snippet-file
|
||||||
|
yas-activate-extra-mode
|
||||||
|
yas-deactivate-extra-mode
|
||||||
|
yas-maybe-expand-abbrev-key-filter)
|
||||||
|
:init
|
||||||
|
(defvar yas-verbosity 2)
|
||||||
:config
|
:config
|
||||||
(elemacs-load-packages-incrementally '(eldoc easymenu help-mode))
|
(elemacs-load-packages-incrementally '(eldoc easymenu help-mode))
|
||||||
(use-package warnings
|
(use-package warnings
|
||||||
:straight nil
|
:ensure nil
|
||||||
:config
|
:config
|
||||||
(cl-pushnew '(yasnippet backquote-change)
|
(cl-pushnew '(yasnippet backquote-change)
|
||||||
warning-suppress-types
|
warning-suppress-types
|
||||||
@@ -27,9 +38,8 @@
|
|||||||
(let ((yas-buffer-local-condition ''(require-snippet-condition . auto)))
|
(let ((yas-buffer-local-condition ''(require-snippet-condition . auto)))
|
||||||
(yas-expand)))))
|
(yas-expand)))))
|
||||||
|
|
||||||
;; Collection of yasnippet snippets
|
(use-package doom-snippets
|
||||||
;; (use-package yasnippet-snippets)
|
:after yasnippet
|
||||||
|
:ensure (doom-snippets :type git :host github :repo "doomemacs/snippets" :files ("*.el" "*")))
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-snippet)
|
(provide 'init-snippet)
|
||||||
|
|||||||
@@ -1,16 +1,30 @@
|
|||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(use-package latex
|
(use-package latex
|
||||||
;; :straight (auctex :pre-build (("./autogen.sh")
|
:after tex
|
||||||
;; ("./configure" "--without-texmf-dir" "--with-lispdir=.")
|
:ensure (auctex :pre-build (("./autogen.sh")
|
||||||
;; ("make")))
|
("./configure" "--without-texmf-dir" "--with-lispdir=.")
|
||||||
:straight (auctex :type git :host nil :repo "https://git.savannah.gnu.org/git/auctex.git")
|
("make")))
|
||||||
|
;; :ensure (auctex :type git :host nil :repo "https://git.savannah.gnu.org/git/auctex.git")
|
||||||
|
:defines (TeX-auto-save
|
||||||
|
TeX-parse-self
|
||||||
|
TeX-electric-escape
|
||||||
|
TeX-PDF-mode
|
||||||
|
TeX-DVI-via-PDFTeX
|
||||||
|
TeX-clean-confirm
|
||||||
|
TeX-source-correlate-mode
|
||||||
|
TeX-source-correlate-method
|
||||||
|
TeX-display-help
|
||||||
|
TeX-show-compilation
|
||||||
|
TeX-command-extra-options
|
||||||
|
TeX-view-program-selection)
|
||||||
:mode (("\\.tex\\'" . LaTeX-mode))
|
:mode (("\\.tex\\'" . LaTeX-mode))
|
||||||
:hook ((LaTeX-mode . prettify-symbols-mode)
|
:hook ((LaTeX-mode . prettify-symbols-mode)
|
||||||
(LaTeX-mode . visual-line-mode)
|
(LaTeX-mode . visual-line-mode)
|
||||||
(LaTeX-mode . turn-on-reftex)
|
(LaTeX-mode . turn-on-reftex)
|
||||||
(LaTeX-mode . lsp-deferred)
|
(LaTeX-mode . lsp-deferred)
|
||||||
(LaTeX-mode . (lambda () (lsp-ui-mode -1))))
|
(LaTeX-mode . (lambda () (lsp-ui-mode -1)))
|
||||||
|
(LaTeX-mode . (lambda () (apheleia-mode -1))))
|
||||||
:bind (:map LaTeX-mode-map
|
:bind (:map LaTeX-mode-map
|
||||||
("C-S-e" . latex-math-from-calc)
|
("C-S-e" . latex-math-from-calc)
|
||||||
("C-c x" . TeX-clean)
|
("C-c x" . TeX-clean)
|
||||||
@@ -28,9 +42,6 @@
|
|||||||
(TeX-show-compilation nil)
|
(TeX-show-compilation nil)
|
||||||
(TeX-command-extra-options "-shell-escape")
|
(TeX-command-extra-options "-shell-escape")
|
||||||
(TeX-view-program-selection '((output-pdf "displayline")))
|
(TeX-view-program-selection '((output-pdf "displayline")))
|
||||||
(LaTeX-indent-level 0)
|
|
||||||
(LaTeX-item-indent 0)
|
|
||||||
(TeX-newline-function 'newline)
|
|
||||||
:config
|
:config
|
||||||
(add-hook 'LaTeX-mode-hook '(lambda ()
|
(add-hook 'LaTeX-mode-hook '(lambda ()
|
||||||
(setq TeX-command-default "LaTeXMk")))
|
(setq TeX-command-default "LaTeXMk")))
|
||||||
@@ -64,7 +75,14 @@
|
|||||||
;; (with-eval-after-load 'eglot
|
;; (with-eval-after-load 'eglot
|
||||||
;; (add-to-list 'eglot-server-programs '((LaTeX-mode latex-mode) "texlab")))
|
;; (add-to-list 'eglot-server-programs '((LaTeX-mode latex-mode) "texlab")))
|
||||||
|
|
||||||
(setq reftex-plug-into-AUCTeX t))
|
(setq reftex-plug-into-AUCTeX t)
|
||||||
|
(use-package texpresso
|
||||||
|
:ensure (:host github :repo "let-def/texpresso" :files ("emacs/*.el"))
|
||||||
|
:hook (texpresso-mode . texpresso-sync-mode)
|
||||||
|
:after auctex
|
||||||
|
:bind (:map LaTeX-mode-map
|
||||||
|
("C-c C-p" . texpresso)))
|
||||||
|
)
|
||||||
|
|
||||||
(use-package cdlatex
|
(use-package cdlatex
|
||||||
:diminish
|
:diminish
|
||||||
@@ -77,6 +95,7 @@
|
|||||||
(?c ("\\circ"))
|
(?c ("\\circ"))
|
||||||
))
|
))
|
||||||
(setq cdlatex-math-modify-alist '((?f "\\mathbb" nil t nil nil)))
|
(setq cdlatex-math-modify-alist '((?f "\\mathbb" nil t nil nil)))
|
||||||
|
|
||||||
(defun tjh/cdlatex-yas-expand ()
|
(defun tjh/cdlatex-yas-expand ()
|
||||||
"Resolve the conflict between cdlatex and yasnippet. When this
|
"Resolve the conflict between cdlatex and yasnippet. When this
|
||||||
function returns true, the default `cdlatex-tab` will not be
|
function returns true, the default `cdlatex-tab` will not be
|
||||||
@@ -89,10 +108,42 @@ expansion, then cdlatex expansion."
|
|||||||
t
|
t
|
||||||
nil)
|
nil)
|
||||||
nil))
|
nil))
|
||||||
(add-hook 'cdlatex-tab-hook 'tjh/cdlatex-yas-expand))
|
(add-hook 'cdlatex-tab-hook 'tjh/cdlatex-yas-expand)
|
||||||
|
(cdlatex-reset-mode))
|
||||||
|
|
||||||
;; (use-package texpresso
|
(use-package lazytab
|
||||||
;; :defer nil
|
:demand t
|
||||||
;; :load-path "~/.emacs.d/lisp/packages/")
|
:after cdlatex latex
|
||||||
|
:ensure '(lazytab :type git :host github :repo "karthink/lazytab" :files ("*.el"))
|
||||||
|
:bind (:map LaTeX-mode-map
|
||||||
|
("C-x |" . (lambda () (interactive) (lazytab-position-cursor-and-edit))))
|
||||||
|
:bind (:map orgtbl-mode-map
|
||||||
|
("<tab>" . lazytab-org-table-next-field-maybe)
|
||||||
|
("TAB" . lazytab-org-table-next-field-maybe))
|
||||||
|
:config
|
||||||
|
(add-hook 'cdlatex-tab-hook #'lazytab-cdlatex-or-orgtbl-next-field 90)
|
||||||
|
(dolist (cmd '(("smat" "Insert smallmatrix env"
|
||||||
|
"\\left( \\begin{smallmatrix} ? \\end{smallmatrix} \\right)"
|
||||||
|
lazytab-position-cursor-and-edit
|
||||||
|
nil nil t)
|
||||||
|
("bmat" "Insert bmatrix env"
|
||||||
|
"\\begin{bmatrix} ? \\end{bmatrix}"
|
||||||
|
lazytab-position-cursor-and-edit
|
||||||
|
nil nil t)
|
||||||
|
("pmat" "Insert pmatrix env"
|
||||||
|
"\\begin{pmatrix} ? \\end{pmatrix}"
|
||||||
|
lazytab-position-cursor-and-edit
|
||||||
|
nil nil t)
|
||||||
|
("ali" "Insert pmatrix env"
|
||||||
|
"\\begin{aligned} ? \\end{aligned}"
|
||||||
|
lazytab-position-cursor-and-edit
|
||||||
|
nil nil t)
|
||||||
|
("tbl" "Insert table"
|
||||||
|
"\\begin{table}\n\\centering ? \\caption{}\n\\end{table}\n"
|
||||||
|
lazytab-position-cursor-and-edit
|
||||||
|
nil t nil)))
|
||||||
|
(push cmd cdlatex-command-alist))
|
||||||
|
(cdlatex-reset-mode)
|
||||||
|
)
|
||||||
|
|
||||||
(provide 'init-tex)
|
(provide 'init-tex)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
treemacs-missing-project-action 'remove
|
treemacs-missing-project-action 'remove
|
||||||
treemacs-user-mode-line-format 'none
|
treemacs-user-mode-line-format 'none
|
||||||
treemacs-sorting 'alphabetic-asc
|
treemacs-sorting 'alphabetic-asc
|
||||||
treemacs-follow-after-init t
|
treemacs-follow-elpaca-after-init t
|
||||||
treemacs-width 30
|
treemacs-width 30
|
||||||
treemacs-show-hidden-files nil
|
treemacs-show-hidden-files nil
|
||||||
treemacs-silent-refresh t
|
treemacs-silent-refresh t
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
(use-package treemacs-tab-bar ;;treemacs-tab-bar if you use tab-bar-mode
|
(use-package treemacs-tab-bar ;;treemacs-tab-bar if you use tab-bar-mode
|
||||||
:after (treemacs)
|
:after (treemacs)
|
||||||
:straight t
|
:ensure t
|
||||||
:config (treemacs-set-scope-type 'Tabs))
|
:config (treemacs-set-scope-type 'Tabs))
|
||||||
|
|
||||||
(use-package treemacs-nerd-icons
|
(use-package treemacs-nerd-icons
|
||||||
|
|||||||
@@ -1,28 +1,17 @@
|
|||||||
;; -*- lexical-binding: t;-*-
|
;; -*- lexical-binding: t;-*-
|
||||||
|
|
||||||
|
|
||||||
(use-package typst-ts-mode
|
(use-package typst-ts-mode
|
||||||
:straight (:type git :host codeberg :repo "meow_king/typst-ts-mode")
|
:ensure (:type git :host codeberg :repo "meow_king/typst-ts-mode")
|
||||||
:custom
|
:hook (typst-ts-mode . lsp-deferred)
|
||||||
;; (typst-ts-watch-options "--open")
|
|
||||||
(typst-ts-mode-grammar-location (expand-file-name "tree-sitter/libtree-sitter-typst.so" user-emacs-directory))
|
|
||||||
(typst-ts-mode-enable-raw-blocks-highlight t)
|
|
||||||
:config
|
:config
|
||||||
|
;; (typst-ts-watch-options "--open")
|
||||||
|
(setq typst-ts-mode-grammar-location (expand-file-name "tree-sitter/libtree-sitter-typst.so" user-emacs-directory))
|
||||||
|
(setq typst-ts-mode-enable-raw-blocks-highlight t)
|
||||||
(keymap-set typst-ts-mode-map "C-c C-c" #'typst-ts-tmenu)
|
(keymap-set typst-ts-mode-map "C-c C-c" #'typst-ts-tmenu)
|
||||||
;; (with-eval-after-load 'eglot
|
|
||||||
;; (with-eval-after-load 'typst-ts-mode
|
|
||||||
;; (add-to-list 'eglot-server-programs
|
|
||||||
;; `((typst-ts-mode) .
|
|
||||||
;; ,(eglot-alternatives `(,typst-ts-lsp-download-path
|
|
||||||
;; "tinymist"
|
|
||||||
;; "typst-lsp"))))))
|
|
||||||
(setq typst-ts-preview-function 'find-file-other-window))
|
(setq typst-ts-preview-function 'find-file-other-window))
|
||||||
|
|
||||||
(use-package typst-preview
|
(use-package typst-preview
|
||||||
:straight (:type git :host github :repo "havarddj/typst-preview.el")
|
:ensure (:type git :host github :repo "havarddj/typst-preview.el")
|
||||||
:init
|
|
||||||
(setq typst-preview-autostart t) ; start preview automatically when typst-preview-mode is activated
|
|
||||||
(setq typst-preview-open-browser-automatically t) ; open browser automatically when typst-preview-start is run
|
|
||||||
|
|
||||||
:custom
|
:custom
|
||||||
(typst-preview-browser "default") ; this is the default option; other options are `eaf-browser' or `xwidget'.
|
(typst-preview-browser "default") ; this is the default option; other options are `eaf-browser' or `xwidget'.
|
||||||
@@ -31,6 +20,8 @@
|
|||||||
(typst-preview-partial-rendering t) ; enable partial rendering
|
(typst-preview-partial-rendering t) ; enable partial rendering
|
||||||
|
|
||||||
:config
|
:config
|
||||||
|
(setq typst-preview-autostart t) ; start preview automatically when typst-preview-mode is activated
|
||||||
|
(setq typst-preview-open-browser-automatically t) ; open browser automatically when typst-preview-start is run
|
||||||
(define-key typst-ts-mode-map (kbd "C-c C-j") 'typst-preview-send-position)
|
(define-key typst-ts-mode-map (kbd "C-c C-j") 'typst-preview-send-position)
|
||||||
(define-key typst-ts-mode-map (kbd "C-c C-l") #'typst-preview-mode))
|
(define-key typst-ts-mode-map (kbd "C-c C-l") #'typst-preview-mode))
|
||||||
|
|
||||||
|
|||||||
163
lisp/init-ui.el
163
lisp/init-ui.el
@@ -19,36 +19,48 @@
|
|||||||
(add-to-list 'default-frame-alist '(undecorated-round . t))
|
(add-to-list 'default-frame-alist '(undecorated-round . t))
|
||||||
|
|
||||||
(use-package solaire-mode
|
(use-package solaire-mode
|
||||||
:hook (after-init . solaire-global-mode))
|
:hook (elpaca-after-init . solaire-global-mode))
|
||||||
|
|
||||||
(use-package modus-themes
|
(use-package modus-themes
|
||||||
:init
|
:init
|
||||||
(setq modus-themes-italic-constructs t
|
(setq modus-themes-italic-constructs t
|
||||||
modus-themes-bold-constructs t
|
modus-themes-bold-constructs t
|
||||||
modus-themes-mixed-fonts t))
|
modus-themes-mixed-fonts t)
|
||||||
|
:commands (modus-themes-load-random-dark
|
||||||
|
modus-themes-load-random-light
|
||||||
|
modus-themes-load-random))
|
||||||
|
|
||||||
;; (use-package standard-themes :demand t
|
|
||||||
;; :config
|
|
||||||
;; (modus-themes-load-theme 'standard-light-tinted))
|
|
||||||
|
|
||||||
;; fix this
|
|
||||||
(use-package doric-themes
|
(use-package doric-themes
|
||||||
:bind ("<f5>" . doric-themes-load-random)
|
;; :bind ("<f5>" . doric-themes-load-random)
|
||||||
:bind ("C-<f5>" . (lambda () (interactive) (doric-themes-load-random 'light)))
|
;; :bind ("C-<f5>" . (lambda () (interactive) (doric-themes-load-random 'light)))
|
||||||
:bind ("M-<f5>" . (lambda () (interactive) (doric-themes-load-random 'dark)))
|
;; :bind ("M-<f5>" . (lambda () (interactive) (doric-themes-load-random 'dark)))
|
||||||
:commands doric-themes-load-random
|
:commands doric-themes-load-random)
|
||||||
;; :init
|
|
||||||
;; (defun synchronise-theme ()
|
(use-package ef-themes
|
||||||
;; (let* ((hour (string-to-number
|
:bind ("<f5>" . modus-themes-load-random)
|
||||||
;; (substring (current-time-string) 11 13))))
|
:bind ("C-<f5>" . modus-themes-load-random-light)
|
||||||
;; (if (member hour (number-sequence 6 18))
|
:bind ("M-<f5>" . modus-themes-load-random-dark)
|
||||||
;; (doric-themes-load-random 'light)
|
:init
|
||||||
;; (doric-themes-load-random 'dark))))
|
(setq ef-themes-light-themes '(ef-arbutus ef-cyprus ef-day ef-duo-light ef-eagle ef-elea-light
|
||||||
;; (synchronise-theme)
|
ef-kassio ef-melissa-light ef-orange ef-reverie
|
||||||
;; (run-with-timer 3600 3600 'synchronise-theme)
|
ef-spring ef-summer ef-trio-light ef-tritanopia-light))
|
||||||
)
|
|
||||||
|
(setq ef-themes-dark-themes '(ef-autumn ef-bio ef-cherie ef-dark ef-deuteranopia-dark ef-dream
|
||||||
|
ef-duo-dark ef-elea-dark ef-fig ef-maris-dark
|
||||||
|
ef-melissa-dark ef-night ef-owl ef-rosa ef-symbiosis
|
||||||
|
ef-trio-dark ef-tritanopia-dark ef-winter))
|
||||||
|
;; This makes the Modus commands listed below consider only the Ef
|
||||||
|
;; themes. For an alternative that includes Modus and all
|
||||||
|
;; derivative themes (like Ef), enable the
|
||||||
|
;; `modus-themes-include-derivatives-mode' instead. The manual of
|
||||||
|
;; the Ef themes has a section that explains all the possibilities:
|
||||||
|
;;
|
||||||
|
;; - Evaluate `(info "(ef-themes) Working with other Modus themes or taking over Modus")'
|
||||||
|
;; - Visit <https://protesilaos.com/emacs/ef-themes#h:6585235a-5219-4f78-9dd5-6a64d87d1b6e>
|
||||||
|
(ef-themes-take-over-modus-themes-mode 1))
|
||||||
|
|
||||||
(use-package auto-dark
|
(use-package auto-dark
|
||||||
|
:when (and (eq system-type 'darwin) (display-graphic-p))
|
||||||
:ensure t
|
:ensure t
|
||||||
;; :custom
|
;; :custom
|
||||||
;; (auto-dark-themes '((doric-beach) (leuven)))
|
;; (auto-dark-themes '((doric-beach) (leuven)))
|
||||||
@@ -58,14 +70,17 @@
|
|||||||
(auto-dark-dark-mode
|
(auto-dark-dark-mode
|
||||||
. (lambda ()
|
. (lambda ()
|
||||||
;; something to execute when dark mode is detected
|
;; something to execute when dark mode is detected
|
||||||
(doric-themes-load-random 'dark))
|
;; (doric-themes-load-random 'dark))
|
||||||
)
|
(ef-themes-load-random-dark)
|
||||||
|
))
|
||||||
(auto-dark-light-mode
|
(auto-dark-light-mode
|
||||||
. (lambda ()
|
. (lambda ()
|
||||||
;; something to execute when light mode is detected
|
;; something to execute when light mode is detected
|
||||||
(doric-themes-load-random 'light)
|
;; (doric-themes-load-random 'light)
|
||||||
|
(ef-themes-load-random-light)
|
||||||
))
|
))
|
||||||
:hook after-init)
|
:hook elpaca-after-init)
|
||||||
|
|
||||||
|
|
||||||
(use-package rainbow-delimiters
|
(use-package rainbow-delimiters
|
||||||
:hook ((prog-mode . rainbow-delimiters-mode)
|
:hook ((prog-mode . rainbow-delimiters-mode)
|
||||||
@@ -76,20 +91,22 @@
|
|||||||
:hook text-mode
|
:hook text-mode
|
||||||
:hook prog-mode)
|
:hook prog-mode)
|
||||||
|
|
||||||
(use-package mood-line
|
;; (use-package mood-line
|
||||||
:hook emacs-startup)
|
;; :hook emacs-startup
|
||||||
|
;; :custom (mood-line-glyph-alist mood-line-glyphs-fira-code))
|
||||||
|
|
||||||
;; (use-package doom-modeline
|
(use-package doom-modeline
|
||||||
;; :hook (after-init . doom-modeline-mode)
|
:hook (elpaca-after-init . doom-modeline-mode)
|
||||||
;; :config
|
:config
|
||||||
;; (setq doom-modeline-support-imenu t
|
(setq doom-modeline-support-imenu t
|
||||||
;; doom-modeline-height 30
|
doom-modeline-icons nil
|
||||||
;; doom-modeline-buffer-file-name-style 'relative-from-project
|
doom-modeline-height 30
|
||||||
;; doom-modeline-enable-word-count t
|
doom-modeline-buffer-file-name-style 'relative-from-project
|
||||||
;; ;; doom-modeline-project-name t
|
doom-modeline-enable-word-count t
|
||||||
;; doom-modeline-check 'simple
|
;; doom-modeline-project-name t
|
||||||
;; doom-modeline-buffer-encoding nil
|
doom-modeline-check 'simple
|
||||||
;; doom-modeline-major-mode-icon nil))
|
doom-modeline-buffer-encoding nil
|
||||||
|
doom-modeline-major-mode-icon nil))
|
||||||
|
|
||||||
(use-package hide-mode-line
|
(use-package hide-mode-line
|
||||||
:autoload turn-off-hide-mode-line-mode
|
:autoload turn-off-hide-mode-line-mode
|
||||||
@@ -108,19 +125,19 @@
|
|||||||
window-divider-default-right-width 1)
|
window-divider-default-right-width 1)
|
||||||
(add-hook 'window-setup-hook #'window-divider-mode)
|
(add-hook 'window-setup-hook #'window-divider-mode)
|
||||||
|
|
||||||
(pcase system-type
|
;; (pcase system-type
|
||||||
('darwin ; macOS
|
;; ('darwin ; macOS
|
||||||
(set-face-attribute 'default nil :font "Sarasa Term SC-22") ; 20 * 1.5
|
(set-face-attribute 'default nil :font "Sarasa Term SC-22") ; 20 * 1.5
|
||||||
(set-face-attribute 'variable-pitch nil :font "Bookerly-22" :weight 'light)
|
(set-face-attribute 'variable-pitch nil :font "Bookerly-20" :weight 'light)
|
||||||
(set-face-attribute 'fixed-pitch nil :font "Sarasa Term SC-22")
|
(set-face-attribute 'fixed-pitch nil :font "Sarasa Mono TC Nerd Font-22")
|
||||||
|
|
||||||
(add-to-list 'default-frame-alist '(height . 53))
|
(add-to-list 'default-frame-alist '(height . 53))
|
||||||
(add-to-list 'default-frame-alist '(width . 90)))
|
(add-to-list 'default-frame-alist '(width . 90))
|
||||||
|
|
||||||
('gnu/linux ; Linux (including Debian)
|
;; ('gnu/linux ; Linux (including Debian)
|
||||||
(set-face-attribute 'variable-pitch nil :font "Sarasa Mono TC Nerd Font-14") ; 20 * 1.5
|
;; (set-face-attribute 'variable-pitch nil :font "Sarasa Mono TC Nerd Font-14") ; 20 * 1.5
|
||||||
(add-to-list 'default-frame-alist '(height . 40))
|
;; (add-to-list 'default-frame-alist '(height . 40))
|
||||||
(add-to-list 'default-frame-alist '(width . 90))))
|
;; (add-to-list 'default-frame-alist '(width . 90))))
|
||||||
|
|
||||||
(use-package mixed-pitch
|
(use-package mixed-pitch
|
||||||
:diminish
|
:diminish
|
||||||
@@ -129,13 +146,13 @@
|
|||||||
|
|
||||||
(use-package diff-hl
|
(use-package diff-hl
|
||||||
:diminish
|
:diminish
|
||||||
:hook (after-init global-diff-hl-mode)
|
:hook (elpaca-after-init global-diff-hl-mode)
|
||||||
:hook (after-init diff-hl-dired-mode)
|
:hook (elpaca-after-init diff-hl-dired-mode)
|
||||||
:hook (after-init diff-hl-flydiff-mode))
|
:hook (elpaca-after-init diff-hl-flydiff-mode))
|
||||||
|
|
||||||
;; Easily adjust the font size in all frames
|
;; Easily adjust the font size in all frames
|
||||||
(use-package default-text-scale
|
(use-package default-text-scale
|
||||||
:hook (after-init . default-text-scale-mode)
|
:hook (elpaca-after-init . default-text-scale-mode)
|
||||||
:bind (:map default-text-scale-mode-map
|
:bind (:map default-text-scale-mode-map
|
||||||
("C-s-=" . default-text-scale-increase)
|
("C-s-=" . default-text-scale-increase)
|
||||||
("C-s--" . default-text-scale-decrease)
|
("C-s--" . default-text-scale-decrease)
|
||||||
@@ -153,31 +170,16 @@
|
|||||||
mouse-wheel-progressive-speed nil)
|
mouse-wheel-progressive-speed nil)
|
||||||
|
|
||||||
(use-package nerd-icons
|
(use-package nerd-icons
|
||||||
:straight (nerd-icons
|
:ensure (nerd-icons
|
||||||
:type git
|
:type git
|
||||||
:host github
|
:host github
|
||||||
:repo "rainstormstudio/nerd-icons.el")
|
:repo "rainstormstudio/nerd-icons.el"))
|
||||||
;; :files (:defaults "data"))
|
;; :files (:defaults "data"))
|
||||||
:custom
|
;; :custom
|
||||||
;; The Nerd Font you want to use in GUI
|
;; The Nerd Font you want to use in GUI
|
||||||
;; "Symbols Nerd Font Mono" is the default and is recommended
|
;; "Symbols Nerd Font Mono" is the default and is recommended
|
||||||
;; but you can use any other Nerd Font if you want
|
;; but you can use any other Nerd Font if you want
|
||||||
(nerd-icons-font-family "Symbols Nerd Font Mono"))
|
;; (nerd-icons-font-family "Symbols Nerd Font Mono"))
|
||||||
|
|
||||||
(use-package nerd-icons-ibuffer
|
|
||||||
:straight t
|
|
||||||
:hook (ibuffer-mode-hook . nerd-icons-ibuffer-mode))
|
|
||||||
|
|
||||||
;; Display transient in child frame
|
|
||||||
;; (use-package transient-posframe
|
|
||||||
;; :diminish
|
|
||||||
;; :commands transient-posframe-mode
|
|
||||||
;; :custom-face
|
|
||||||
;; (transient-posframe-border ((t (:inherit posframe-border :background unspecified))))
|
|
||||||
;; :hook after-init
|
|
||||||
;; :init (setq transient-mode-line-format nil
|
|
||||||
;; transient-posframe-parameters '((left-fringe . 8)
|
|
||||||
;; (right-fringe . 8))))
|
|
||||||
|
|
||||||
(with-no-warnings
|
(with-no-warnings
|
||||||
(when (featurep 'ns)
|
(when (featurep 'ns)
|
||||||
@@ -186,18 +188,29 @@
|
|||||||
;; Don't open a file in a new frame
|
;; Don't open a file in a new frame
|
||||||
(setq ns-pop-up-frames nil)))
|
(setq ns-pop-up-frames nil)))
|
||||||
|
|
||||||
(use-package beacon
|
;; hl current line
|
||||||
:diminish
|
(use-package hl-line
|
||||||
:hook after-init)
|
:ensure nil
|
||||||
|
:hook ((elpaca-after-init . global-hl-line-mode)
|
||||||
|
((dashboard-mode eshell-mode shell-mode term-mode vterm-mode eat-mode) .
|
||||||
|
(lambda () (setq-local global-hl-line-mode nil)))))
|
||||||
|
|
||||||
|
;; (use-package beacon
|
||||||
|
;; :diminish
|
||||||
|
;; :hook elpaca-after-init)
|
||||||
|
|
||||||
(use-package spacious-padding
|
(use-package spacious-padding
|
||||||
:diminish
|
:diminish
|
||||||
:hook after-init)
|
:hook elpaca-after-init)
|
||||||
|
|
||||||
;; Eval result overlay
|
;; Eval result overlay
|
||||||
(use-package eros
|
(use-package eros
|
||||||
:hook after-init
|
:hook elpaca-after-init
|
||||||
:bind (([remap eval-defun] . eros-eval-defun)
|
:bind (([remap eval-defun] . eros-eval-defun)
|
||||||
([remap eval-last-sexp] . eros-eval-last-sexp)))
|
([remap eval-last-sexp] . eros-eval-last-sexp)))
|
||||||
|
|
||||||
|
(use-package goggles
|
||||||
|
:diminish
|
||||||
|
:hook (prog-mode text-mode conf-mode))
|
||||||
|
|
||||||
(provide 'init-ui)
|
(provide 'init-ui)
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package transient)
|
||||||
|
|
||||||
(use-package which-key
|
(use-package which-key
|
||||||
:diminish
|
:diminish
|
||||||
:functions childframe-completion-workable-p
|
:functions childframe-completion-workable-p
|
||||||
:bind ("C-h M-m" . which-key-show-major-mode)
|
:bind ("C-h M-m" . which-key-show-major-mode)
|
||||||
:hook (after-init . which-key-mode)
|
:hook (elpaca-after-init . which-key-mode)
|
||||||
:init (setq which-key-max-description-length 30
|
:init (setq which-key-max-description-length 30
|
||||||
which-key-idle-delay 0.5
|
which-key-idle-delay 0.5
|
||||||
which-key-lighter nil
|
which-key-lighter nil
|
||||||
@@ -28,20 +30,6 @@
|
|||||||
(which-key-add-key-based-replacements "C-x t" "tabs")
|
(which-key-add-key-based-replacements "C-x t" "tabs")
|
||||||
(which-key-add-key-based-replacements "C-x v" "version control"))
|
(which-key-add-key-based-replacements "C-x v" "version control"))
|
||||||
|
|
||||||
(use-package grep
|
|
||||||
:straight nil
|
|
||||||
:autoload grep-apply-setting
|
|
||||||
:init
|
|
||||||
(when (executable-find "rg")
|
|
||||||
(grep-apply-setting
|
|
||||||
'grep-command "rg --color=auto --null -nH --no-heading -e ")
|
|
||||||
(grep-apply-setting
|
|
||||||
'grep-template "rg --color=auto --null --no-heading -g '!*/' -e <R> <D>")
|
|
||||||
(grep-apply-setting
|
|
||||||
'grep-find-command '("rg --color=auto --null -nH --no-heading -e ''" . 38))
|
|
||||||
(grep-apply-setting
|
|
||||||
'grep-find-template "rg --color=auto --null -nH --no-heading -e <R> <D>")))
|
|
||||||
|
|
||||||
;; Writable grep buffer
|
;; Writable grep buffer
|
||||||
(use-package wgrep
|
(use-package wgrep
|
||||||
:init (setq wgrep-auto-save-buffer t
|
:init (setq wgrep-auto-save-buffer t
|
||||||
@@ -49,7 +37,7 @@
|
|||||||
|
|
||||||
;; Fast search tool `ripgrep'
|
;; Fast search tool `ripgrep'
|
||||||
(use-package rg
|
(use-package rg
|
||||||
;; :hook (after-init . rg-enable-default-bindings)
|
:bind ("C-c s" . rg-menu)
|
||||||
:bind (:map rg-global-map
|
:bind (:map rg-global-map
|
||||||
("c" . rg-dwim-current-dir)
|
("c" . rg-dwim-current-dir)
|
||||||
("f" . rg-dwim-current-file)
|
("f" . rg-dwim-current-file)
|
||||||
@@ -60,19 +48,37 @@
|
|||||||
(rg-enable-default-bindings)
|
(rg-enable-default-bindings)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; (use-package pdf-tools
|
|
||||||
;; :config
|
|
||||||
;; (pdf-tools-install))
|
|
||||||
|
|
||||||
;; (use-package saveplace-pdf-view
|
|
||||||
;; :after pdf-tools
|
|
||||||
;; :demand t)
|
|
||||||
|
|
||||||
;; (use-package keycast
|
|
||||||
;; :hook (after-init . keycast-mode-line-mode)
|
|
||||||
;; :config
|
|
||||||
;; (setq keycast-mode-line-remove-tail-elements nil))
|
|
||||||
|
|
||||||
(use-package elcord)
|
(use-package elcord)
|
||||||
|
|
||||||
|
;; (when (display-graphic-p)
|
||||||
|
;; (use-package pdf-view
|
||||||
|
;; :ensure pdf-tools
|
||||||
|
;; :diminish (pdf-view-themed-minor-mode
|
||||||
|
;; pdf-view-midnight-minor-mode
|
||||||
|
;; pdf-view-roll-minor-mode
|
||||||
|
;; pdf-view-printer-minor-mode)
|
||||||
|
;; :functions pdf-tools-install
|
||||||
|
;; :hook ((pdf-tools-enabled . pdf-view-auto-slice-minor-mode)
|
||||||
|
;; (pdf-tools-enabled . pdf-view-roll-minor-mode)
|
||||||
|
;; (pdf-tools-enabled . pdf-isearch-minor-mode))
|
||||||
|
;; ;; :mode ("\\.[pP][dD][fF]\\'" . pdf-view-mode)
|
||||||
|
;; :magic ("%PDF" . pdf-view-mode)
|
||||||
|
;; :bind (:map pdf-view-mode-map
|
||||||
|
;; ("C-s" . isearch-forward))
|
||||||
|
;; ;; :init (setq pdf-view-use-scaling t
|
||||||
|
;; ;; pdf-view-use-imagemagick nil)
|
||||||
|
;; :config
|
||||||
|
;; ;; Activate the package
|
||||||
|
;; (pdf-tools-install t nil t nil))
|
||||||
|
;; ;; Recover last viewed position
|
||||||
|
;; (use-package saveplace-pdf-view
|
||||||
|
;; :when (ignore-errors (pdf-info-check-epdfinfo) t)
|
||||||
|
;; :autoload (saveplace-pdf-view-find-file-advice saveplace-pdf-view-to-alist-advice)
|
||||||
|
;; :functions pdf-info-check-epdfinfo
|
||||||
|
;; :init
|
||||||
|
;; (advice-add 'save-place-find-file-hook :around #'saveplace-pdf-view-find-file-advice)
|
||||||
|
;; (advice-add 'save-place-to-alist :around #'saveplace-pdf-view-to-alist-advice)))
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-utils)
|
(provide 'init-utils)
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(use-package transient)
|
|
||||||
|
|
||||||
(use-package magit
|
(use-package magit
|
||||||
:defer t
|
:defer t
|
||||||
:bind (("C-c g" . magit-dispatch))
|
:bind (("C-c g" . magit-dispatch))
|
||||||
@@ -49,7 +47,7 @@
|
|||||||
(user-error "Cannot revert the timemachine buffer"))))))
|
(user-error "Cannot revert the timemachine buffer"))))))
|
||||||
|
|
||||||
(use-package smerge-mode
|
(use-package smerge-mode
|
||||||
:straight nil
|
:ensure nil
|
||||||
:diminish
|
:diminish
|
||||||
:pretty-hydra
|
:pretty-hydra
|
||||||
((:title (pretty-hydra-title "Smerge" 'octicon "nf-oct-diff")
|
((:title (pretty-hydra-title "Smerge" 'octicon "nf-oct-diff")
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
;; Restore old window configurations
|
;; Restore old window configurations
|
||||||
|
|
||||||
(use-package winner
|
(use-package winner
|
||||||
:straight nil
|
:ensure nil
|
||||||
:commands (winner-undo winner-redo)
|
:commands (winner-undo winner-redo)
|
||||||
:hook after-init
|
:hook elpaca-after-init
|
||||||
:init (setq winner-boring-buffers '("*Completions*"
|
:init (setq winner-boring-buffers '("*Completions*"
|
||||||
"*Compile-Log*"
|
"*Compile-Log*"
|
||||||
"*inferior-lisp*"
|
"*inferior-lisp*"
|
||||||
@@ -39,6 +39,7 @@
|
|||||||
(use-package ace-window
|
(use-package ace-window
|
||||||
:hook (emacs-startup . ace-window-display-mode)
|
:hook (emacs-startup . ace-window-display-mode)
|
||||||
:bind (([remap other-window] . ace-window)
|
:bind (([remap other-window] . ace-window)
|
||||||
|
("M-o" . ace-window)
|
||||||
("C-c w" . ace-window-hydra/body))
|
("C-c w" . ace-window-hydra/body))
|
||||||
:custom
|
:custom
|
||||||
(aw-scope 'frame)
|
(aw-scope 'frame)
|
||||||
|
|||||||
@@ -3,32 +3,35 @@
|
|||||||
|
|
||||||
;; (use-package project)
|
;; (use-package project)
|
||||||
(use-package projectile
|
(use-package projectile
|
||||||
:hook after-init
|
:hook elpaca-after-init
|
||||||
:config
|
:config
|
||||||
;; Recommended keymap prefix on macOS
|
;; Recommended keymap prefix on macOS
|
||||||
(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
|
(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
|
||||||
;; Recommended keymap prefix on Windows/Linux
|
;; Recommended keymap prefix on Windows/Linux
|
||||||
(define-key projectile-mode-map (kbd "C-x p") 'projectile-command-map))
|
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map))
|
||||||
|
|
||||||
(use-package ibuffer-projectile
|
(use-package ibuffer
|
||||||
|
:ensure nil
|
||||||
|
:bind ("C-x C-b" . ibuffer)
|
||||||
|
:bind (:map ibuffer-mode-map
|
||||||
|
("M-o" . nil))
|
||||||
:config
|
:config
|
||||||
|
(add-to-list 'ibuffer-help-buffer-modes 'helpful-mode)
|
||||||
|
(add-to-list 'ibuffer-help-buffer-modes 'Man-mode)
|
||||||
|
:init (setq ibuffer-filter-group-name-face '(:inherit (font-lock-string-face bold))))
|
||||||
|
(use-package nerd-icons-ibuffer
|
||||||
|
:ensure t
|
||||||
|
:hook (ibuffer-mode-hook . nerd-icons-ibuffer-mode))
|
||||||
|
(use-package ibuffer-projectile
|
||||||
|
:init
|
||||||
(add-hook 'ibuffer-hook
|
(add-hook 'ibuffer-hook
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(ibuffer-projectile-set-filter-groups)
|
(ibuffer-projectile-set-filter-groups)
|
||||||
(unless (eq ibuffer-sorting-mode 'alphabetic)
|
(unless (eq ibuffer-sorting-mode 'alphabetic)
|
||||||
(ibuffer-do-sort-by-alphabetic)))))
|
(ibuffer-do-sort-by-alphabetic)))))
|
||||||
|
|
||||||
;; (use-package consult-projectile
|
|
||||||
;; :bind (([remap projectile-find-file] . consult-projectile-find-file)
|
|
||||||
;; ([remap projectile-recentf] . consult-projectile-recentf)
|
|
||||||
;; ([remap projectile-switch-project] . consult-projectile-switch-project)
|
|
||||||
;; ([remap projectile-switch-to-buffer] . consult-projectile-switch-to-buffer)
|
|
||||||
;; ([remap projectile-find-dir] . consult-projectile-find-dir)))
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-x C-b") #'ibuffer)
|
|
||||||
|
|
||||||
(use-package beframe
|
(use-package beframe
|
||||||
:hook after-init
|
:hook elpaca-after-init
|
||||||
:bind ("C-x f" . other-frame-prefix)
|
:bind ("C-x f" . other-frame-prefix)
|
||||||
:config
|
:config
|
||||||
(define-key global-map (kbd "C-c b") #'beframe-prefix-map)
|
(define-key global-map (kbd "C-c b") #'beframe-prefix-map)
|
||||||
@@ -49,6 +52,7 @@
|
|||||||
(beframe--assume
|
(beframe--assume
|
||||||
(list (get-buffer buf))))))
|
(list (get-buffer buf))))))
|
||||||
|
|
||||||
|
;; Beframe integration with other packages
|
||||||
(with-eval-after-load 'consult
|
(with-eval-after-load 'consult
|
||||||
(defun consult-beframe-buffer-list (&optional frame)
|
(defun consult-beframe-buffer-list (&optional frame)
|
||||||
"Return the list of buffers from `beframe-buffer-names' sorted by visibility.
|
"Return the list of buffers from `beframe-buffer-names' sorted by visibility.
|
||||||
|
|||||||
19
lisp/init-writing.el
Normal file
19
lisp/init-writing.el
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package flyspell
|
||||||
|
:ensure nil
|
||||||
|
:commands flyspell-mode
|
||||||
|
:bind (:map flyspell-mode-map
|
||||||
|
("C-M-i" . nil)
|
||||||
|
("C-;" . nil)
|
||||||
|
("C-," . nil)
|
||||||
|
("C-; C-4" . 'flyspell-auto-correct-previous-word)
|
||||||
|
;; ("C-; n" . 'flyspell-goto-next-error)
|
||||||
|
))
|
||||||
|
|
||||||
|
(use-package jinx
|
||||||
|
:hook ((text-mode prog-mode conf-mode org-mode) . jinx-mode)
|
||||||
|
:commands jinx-mode
|
||||||
|
:bind ([remap ispell-word] . jinx-correct))
|
||||||
|
|
||||||
|
(provide 'init-writing)
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key : abstract
|
|
||||||
# group: sections
|
|
||||||
# name : \abstract
|
|
||||||
# --
|
|
||||||
\begin{abstract}
|
|
||||||
$0
|
|
||||||
\end{abstract}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Rasmus Borgsmidt <rasmus@borgsmidt.dk>
|
|
||||||
# key : align
|
|
||||||
# group: environments
|
|
||||||
# name : \begin{align} ... \end{align}
|
|
||||||
# --
|
|
||||||
\begin{align}
|
|
||||||
$0
|
|
||||||
\end{align}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Rasmus Borgsmidt <rasmus@borgsmidt.dk>
|
|
||||||
# key : align*
|
|
||||||
# group: environments
|
|
||||||
# name : \begin{align*} ... \end{align*}
|
|
||||||
# --
|
|
||||||
\begin{align*}
|
|
||||||
$0
|
|
||||||
\end{align*}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Peter Urbak <peter@dragonwasrobot.com>
|
|
||||||
# key : arr
|
|
||||||
# group: environments
|
|
||||||
# name : \begin{array} ... \end{array}
|
|
||||||
# --
|
|
||||||
\begin{array}{$1}
|
|
||||||
$0
|
|
||||||
\end{array}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# contributor : Song Qiang <tsiangsung@gmail.com>
|
|
||||||
# key: article
|
|
||||||
# group: skeleton
|
|
||||||
# name: \documentclass{article} ...
|
|
||||||
# --
|
|
||||||
\documentclass[11pt]{article}
|
|
||||||
|
|
||||||
\usepackage{graphicx,amsmath,amssymb,subfigure,url,xspace}
|
|
||||||
\newcommand{\eg}{e.g.,\xspace}
|
|
||||||
\newcommand{\bigeg}{E.g.,\xspace}
|
|
||||||
\newcommand{\etal}{\textit{et~al.\xspace}}
|
|
||||||
\newcommand{\etc}{etc.\@\xspace}
|
|
||||||
\newcommand{\ie}{i.e.,\xspace}
|
|
||||||
\newcommand{\bigie}{I.e.,\xspace}
|
|
||||||
|
|
||||||
\title{${1:title}}
|
|
||||||
\author{${2:Author Name}}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
\maketitle
|
|
||||||
|
|
||||||
|
|
||||||
\bibliographystyle{${3:plain}}
|
|
||||||
\bibliography{${4:literature.bib}}
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Claudio Marforio <marforio@gmail.com>
|
|
||||||
# key: beamer
|
|
||||||
# group: skeleton
|
|
||||||
# name: \documentclass{beamer} ...
|
|
||||||
# --
|
|
||||||
\documentclass[xcolor=dvipsnames]{beamer}
|
|
||||||
|
|
||||||
\usepackage{graphicx,subfigure,url}
|
|
||||||
|
|
||||||
% example themes
|
|
||||||
\usetheme{Frankfurt}
|
|
||||||
\usecolortheme{seahorse}
|
|
||||||
\usecolortheme{rose}
|
|
||||||
|
|
||||||
% put page numbers
|
|
||||||
% \setbeamertemplate{footline}[frame number]{}
|
|
||||||
% remove navigation symbols
|
|
||||||
% \setbeamertemplate{navigation symbols}{}
|
|
||||||
|
|
||||||
\title{${1:Presentation Title}}
|
|
||||||
\author{${2:Author Name}}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\frame[plain]{\titlepage}
|
|
||||||
|
|
||||||
\begin{frame}[plain]{Outline}
|
|
||||||
\tableofcontents
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\section{${3:Example Section}}
|
|
||||||
\begin{frame}{${4:Frame Title}}
|
|
||||||
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# key : beg
|
|
||||||
# name : \begin{} ... \end{}
|
|
||||||
# --
|
|
||||||
\begin{${1:$$(yas-choose-value (mapcar 'car LaTeX-environment-list))}}
|
|
||||||
$0
|
|
||||||
\end{$1}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key: bib
|
|
||||||
# group: misc
|
|
||||||
# name: \bibliography
|
|
||||||
# --
|
|
||||||
\bibliographystyle{plain}
|
|
||||||
\bibliography{$1}$0
|
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
# -*- mode: snippet -*-
|
# -*- mode: snippet -*-
|
||||||
# contributor: François Garillot <francois@garillot.net>
|
# contributor: François Garillot <francois@garillot.net>
|
||||||
# key: bigop
|
# key: bop
|
||||||
# group: math
|
# group: math
|
||||||
# name: \bigop_{n}^{}
|
# name: \bigop_{n}^{}
|
||||||
|
# condition: (and (texmathp) 'auto)
|
||||||
# --
|
# --
|
||||||
\\big${1:$$(yas/choose-value '("oplus" "otimes" "odot" "cup" "cap" "uplus" "sqcup" "vee" "wedge"))}_{$2}^{$3}$0
|
\\big${1:$$(yas/choose-value '("oplus" "otimes" "odot" "cup" "cap" "uplus" "sqcup" "vee" "wedge"))}_{$2}^{$3}$0
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key : cha*
|
|
||||||
# group: sections
|
|
||||||
# name : \chapter*
|
|
||||||
# --
|
|
||||||
\chapter*{${1:name}}
|
|
||||||
$0
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key: enum
|
|
||||||
# group: environments
|
|
||||||
# name : \begin{enumerate} ... \end{enumerate}
|
|
||||||
# --
|
|
||||||
\begin{enumerate}
|
|
||||||
\item $0
|
|
||||||
\end{enumerate}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key: eq
|
|
||||||
# group: math
|
|
||||||
# name: \begin{equation} ... \end{equation}
|
|
||||||
# --
|
|
||||||
\begin{equation}
|
|
||||||
\label{${1:"waiting for reftex-label call..."$(unless yas/modified-p (reftex-label nil 'dont-insert))}}
|
|
||||||
$0
|
|
||||||
\end{equation}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key: eqs
|
|
||||||
# group: math
|
|
||||||
# name: \begin{align} ... \end{align}
|
|
||||||
# --
|
|
||||||
\begin{${1:$$(yas/choose-value '("align" "align*" "multline" "gather" "subequations"))}}
|
|
||||||
\label{${2:"waiting for reftex-label call..."$(unless yas/modified-p (reftex-label nil 'dont-insert))}}
|
|
||||||
$0
|
|
||||||
\end{$1}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor : Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key : fig
|
|
||||||
# group: environments
|
|
||||||
# name : \begin{figure} ... \end{figure}
|
|
||||||
# --
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\centering
|
|
||||||
$0
|
|
||||||
\caption{${1:caption}}
|
|
||||||
\label{${2:"waiting for reftex-label call..."$(unless yas/modified-p (reftex-label nil 'dont-insert))}}
|
|
||||||
\end{figure}
|
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
# key: frac
|
# key: frac
|
||||||
# group: math
|
# group: math
|
||||||
# name: \frac{numerator}{denominator}
|
# name: \frac{numerator}{denominator}
|
||||||
|
# condition: (and (texmathp) 'auto)
|
||||||
# --
|
# --
|
||||||
\frac{${1:numerator}}{${2:denominator}}$0
|
\frac{${1:numerator}}{${2:denominator}}$0
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Claudio Marforio <marforio@gmail.com>
|
|
||||||
# key: frame
|
|
||||||
# group: environments
|
|
||||||
# name : \begin{frame} ... \end{frame}
|
|
||||||
# --
|
|
||||||
\begin{frame}{${1:Frame Title$(capitalize yas-text)}}
|
|
||||||
$0
|
|
||||||
\end{frame}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- mode: snippet -*-
|
# -*- mode: snippet -*-
|
||||||
# contributor: Song Qiang <tsiangsung@gmail.com>
|
# contributor: Song Qiang <tsiangsung@gmail.com>
|
||||||
# key: integ
|
# key: int
|
||||||
# group: math
|
# group: math
|
||||||
# condition: (and (texmathp) 'auto)
|
# condition: (and (texmathp) 'auto)
|
||||||
# name: Indefinite integral (all)
|
# name: Indefinite integral (all)
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
# condition: (and (texmathp) 'auto)
|
# condition: (and (texmathp) 'auto)
|
||||||
# group: math
|
# group: math
|
||||||
# --
|
# --
|
||||||
^{\text{-}1}
|
^{-1}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# -*- mode: snippet -*-
|
# -*- mode: snippet -*-
|
||||||
# name: limit
|
# name: limit
|
||||||
# key: lim
|
# key: lim
|
||||||
# conditon: (texmathp)
|
# condition: (and (texmathp) 'auto)
|
||||||
# group: math
|
# group: math
|
||||||
# --
|
# --
|
||||||
\\lim_{${1:n} \\to ${2:\\infty}} $0
|
\\lim_{${1:n} \\to ${2:\\infty}} $0
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# contributor: Mads D. Kristensen <madsdk@gmail.com>
|
|
||||||
# key: minipage
|
|
||||||
# group: environments
|
|
||||||
# name: \begin{minipage}[position][width] ... \end{minipage}
|
|
||||||
# --
|
|
||||||
\begin{minipage}[${1:htbp}]{${2:1.0}${3:\linewidth}}
|
|
||||||
$0
|
|
||||||
\end{minipage}
|
|
||||||
Reference in New Issue
Block a user