diff options
Diffstat (limited to 'Emacs')
-rw-r--r-- | Emacs/.config/emacs/config.org | 142 |
1 files changed, 123 insertions, 19 deletions
diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org index 742b929..86ff03b 100644 --- a/Emacs/.config/emacs/config.org +++ b/Emacs/.config/emacs/config.org @@ -105,6 +105,18 @@ which does a better job of indicating where the cursor is on screen. :config (blink-cursor-mode 0)) #+end_src +** Path +Setting the path variable cos it can get annoying sometimes +#+begin_src emacs-lisp +(use-package env + :defer 1 + :straight nil + :config + (setenv "PATH" + (concat + (expand-file-name "~/.local/bin:") + (getenv "PATH")))) +#+end_src * Custom Functions :PROPERTIES: :HTML_CONTAINER: details @@ -317,7 +329,8 @@ Setup the evil package, with some opinionated keybindings: (setq evil-want-keybinding nil evil-split-window-below t evil-vsplit-window-right t - evil-want-abbrev-expand-on-insert-exit t) + evil-want-abbrev-expand-on-insert-exit t + evil-undo-system 'undo-redo) :config (fset #'evil-window-vsplit #'make-frame)) #+end_src @@ -426,6 +439,13 @@ looking for a command. :config (amx-mode)) #+end_src +*** Orderless +Orderless sorting method for completion, probably one of the best +things ever. +#+begin_src emacs-lisp +(use-package orderless + :after (ivy ido)) +#+end_src *** Ido :PROPERTIES: :header-args:emacs-lisp: :tangle no @@ -506,7 +526,8 @@ helpful counterparts. :general (leader "ss" #'counsel-grep-or-swiper - "sr" #'counsel-rg) + "sr" #'counsel-rg + "fr" #'counsel-recentf) :init (general-def [remap describe-bindings] #'counsel-descbinds @@ -514,7 +535,10 @@ helpful counterparts. :config (setq ivy-initial-inputs-alist nil counsel-describe-function-function #'helpful-callable - counsel-describe-variable-function #'helpful-variable) + counsel-describe-variable-function #'helpful-variable + ivy-re-builders-alist '((swiper . ivy--regex-plus) + (counsel-rg . ivy--regex-plus) + (t . orderless-ivy-re-builder))) (counsel-mode)) #+end_src **** Ivy Core @@ -529,6 +553,7 @@ selection list). :general (general-def :keymaps 'ivy-minibuffer-map + "C-j" #'ivy-yank-symbol "M-j" #'ivy-next-line-or-history "M-k" #'ivy-previous-line-or-history "C-c C-e" #'ivy-occur) @@ -943,7 +968,7 @@ with colouring and a ton of presentations to choose from. (t (buffer-name)))) (telephone-line-defsegment +telephone/get-position () - `(,(concat "%l:%c" + `(,(concat "%lL:%cC" (if (not mark-active) "" (format " | %dc" (- (+ 1 (region-end)) (region-beginning))))))) @@ -1205,7 +1230,6 @@ Dashboard creates a custom dashboard for Emacs that replaces the initial startup screen in default Emacs. #+begin_src emacs-lisp (use-package dashboard - :defer 1 :straight t :general (leader @@ -1235,6 +1259,14 @@ initial startup screen in default Emacs. "}" #'dashboard-next-section "{" #'dashboard-previous-section)) #+end_src +** EWW +#+begin_src emacs-lisp +(use-package eww + :straight nil + :config + (with-eval-after-load "evil-collection" + (evil-collection-eww-setup))) +#+end_src ** Calendar Calendar is a simple inbuilt application within Emacs that helps with date functionalities. I add functionality to copy dates from the @@ -1334,7 +1366,9 @@ are some corners I'd like to adjust). #+begin_src emacs-lisp (use-package dired :straight nil - :hook (dired-mode-hook . dired-hide-details-mode) + :hook + (dired-mode-hook . dired-hide-details-mode) + (dired-mode-hook . auto-revert-mode) :init (setq-default dired-listing-switches "-AFBl --group-directories-first") :general @@ -1342,7 +1376,8 @@ are some corners I'd like to adjust). :infix "d" "f" #'find-dired "D" #'dired-other-frame - "d" #'dired-jump) + "d" #'dired-jump + "l" (proc (interactive) (find-dired "~/Text/PDFs/" "-iname 'cs[0-9][0-9][0-9].pdf' -or -iname 'ma[0-9][0-9][0-9]*.pdf'"))) :config (with-eval-after-load "evil-collection" (evil-collection-dired-setup)) @@ -1644,19 +1679,49 @@ don't need to write everything myself. (with-eval-after-load "evil-collection" (evil-collection-ibuffer-setup))) #+end_src -** Proced -Proced is the process manager for Emacs. Just setup evil-collection -for it. +** Processes +:PROPERTIES: +:HTML_CONTAINER: details +:END: +Emacs has two systems for process management: ++ proced: a general 'top' like interface which allows general + management of linux processes ++ list-processes: a specific Emacs based system that lists processes + spawned by Emacs (similar to a top for Emacs specifically) + +*** Proced +Core proced config, just a few bindings and evil collection setup. #+begin_src emacs-lisp (use-package proced :straight nil :general (leader "ap" #'proced) + (general-def + :states 'normal + :keymaps 'proced-mode-map + "za" #'proced-toggle-auto-update) :display ("\\*Proced\\*" (display-buffer-at-bottom) - (window-height . 0.25))) + (window-height . 0.25)) + :init + (setq proced-auto-update-interval 0.5) + :config + (with-eval-after-load "evil-collection" + (evil-collection-proced-setup))) +#+end_src + +Along with that I setup the package =proced-narrow= which allows +further filtering of the process list. +#+begin_src emacs-lisp +(use-package proced-narrow + :after proced + :general + (general-def + :states 'normal + :keymaps 'proced-mode-map + "%" #'proced-narrow)) #+end_src ** Calculator :PROPERTIES: @@ -1831,10 +1896,11 @@ results to the client, done through JSON. "a" #'eglot-code-actions "r" #'eglot-rename "R" #'eglot-reconnect) - :init - (setq eglot-stay-out-of '(flymake)) + ;; :init + ;; (setq eglot-stay-out-of '(flymake)) :config - (add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd"))) + (add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd")) + (add-to-list 'eglot-server-programs `(csharp-mode "~/.local/src/omnisharp-roslyn/run" "-lsp"))) #+end_src *** Flycheck Flycheck is the checking system for Emacs. I don't necessarily like @@ -1981,7 +2047,7 @@ Tons of variables for org-mode, including a ton of latex ones. (use-package org :defer t :custom - (org-agenda-files `(,(expand-file-name "~/Text/general.org"))) + (org-agenda-files `(,(expand-file-name "~/Text"))) (org-agenda-window-setup 'current-window) (org-edit-src-content-indentation 0) (org-goto-interface 'outline) @@ -2063,7 +2129,7 @@ vanilla =org-goto=. Also records for auto insertion. (with-eval-after-load "swiper" (defun +org/swiper-goto () (interactive) - (swiper "^\\* ")) + (counsel-grep-or-swiper "^\\* ")) (general-def [remap org-goto] #'+org/swiper-goto))) #+end_src @@ -2203,7 +2269,8 @@ opposing style. ("false" . "⊥") ("char" . "ℂ") ("int" . "ℤ") - ("float" . "ℝ") + ("float" . "ℚ") + ("double" . "ℝ") ("!" . "¬") ("&&" . "∧") ("||" . "∨") @@ -2212,7 +2279,6 @@ opposing style. (c++-mode-hook ("nullptr" . "∅") ("string" . "𝕊") - ("string" . "𝕊") ("vector" . "ℓ") ("puts" . "ℙ") ("fputs" . "ϕ") @@ -2224,7 +2290,8 @@ opposing style. ("false" . "⊥") ("char" . "ℂ") ("int" . "ℤ") - ("float" . "ℝ") + ("float" . "ℚ") + ("double" . "ℝ") ("!" . "¬") ("&&" . "∧") ("||" . "∨") @@ -2314,6 +2381,39 @@ this. (clang-format-region (region-beginning) (region-end)) (clang-format-buffer)))) #+end_src +** CSharp +#+begin_src emacs-lisp +(use-package csharp-mode + :defer t + :pretty + (csharp-mode-hook + ("null" . "∅") + ("string" . "𝕊") + ("List" . "ℓ") + ("WriteLine" . "ℙ") + ("Write" . "ω") + ("->" . "→") + ("true" . "⊤") + ("false" . "⊥") + ("char" . "ℂ") + ("int" . "ℤ") + ("float" . "ℝ") + ("!" . "¬") + ("&&" . "∧") + ("||" . "∨") + ("for" . "∀") + ("return" . "⟼")) + :config + (with-eval-after-load "abbrev" + (+autotyping/gen-skeleton-abbrev + csharp-mode + "sgen" + "Name of item: " + str | "name" "\n" + "{\n" + > _ "\n" + "}\n"))) +#+end_src ** Java :PROPERTIES: :HTML_CONTAINER: details @@ -2473,6 +2573,10 @@ Then emmet for super speed "M-j" #'emmet-next-edit-point "M-k" #'emmet-prev-edit-point)) #+end_src +** Typescript +#+begin_src emacs-lisp +(use-package typescript-mode) +#+end_src ** Emacs lisp :PROPERTIES: :HTML_CONTAINER: details |