aboutsummaryrefslogtreecommitdiff
path: root/Emacs
diff options
context:
space:
mode:
Diffstat (limited to 'Emacs')
-rw-r--r--Emacs/.config/emacs/config.org142
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