diff --git a/lisp/init-completion.el b/lisp/init-completion.el index 1b5b93b..80178db 100644 --- a/lisp/init-completion.el +++ b/lisp/init-completion.el @@ -32,7 +32,7 @@ ;; Optionally use the `orderless' completion style. (use-package orderless :custom - (completion-styles '(orderless basic)) + (completion-styles '(orderless partial-completion basic)) (completion-category-defaults nil) (completion-category-overrides '((file (styles orderless partial-completion)))) (orderless-component-separator #'orderless-escapable-split-on-space)) @@ -250,11 +250,11 @@ ;;Quit completion before saving (add-hook 'before-save-hook #'corfu-quit) (advice-add #'persistent-scratch-save :before #'corfu-quit) - (add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer) - (use-package nerd-icons-corfu - :init - (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))) + (add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer)) +(use-package nerd-icons-corfu + :init + (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)) ;; A few more useful configurations... (use-package emacs @@ -294,10 +294,6 @@ ;; (advice-add 'eglot-completion-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) diff --git a/lisp/init-lsp.el b/lisp/init-lsp.el index bd2484e..8b2f2e3 100644 --- a/lisp/init-lsp.el +++ b/lisp/init-lsp.el @@ -21,43 +21,48 @@ (lsp-enable-which-key-integration) ;; (add-hook 'before-save-hook #'lsp-format-buffer 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 ("C-c c d" . lsp-describe-thing-at-point) ([remap xref-find-definitions] . lsp-find-definition) ([remap xref-find-references] . lsp-find-references)) - :init (setq lsp-use-plists t - lsp-log-io nil + :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-enable-suggest-server-download t - ;; lsp-auto-configure t + lsp-enable-suggest-server-download t + ;; lsp-auto-configure t - lsp-keymap-prefix "C-c c" - lsp-keep-workspace-alive nil - lsp-signature-auto-activate nil - lsp-modeline-code-actions-enable nil - lsp-modeline-diagnostics-enable nil - lsp-modeline-workspace-status-enable nil + lsp-keymap-prefix "C-c c" + lsp-keep-workspace-alive nil + lsp-signature-auto-activate nil + lsp-modeline-code-actions-enable nil + lsp-modeline-diagnostics-enable nil + lsp-modeline-workspace-status-enable nil - lsp-completion-enable t - lsp-completion-provider :none ;; using corfu - lsp-completion-enable-additional-text-edit t - lsp-enable-snippet t - lsp-completion-show-kind t + lsp-completion-enable t + lsp-completion-provider :none ;; using corfu + lsp-completion-enable-additional-text-edit t + lsp-enable-snippet t + lsp-completion-show-kind t - lsp-semantic-tokens-enable t - lsp-progress-spinner-type 'progress-bar-filled + lsp-semantic-tokens-enable t + lsp-progress-spinner-type 'progress-bar-filled - lsp-enable-file-watchers nil - lsp-enable-folding nil - lsp-enable-symbol-highlighting nil - lsp-enable-text-document-color nil - lsp-enable-imenu t + lsp-enable-file-watchers nil + lsp-enable-folding nil + lsp-enable-symbol-highlighting nil + lsp-enable-text-document-color nil + lsp-enable-imenu t - lsp-enable-indentation nil - lsp-enable-on-type-formatting nil + lsp-enable-indentation nil + lsp-enable-on-type-formatting nil - ;; For diagnostics - lsp-diagnostics-disabled-modes '(markdown-mode gfm-mode)) + ;; For diagnostics + lsp-diagnostics-disabled-modes '(markdown-mode gfm-mode)) :config (with-no-warnings ;; Disable `lsp-mode' in `git-timemachine-mode' diff --git a/lisp/init-meow.el b/lisp/init-meow.el index 15277c1..c4d1d9c 100644 --- a/lisp/init-meow.el +++ b/lisp/init-meow.el @@ -92,7 +92,10 @@ :hook (elpaca-after-init . meow-global-mode) :config (meow-setup) - (add-to-list 'meow-mode-state-list '((magit-mode . insert))) + (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)) + (setq meow-keypad-leader-dispatch "C-c" meow-use-clipboard t) (setq meow-replace-state-name-list diff --git a/lisp/init-org.el b/lisp/init-org.el index 7b1e313..f167b6b 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -1,10 +1,5 @@ ;; -*- 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 :defer :ensure (org :repo "https://code.tecosaur.net/tec/org-mode.git/" @@ -12,7 +7,6 @@ :hook (org-mode . org-cdlatex-mode) :hook (org-mode . org-indent-mode) :hook (org-mode . visual-line-mode) - :pretty-hydra ;; See `org-structure-template-alist' ((:color blue :quit-key ("q" "C-g")) @@ -58,7 +52,8 @@ (if (or (region-active-p) (looking-back "^\s*" 1)) (org-hydra/body) (self-insert-command 1)))) - ("M-" . org-insert-subheading)) + ("M-" . org-insert-subheading) + ("C-'" . nil)) :config (elemacs-load-packages-incrementally '(calendar find-func format-spec org-macs org-compat @@ -101,6 +96,7 @@ the element after the #+HEADER: tag." (setq org-pretty-entities t org-pretty-entities-include-sub-superscripts nil) + (setq org-default-note-file (expand-file-name "notes.org" org-directory) org-capture-templates '(("t" "Personal todo" entry @@ -111,51 +107,79 @@ the element after the #+HEADER: tag." "* %u %?\n%i\n%a" :prepend t) ("j" "Journal" entry (file+olp+datetree "diary.org") - "* %U %?\n%i\n%a" :prepend t)) - - org-todo-keywords - '((sequence "TODO(t)" "IN-PROGRESS(i)" "ON-HOLD(h)" "|" "DONE(d)" "NO(n)"))) + "* %U %?\n%i\n%a" :prepend t))) + (with-no-warnings + (custom-declare-face '+org-todo-active '((t (:inherit (bold font-lock-constant-face org-todo)))) "") + (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-hook 'org-after-refile-insert-hook (defun save-buffer-after-capture () (when (bound-and-true-p org-capture-is-refiling) (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))) + (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)))))))) + (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))) + (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) @@ -234,12 +258,8 @@ the element after the #+HEADER: tag." :hook (org-latex-preview-mode . org-latex-preview-center-mode) :bind ("C-c C-x SPC" . org-latex-preview-clear-cache) :config - ;; Higher resolution when using dvipng - (plist-put org-latex-preview-appearance-options :zoom 0.85) - ;; (plist-put org-latex-preview-appearance-options :margin 1) - ;; Add margin and rescale display math - (defvar my/org-latex-display-math-scale 0.8) + (defvar my/org-latex-display-math-scale 1) (defvar my/org-latex-display-math-margin 8) (defun my/org-latex-preview-add-margin-advice (ov _path-info) (save-excursion @@ -264,10 +284,12 @@ the element after the #+HEADER: tag." (advice-add 'org-latex-preview--update-overlay :after #'my/org-latex-preview-add-margin-advice) - (setq org-latex-preview-numbered t) + ;; (setq org-latex-preview-numbered t) (setq org-latex-preview-mode-display-live t) (setq org-latex-preview-process-default 'dvisvgm) (setq org-latex-preview-mode-update-delay 0.25) + + ;; Centre display maths (defun my/org-latex-preview-uncenter (ov) (overlay-put ov 'before-string nil)) (defun my/org-latex-preview-recenter (ov) diff --git a/lisp/init-snippet.el b/lisp/init-snippet.el index 2c8ad9f..a5964d2 100644 --- a/lisp/init-snippet.el +++ b/lisp/init-snippet.el @@ -5,6 +5,18 @@ :diminish :hook (elpaca-after-init . yas-global-mode) :hook ((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 (elemacs-load-packages-incrementally '(eldoc easymenu help-mode)) (use-package warnings @@ -26,9 +38,8 @@ (let ((yas-buffer-local-condition ''(require-snippet-condition . auto))) (yas-expand))))) -;; Collection of yasnippet snippets -(use-package yasnippet-snippets) - - +(use-package doom-snippets + :after yasnippet + :ensure (doom-snippets :type git :host github :repo "doomemacs/snippets" :files ("*.el" "*"))) (provide 'init-snippet) diff --git a/snippets/latex-mode/inverse b/snippets/latex-mode/inverse index 3bc0b58..2e5a638 100644 --- a/snippets/latex-mode/inverse +++ b/snippets/latex-mode/inverse @@ -4,4 +4,4 @@ # condition: (and (texmathp) 'auto) # group: math # -- -^{\text{-}1} \ No newline at end of file +^{-1} \ No newline at end of file