]> code.delx.au - dotemacs/commitdiff
Massive update!
authorJames Bunton <jamesbunton@delx.au>
Tue, 30 Jan 2024 13:18:51 +0000 (00:18 +1100)
committerJames Bunton <jamesbunton@delx.au>
Thu, 1 Feb 2024 13:51:50 +0000 (00:51 +1100)
- Update all the packages!
- Reorganise things to group packages with their configuration
- Switch from Ivy/Counsel/Swiper to Vertico/Orderless/Consult
- Removed a bunch of modules
- Use eglot for LSP mode
- Use flymake instead of flycheck

101 files changed:
.gitignore [deleted file]
.gitmodules
.ignore
README-keys.md [moved from README_KEYBINDINGS.md with 75% similarity]
README-packages.md [moved from packages/README.md with 88% similarity]
README.md
check-packages.sh [new file with mode: 0755]
completion/consult [new submodule]
completion/init.el [new file with mode: 0644]
completion/marginalia [new submodule]
completion/orderless [new submodule]
completion/vertico [new submodule]
file-modes/dockerfile-mode [new submodule]
file-modes/editorconfig [new submodule]
file-modes/git-modes [new submodule]
file-modes/init.el [new file with mode: 0644]
file-modes/ledger-mode [new submodule]
file-modes/markdown-mode [new submodule]
file-modes/pkgbuild-mode [new submodule]
file-modes/ssh-file-modes [moved from packages/ssh-file-modes with 100% similarity]
file-modes/yaml-mode [new submodule]
init.el
lisp/my-backups.el [deleted file]
lisp/my-direx.el [deleted file]
lisp/my-file-modes.el [deleted file]
lisp/my-flycheck.el [deleted file]
lisp/my-gui.el [deleted file]
lisp/my-ivy.el [deleted file]
lisp/my-keys.el [deleted file]
lisp/my-minor-modes.el [deleted file]
lisp/my-recentf.el [deleted file]
lisp/my-shackle.el [deleted file]
lisp/my-vc.el [deleted file]
packages/async [deleted submodule]
packages/change-inner [deleted submodule]
packages/check.sh [deleted file]
packages/cl-closure-template [deleted submodule]
packages/coffee-mode [deleted submodule]
packages/dash [deleted submodule]
packages/diminish [deleted submodule]
packages/direx [deleted submodule]
packages/dockerfile-mode [deleted submodule]
packages/editorconfig [deleted submodule]
packages/elisp-slime-nav [deleted submodule]
packages/expand-region [deleted submodule]
packages/flycheck [deleted submodule]
packages/git-gutter [deleted submodule]
packages/git-modes [deleted submodule]
packages/graphql [deleted submodule]
packages/groovy-modes [deleted submodule]
packages/haskell-mode [deleted submodule]
packages/highlight-indent-guides [deleted submodule]
packages/js2-mode [deleted submodule]
packages/js2-refactor [deleted submodule]
packages/json-mode [deleted submodule]
packages/json-reformat [deleted submodule]
packages/json-snatcher [deleted submodule]
packages/kotlin-mode [deleted submodule]
packages/ledger-mode [deleted submodule]
packages/magit [deleted submodule]
packages/magit-transient [deleted submodule]
packages/markdown-mode [deleted submodule]
packages/multiple-cursors [deleted submodule]
packages/pkgbuild-mode [deleted submodule]
packages/s [deleted submodule]
packages/scala-mode [deleted submodule]
packages/shackle [deleted submodule]
packages/slime [deleted submodule]
packages/swiper [deleted submodule]
packages/treepy [deleted submodule]
packages/wgrep [deleted submodule]
packages/with-editor [deleted submodule]
packages/yaml-mode [deleted submodule]
packages/yasnippet [deleted submodule]
pastels-on-dark-theme.el [moved from lisp/pastels-on-dark-theme.el with 98% similarity]
rg-ignore [deleted file]
text-edit/change-inner [new submodule]
text-edit/expand-region [new submodule]
text-edit/highlight-symbol [moved from packages/highlight-symbol with 100% similarity]
text-edit/init.el [new file with mode: 0644]
text-edit/jump-char [moved from packages/jump-char with 100% similarity]
text-edit/my-buffer-navigation.el [new file with mode: 0644]
text-edit/my-find-test-file.el [moved from lisp/my-find-test-file.el with 98% similarity]
text-edit/my-frame-title.el [moved from lisp/my-frame-title.el with 78% similarity]
text-edit/my-kill-buffers.el [moved from lisp/my-kill-buffers.el with 95% similarity]
text-edit/my-line-editing.el [moved from lisp/my-editing-defuns.el with 67% similarity]
text-edit/my-new-scratch-buffer.el [moved from lisp/my-scratch.el with 89% similarity]
text-edit/my-recentf.el [new file with mode: 0644]
text-edit/my-window-resize.el [new file with mode: 0644]
text-edit/yasnippet [new submodule]
update-package-ignore.sh [new file with mode: 0755]
utils/compat [new submodule]
utils/dash [new submodule]
utils/init.el [new file with mode: 0644]
utils/s [new submodule]
vc/diff-hl [new submodule]
vc/init.el [new file with mode: 0644]
vc/magit [new submodule]
vc/magit-popup [moved from packages/magit-popup with 100% similarity]
vc/magit-transient [new submodule]
vc/with-editor [new submodule]

diff --git a/.gitignore b/.gitignore
deleted file mode 100644 (file)
index 4faf7a8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/auto-save-list
-/games
-/.mc-lists.el
-/places
-/recentf
-/session.*
-/tramp
-/transient
index 5976073f2c2cdc1f37e59806ac9acb094c174996..5205d9438d69c0a045f88234beba1c6bfe821ab1 100644 (file)
 [submodule "pkgbuild-mode"]
-       path = packages/pkgbuild-mode
+       path = file-modes/pkgbuild-mode
        url = https://github.com/juergenhoetzel/pkgbuild-mode.git
 [submodule "yaml-mode"]
-       path = packages/yaml-mode
+       path = file-modes/yaml-mode
        url = https://github.com/yoshiki/yaml-mode.git
-[submodule "dockerfile-model"]
-       path = packages/dockerfile-mode
-       url = https://github.com/spotify/dockerfile-mode.git
 [submodule "editorconfig"]
-       path = packages/editorconfig
+       path = file-modes/editorconfig
        url = https://github.com/editorconfig/editorconfig-emacs.git
-[submodule "coffee-mode"]
-       path = packages/coffee-mode
-       url = https://github.com/defunkt/coffee-mode
-[submodule "slime"]
-       path = packages/slime
-       url = https://github.com/slime/slime.git
-[submodule "flycheck"]
-       path = packages/flycheck
-       url = https://github.com/flycheck/flycheck
-[submodule "multiple-cursors"]
-       path = packages/multiple-cursors
-       url = https://github.com/magnars/multiple-cursors.el.git
 [submodule "yasnippet"]
-       path = packages/yasnippet
+       path = text-edit/yasnippet
        url = https://github.com/joaotavora/yasnippet.git
 [submodule "expand-region"]
-       path = packages/expand-region
-       url = https://github.com/magnars/expand-region.el.git
+       path = text-edit/expand-region
+       url = https://github.com/magnars/expand-region.el.git
 [submodule "change-inner"]
-       path = packages/change-inner
+       path = text-edit/change-inner
        url = https://github.com/magnars/change-inner.el.git
-[submodule "js2-mode"]
-       path = packages/js2-mode
-       url = https://github.com/mooz/js2-mode.git
 [submodule "dash"]
-       path = packages/dash
+       path = utils/dash
        url = https://github.com/magnars/dash.el.git
-[submodule "diminish"]
-       path = packages/diminish
-       url = https://github.com/myrjola/diminish.el.git
 [submodule "git-modes"]
-       path = packages/git-modes
+       path = file-modes/git-modes
        url = https://github.com/magit/git-modes.git
-[submodule "json-mode"]
-       path = packages/json-mode
-       url = https://github.com/joshwnj/json-mode.git
-[submodule "json-snatcher"]
-       path = packages/json-snatcher
-       url = https://github.com/Sterlingg/json-snatcher.git
-[submodule "json-reformat"]
-       path = packages/json-reformat
-       url = https://github.com/gongo/json-reformat.git
-[submodule "swiper"]
-       path = packages/swiper
-       url = https://github.com/abo-abo/swiper.git
-[submodule "haskell-mode"]
-       path = packages/haskell-mode
-       url = https://github.com/haskell/haskell-mode.git
-[submodule "scala-mode"]
-       path = packages/scala-mode
-       url = https://github.com/ensime/emacs-scala-mode.git
-[submodule "groovy-modes"]
-       path = packages/groovy-modes
-       url = https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes.git
-[submodule "dockerfile-mode"]
-       path = packages/dockerfile-mode
-       url = https://github.com/spotify/dockerfile-mode.git
 [submodule "markdown-mode"]
-       path = packages/markdown-mode
+       path = file-modes/markdown-mode
        url = https://github.com/jrblevin/markdown-mode.git
-[submodule "direx"]
-       path = packages/direx
-       url = https://github.com/m2ym/direx-el.git
-[submodule "git-gutter"]
-       path = packages/git-gutter
-       url = https://github.com/syohex/emacs-git-gutter.git
-[submodule "shackle"]
-       path = packages/shackle
-       url = https://depp.brause.cc/shackle.git
 [submodule "magit"]
-       path = packages/magit
+       path = vc/magit
        url = https://github.com/magit/magit.git
-[submodule "async"]
-       path = packages/async
-       url = https://github.com/jwiegley/emacs-async.git
 [submodule "with-editor"]
-       path = packages/with-editor
+       path = vc/with-editor
        url = https://github.com/magit/with-editor.git
-[submodule "elisp-slime-nav"]
-       path = packages/elisp-slime-nav
-       url = https://github.com/purcell/elisp-slime-nav.git
 [submodule "ssh-file-modes"]
-       path = packages/ssh-file-modes
+       path = file-modes/ssh-file-modes
        url = https://github.com/petere/emacs-ssh-file-modes.git
 [submodule "jump-char"]
-       path = packages/jump-char
+       path = text-edit/jump-char
        url = https://github.com/lewang/jump-char.git
 [submodule "highlight-symbol"]
-       path = packages/highlight-symbol
-       url = https://github.com/nschum/highlight-symbol.el.git
+       path = text-edit/highlight-symbol
+       url = https://github.com/nschum/highlight-symbol.el.git
 [submodule "s"]
-       path = packages/s
+       path = utils/s
        url = https://github.com/magnars/s.el.git
-[submodule "js2-refactor"]
-       path = packages/js2-refactor
-       url = https://github.com/magnars/js2-refactor.el.git
-[submodule "wgrep"]
-       path = packages/wgrep
-       url = https://github.com/mhayashi1120/Emacs-wgrep.git
-[submodule "cl-closure-template"]
-       path = packages/cl-closure-template
-       url = https://github.com/archimag/cl-closure-template.git
 [submodule "ledger-mode"]
-       path = packages/ledger-mode
+       path = file-modes/ledger-mode
        url = https://github.com/ledger/ledger-mode.git
 [submodule "magit-popup"]
-       path = packages/magit-popup
+       path = vc/magit-popup
        url = https://github.com/magit/magit-popup.git
-[submodule "highlight-indent-guides"]
-       path = packages/highlight-indent-guides
-       url = https://github.com/DarthFennec/highlight-indent-guides.git
-[submodule "graphql"]
-       path = packages/graphql
-       url = https://github.com/vermiculus/graphql.el.git
-[submodule "treepy"]
-       path = packages/treepy
-       url = https://github.com/volrath/treepy.el
 [submodule "magit-transient"]
-       path = packages/magit-transient
+       path = vc/magit-transient
        url = https://github.com/magit/transient.git
-[submodule "kotlin-mode"]
-       path = packages/kotlin-mode
-       url = https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode
+[submodule "compat"]
+       path = utils/compat
+       url = https://github.com/emacs-compat/compat
+[submodule "vertico"]
+       path = completion/vertico
+       url = https://github.com/minad/vertico
+[submodule "orderless"]
+       path = completion/orderless
+       url = https://github.com/oantolin/orderless
+[submodule "marginalia"]
+       path = completion/marginalia
+       url = https://github.com/minad/marginalia
+[submodule "consult"]
+       path = completion/consult
+       url = https://github.com/minad/consult
+[submodule "diff-hl"]
+       path = vc/diff-hl
+       url = https://github.com/dgutov/diff-hl
+[submodule "dockerfile-mode"]
+       path = file-modes/dockerfile-mode
+       url = https://github.com/spotify/dockerfile-mode.git
diff --git a/.ignore b/.ignore
index 3309a4d95914e610faf322d215e4d4478081d009..8ebe76fbd4fdc1a7b0bbfde3c67017b6ca59d304 100644 (file)
--- a/.ignore
+++ b/.ignore
@@ -1,2 +1,25 @@
-# ripgrep ignore file
-packages
+/completion/consult
+/completion/marginalia
+/completion/orderless
+/completion/vertico
+/file-modes/dockerfile-mode
+/file-modes/editorconfig
+/file-modes/git-modes
+/file-modes/ledger-mode
+/file-modes/markdown-mode
+/file-modes/pkgbuild-mode
+/file-modes/ssh-file-modes
+/file-modes/yaml-mode
+/text-edit/change-inner
+/text-edit/expand-region
+/text-edit/highlight-symbol
+/text-edit/jump-char
+/text-edit/yasnippet
+/utils/compat
+/utils/dash
+/utils/s
+/vc/diff-hl
+/vc/magit
+/vc/magit-popup
+/vc/magit-transient
+/vc/with-editor
similarity index 75%
rename from README_KEYBINDINGS.md
rename to README-keys.md
index 97d98fca2f4fa139ab98f58add36ce46ffb653b3..352481cd3d21b87709f10f078c2c10ae47959ba6 100644 (file)
@@ -20,6 +20,7 @@ C-x C--                                         Decrease font size
 
 # Help
 ```
+C-h .                                           Help at point (Eldoc)
 C-h C-h                                         Help
 C-h k                                           Help about key binding
 C-h v                                           Describe variable
@@ -32,19 +33,11 @@ q                                               Quit window and bury buffer
 
 # Search
 ```
-C-s                                             Search forward (ivy/swiper mode)
-C-r                                             Resume ivy search
-C-7                                             Start a cursor for each result (while searching)
-C-'                                             Switch to avy jump mode
-M-i                                             Insert selected item (while searching)
-M-q                                             Replace searched item (while searching)
-M-p                                             Search for previous item (while searching)
-M-n                                             Search for symbol at point (while searching)
-C-M-A                                           Read Ivy action
-C-c C-o                                         Dump all results into a buffer (ivy-occur)
-C-c C-p                                         Switch to wgrep mode
+C-s                                             Search forward (consult-line)
+C-r                                             Resume vertico search
 M-.                                             Find thing at point
 M-,                                             Pop tag mark
+M-?                                             Find references at point
 ```
 
 # Files/buffers
@@ -53,19 +46,15 @@ C-x C-s                                         Save current buffer
 C-x s                                           Save some buffers
 C-x C-w                                         Write buffer to file
 C-x C-f                                         Find file
-C-x C-v                                         Find file and kill current buffer
-C-x f                                           Find files in git repository
-C-x g                                           Grep in git repository
-M-q                                             Replace in git repository (while in git grep)
-M-x find-file-at-point                          Find (open) filename at point
-M-x browse-url-at-point                         Browse URL at point
+C-x f                                           Find files in project
+C-x g                                           Grep in project
 C-x k                                           Kill buffer
 C-x c                                           Clean up all buffers that are not visible
-C-x b                                           Select named buffer
-C-x C-b                                         Show all buffers
+C-x b                                           Switch to previous buffer
+C-x t                                           Switch between matching prod/test file
+C-x C-b                                         Show buffers
 C-x C-r                                         Show recent files
 M-x scratch-buffer                              Create new scratch buffer
-//,~                                            Go to {root,home} directory in find-file
 ```
 
 # Windows/frames
@@ -88,16 +77,19 @@ C-x 5 2                                         New frame (X11 window)
 M-m                                             Jump back to start of indentation
 M-r                                             Jump to window top/bottom/middle
 M-g Tab                                         Jump to column
-M-g f                                           Jump to charactor, ;/, to go forward/back
+M-g c                                           Jump to character location
+M-g f                                           Jump to character, ;/, to go forward/back
+M-g i                                           Show imenu overview of file
 M-g g                                           Jump to visible line or any line
-M-g j                                           Jump to word by first character
-M-g M-g                                         Jump to visible line or any line
+M-g p                                           Previous error
+M-g n                                           Next error
+M-g l                                           Show all errors
 C-a                                             Beginning of line
 C-e                                             End of line
 C-p                                             Back one line
 C-n                                             Forward one line
 C-b                                             Back one character
-C-n                                             Forward one character
+C-f                                             Forward one character
 M-b                                             Back a word
 M-f                                             Forward a word
 M-a                                             Backward sentence
@@ -120,6 +112,7 @@ C-M-u                                           Move up one level of parentheses
 Tab                                             Indent current line correctly
 C-x Tab                                         Indent region with left/right
 M-/                                             Expand at point
+C-M-i                                           Complete at point
 M-Tab                                           Auto-complete at point
 M-;                                             Comment line or region
 M-i                                             Change inner region
@@ -150,20 +143,9 @@ C-x C-space                                     Pop global mark
 C-x C-x                                         Exchange point and mark
 C-M-h                                           Highlight expression
 M-@                                             Set mark at end of next word
-C-=                                             Expand region
-M-=                                             Display info about region
-C-.                                             Go to last edit
-C-,                                             Go to last edit reverse
+M-=                                             Expand region
 ```
 
-# Multiple cursors
-```
-C-c m a                                         Insert cursor at all matching points
-C-c m l                                         Insert extra cursor on all lines in region
-C-c m m                                         Ask to insert extra cursor at locations matching selected region
-C-c m p                                         Add cursor at previous text like region
-C-c m n                                         Add cursor at next text like region
-```
 
 # Highlighting
 ```
@@ -184,11 +166,10 @@ M-z <char>                                      Kill until <char>
 C-k                                             Kill to end of line
 M-0 C-k                                         Kill to beginning of line
 C-c k                                           Kill whole line
-C-c s                                           Copy line
+C-c s                                           Replace line
 C-d                                             Delete next character
 M-d                                             Delete next word
 M-Backspace                                     Delete previous word
-M-Space                                         Collpase to one space around point
 M-\                                             Delete spaces around point
 C-x C-o                                         Collapse blank lines
 M-x delete-trailing-whitespace                  Delete trailing whitespace
@@ -236,18 +217,15 @@ Meta-Right-Click                                Yank secondary
 
 # Mode switching
 ```
-C-x C-j                                         Open direx at current file
+F7                                              Toggle flymake-mode
 F8                                              Toggle flyspell-mode
 F9                                              Toggle whitespace mode
 F10                                             Toggle word wrap
 M-s o                                           Search in buffer and display results in occur-mode
 M-x multi-occur                                 Search in buffers and display results in occur-mode
 M-x eshell                                      Run eshell
-M-x ielm                                        Run Emacs Lisp REPL
-M-x linum-mode                                  Display line numbers
 M-x overwrite-mode                              Switch to overwrite mode
 M-x shell                                       Run bash shell
-M-x slime                                       Run Common Lisp REPL
 M-x smerge-ediff                                Resolve merge conflicts in multi-window mode
 M-x smerge-mode                                 Resolve merge conflicts by hunks
 M-x term                                        Run terminal
@@ -259,19 +237,18 @@ M-x yas-reload-all                              Reload all snippets
 g                                               Reload
 e                                               Switch to edit mode
 C-c C-c                                         Switch back to occur mode
-M-g M-p                                         Previous occurence
-M-g M-n                                         Next occurence
 ```
 
-# Magit / Git gutter
-```
-C-c g d                                         Popup diff
-C-c g p                                         Previous hunk
-C-c g n                                         Next hunk
-C-c g r                                         Revert hunk
-C-c g s                                         Magit status
-C-c g f                                         Magit file specific commands
-C-c g g                                         Magit dispatch popup
+# Magit / diff-hl
+```
+C-x v *                                         Popup diff
+C-x v S                                         Stage hunk
+C-x v [                                         Previous hunk
+C-x v ]                                         Next hunk
+C-x v n                                         Revert hunk
+C-x v s                                         Magit status
+C-x v f                                         Magit file specific commands
+C-x v g                                         Magit dispatch popup
 p                                               Previous section
 n                                               Next section
 M-p                                             Previous sibling section
@@ -292,15 +269,6 @@ C-c C-c                                         Compile and load the top-level f
 C-c M-k                                         Compile (but not load) the current buffer's file
 ```
 
-
-# Javascript
-```
-C-c C-r                                         Rename variable
-C-c C-c                                         Find type
-C-c C-d                                         Find docs
-```
-
-
 # Shell
 ```
 M-!                                             Execute command
@@ -322,16 +290,6 @@ C-c ^ o                                         Keep other
 # Flyspell
 ```
 M-$                                             Correct word
-C-M-i                                           Automatically correct word
 C-;                                             Automatically correct last word
 <mouse-2>                                       Popup word correction
 ```
-
-# Flycheck
-```
-C-c ! v                                         Verify setup
-C-c ! n                                         Next error
-C-c ! p                                         Previous error
-C-c ! l                                         List errors
-C-c ! x                                         Disable checker
-```
similarity index 88%
rename from packages/README.md
rename to README-packages.md
index c096c5c10ab7deefae6d0df16fae0be4a38e3b5b..c2213264e702f830f92cfc9905e5476464af006c 100644 (file)
@@ -14,5 +14,5 @@ git rm
 rm -rf .git/modules/<name>
 
 # Updating
-git submodule foreach git fetch
+git submodule foreach git fetch --prune
 git submodule foreach git diff origin/master --stat|cat
index 725f5793da82840f357276f43334a4386bde0b13..a3b18c0de017fd012b650ce5b4eee9bd0388fc3d 100644 (file)
--- a/README.md
+++ b/README.md
@@ -13,8 +13,5 @@ git submodule update
 
 Set up Emacs daemon to autostart:
 ```
-mkdir -p ~/.config/autostart
-ln -sf ~/.dotfiles/.config/autostart/emacs.desktop ~/.config/autostart
-mkdir -p ~/.local/share/applications
-ln -sf ~/.dotfiles/.local/share/applications/emacs.desktop ~/.local/share/applications/
+systemctl --user enable --now emacs
 ```
diff --git a/check-packages.sh b/check-packages.sh
new file mode 100755 (executable)
index 0000000..2205b5d
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+cd "$(dirname "$0")"
+
+function get_submodules {
+    awk -F'"' '/submodule/ {print $2}' | sort
+}
+
+echo '.gitmodules -> .git/config'
+diff -u <(get_submodules < .gitmodules) <(get_submodules < .git/config)
+
+echo '.gitmodules -> .git/modules'
+diff -u <(get_submodules < .gitmodules) <(ls .git/modules)
diff --git a/completion/consult b/completion/consult
new file mode 160000 (submodule)
index 0000000..42aaed5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 42aaed5cc85dfc21c9c31a43ccbf3db5b347e593
diff --git a/completion/init.el b/completion/init.el
new file mode 100644 (file)
index 0000000..1db0562
--- /dev/null
@@ -0,0 +1,37 @@
+;;; -*- lexical-binding: t -*-
+
+(dolist (pkg '("~/.emacs.d/completion/vertico"
+               "~/.emacs.d/completion/vertico/extensions"
+               "~/.emacs.d/completion/orderless"
+               "~/.emacs.d/completion/marginalia"
+               "~/.emacs.d/completion/consult"))
+  (add-to-list 'load-path pkg))
+
+(require 'vertico)
+(require 'vertico-repeat)
+(vertico-mode 1)
+(add-hook 'minibuffer-setup-hook #'vertico-repeat-save)
+
+(require 'orderless)
+(setq completion-styles '(orderless basic)
+      completion-category-overrides '((file (styles basic partial-completion))))
+(setq orderless-component-separator 'orderless-escapable-split-on-space)
+(setq completion-ignore-case t)
+(setq orderless-smart-case t)
+
+(require 'marginalia)
+(marginalia-mode 1)
+
+(require 'consult)
+(require 'consult-imenu)
+(require 'consult-flymake)
+(setq completion-in-region-function 'consult-completion-in-region)
+
+(global-set-key (kbd "C-s") 'consult-line)
+(global-set-key (kbd "C-r") 'vertico-repeat)
+(global-set-key (kbd "C-x g") 'consult-ripgrep)
+(global-set-key (kbd "C-x C-b") 'consult-buffer)
+(global-set-key (kbd "C-x C-r") 'consult-recent-file)
+(global-set-key (kbd "M-g i") 'consult-imenu)
+(global-set-key (kbd "M-g g") 'consult-goto-line)
+(global-set-key (kbd "M-g M-g") 'consult-goto-line)
diff --git a/completion/marginalia b/completion/marginalia
new file mode 160000 (submodule)
index 0000000..ea356eb
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ea356ebb1ddb8d6da78574b517155475cf52d46f
diff --git a/completion/orderless b/completion/orderless
new file mode 160000 (submodule)
index 0000000..b247480
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b24748093b00b37c3a572c4909f61c08fa27504f
diff --git a/completion/vertico b/completion/vertico
new file mode 160000 (submodule)
index 0000000..4a7da56
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4a7da56b02c6aefff8f6b4574a530a7cb54bc21a
diff --git a/file-modes/dockerfile-mode b/file-modes/dockerfile-mode
new file mode 160000 (submodule)
index 0000000..52c6c00
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 52c6c00da1d31c0b6c29c74335b3af63ed6bf06c
diff --git a/file-modes/editorconfig b/file-modes/editorconfig
new file mode 160000 (submodule)
index 0000000..4b81a59
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4b81a5992858cbf03bcd7ed6ef31e4be0b55a7c1
diff --git a/file-modes/git-modes b/file-modes/git-modes
new file mode 160000 (submodule)
index 0000000..4a61a9b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4a61a9b86df9c824a99c522f42d55e68faf85f91
diff --git a/file-modes/init.el b/file-modes/init.el
new file mode 100644 (file)
index 0000000..cbc40f1
--- /dev/null
@@ -0,0 +1,90 @@
+;;; -*- lexical-binding: t -*-
+
+(dolist (pkg '("~/.emacs.d/file-modes/dockerfile-mode"
+               "~/.emacs.d/file-modes/editorconfig"
+               "~/.emacs.d/file-modes/git-modes"
+               "~/.emacs.d/file-modes/ledger-mode"
+               "~/.emacs.d/file-modes/markdown-mode"
+               "~/.emacs.d/file-modes/pkgbuild-mode"
+               "~/.emacs.d/file-modes/ssh-file-modes"
+               "~/.emacs.d/file-modes/yaml-mode"))
+  (add-to-list 'load-path pkg))
+
+;;;;;;;;;;;;;;;;;;;;
+;; Built-in modes ;;
+;;;;;;;;;;;;;;;;;;;;
+
+;; language servers
+(require 'eglot)
+(add-hook 'js-mode-hook #'eglot-ensure)
+(add-hook 'python-mode-hook #'eglot-ensure)
+
+;; documentation
+(require 'eldoc)
+(setq eldoc-echo-area-use-multiline-p nil)
+(setq eldoc-echo-area-prefer-doc-buffer t)
+(global-set-key (kbd "C-h .") 'eldoc-print-current-symbol-info)
+
+;; syntax checking
+(require 'flymake)
+(global-set-key (kbd "M-g n") #'flymake-goto-next-error)
+(global-set-key (kbd "M-g M-n") #'flymake-goto-next-error)
+(global-set-key (kbd "M-g p") #'flymake-goto-prev-error)
+(global-set-key (kbd "M-g M-p") #'flymake-goto-prev-error)
+(global-set-key (kbd "M-g l") #'flymake-show-buffer-diagnostics)
+(global-set-key (kbd "M-g M-l") #'flymake-show-buffer-diagnostics)
+
+(require 'cc-mode)
+(setq c-auto-align-backslashes nil)
+(setq c-default-style '((java-mode . "java")
+                        (awk-mode . "awk")
+                        (other . "stroustrup")))
+
+(require 'perl-mode)
+(setq perl-indent-level 4)
+(setq perl-continued-statement-offset 0)
+(setq perl-continued-brace-offset 0)
+(setq perl-brace-offset 0)
+(setq perl-brace-imaginary-offset 0)
+(setq perl-label-offset 0)
+(setq perl-indent-continued-arguments 4)
+
+(require 'python)
+(add-hook 'python-mode-hook
+          (lambda ()
+            (setq forward-sexp-function nil)
+            (set (make-local-variable 'python-indent-offset) 4)))
+
+(require 'sh-script)
+(setq sh-use-smie nil)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Third-party packages ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'dockerfile-mode)
+
+(require 'editorconfig)
+(setq editorconfig-mode-lighter "")
+(editorconfig-mode 1)
+
+(require 'git-modes)
+
+(require 'ledger-mode nil 'noerror)
+(add-to-list 'auto-mode-alist '("\\.ledger\\'" . ledger-mode))
+(setq ledger-post-amount-alignment-column 72)
+(setq ledger-reconcile-default-commodity "AUD")
+(setq ledger-clear-whole-transactions t)
+(setq org-read-date-prefer-future nil)
+(custom-set-faces
+ '(ledger-font-posting-account-face ((t (:inherit default)))))
+
+(require 'markdown-mode)
+(setq markdown-command "markdown_py -x markdown.extensions.smart_strong -x markdown.extensions.fenced_code -x markdown.extensions.nl2br")
+(add-to-list 'auto-mode-alist '("\\.mdown\\'" . markdown-mode) t)
+
+(require 'pkgbuild-mode)
+
+(require 'ssh-file-modes)
+
+(require 'yaml-mode)
diff --git a/file-modes/ledger-mode b/file-modes/ledger-mode
new file mode 160000 (submodule)
index 0000000..11e748d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 11e748d4838d51772f531a75849349ed8cd939ed
diff --git a/file-modes/markdown-mode b/file-modes/markdown-mode
new file mode 160000 (submodule)
index 0000000..e096bb9
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e096bb97a91fcd4dc2b46d8b6e093194b03b7364
diff --git a/file-modes/pkgbuild-mode b/file-modes/pkgbuild-mode
new file mode 160000 (submodule)
index 0000000..9525be8
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 9525be8ecbd3a0d0bc7cc27e6d0f403e111aa067
diff --git a/file-modes/yaml-mode b/file-modes/yaml-mode
new file mode 160000 (submodule)
index 0000000..5b58248
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 5b58248ab255dff6cfa4c4057a191bc4446ee5b6
diff --git a/init.el b/init.el
index 04d01c65cfb00bda401398a71f6196ec70e0476a..5897f14d786819ce29e1ce03d3d27dd4c0550c44 100644 (file)
--- a/init.el
+++ b/init.el
 ;;; -*- lexical-binding: t -*-
 
-(require 'seq)
+;;;;;;;;;;;;;;;;
+;; Early init ;;
+;;;;;;;;;;;;;;;;
+
+(let ((dir "~/.cache/emacs/eln-cache/"))
+  (unless (file-accessible-directory-p dir)
+    (make-directory dir))
+  (startup-redirect-eln-cache dir))
+
+(let ((dir "~/.cache/emacs/saves/"))
+  (unless (file-accessible-directory-p dir)
+    (make-directory dir))
+  (setq auto-save-list-file-prefix dir))
+
+(let ((dir "~/.cache/emacs/backups/"))
+  (unless (file-accessible-directory-p dir)
+    (make-directory dir))
+  (setq backup-directory-alist `(("." . ,dir))))
+
+(setq save-place-file "~/.cache/emacs/places")
+
+(setq project-list-file "~/.cache/emacs/projects")
+
+(setq tramp-persistency-file-name "~/.cache/emacs/tramp")
+
+;;;;;;;;;;;;;;;;;;;;
+;; Visual options ;;
+;;;;;;;;;;;;;;;;;;;;
+
+(load-file "~/.emacs.d/pastels-on-dark-theme.el")
+(enable-theme 'pastels-on-dark)
+
+(setq default-frame-alist '((vertical-scroll-bars . nil)
+                            (menu-bar-lines . 0)
+                            (tool-bar-lines . 0)
+                            (background-mode . dark)
+                            (alpha . 95)
+                            (font . "monospace 12")))
+
+(column-number-mode t)
+
+(line-number-mode t)
+
+(show-paren-mode t)
+
+(setq-default show-trailing-whitespace t)
+
+;; 256-color mode in screen terminals
+(add-to-list 'term-file-aliases
+                 '("screen.xterm-256color" . "screen-256color"))
+
+;;;;;;;;;;;;;;;;;;;;;
+;; General options ;;
+;;;;;;;;;;;;;;;;;;;;;
+
+(add-hook 'text-mode-hook #'goto-address-mode)
+(add-hook 'prog-mode-hook #'goto-address-prog-mode)
+
+(global-auto-revert-mode 1)
+(setq global-auto-revert-non-file-buffers t)
+(setq auto-revert-verbose nil)
+
+(setq auto-save-interval 0)
+(setq auto-save-timeout 30)
+
+;; backup files - keep 10 numbered backups
+(setq backup-by-copying t)
+(setq delete-old-versions t)
+(setq kept-new-versions 10)
+(setq kept-old-versions 0)
+(setq vc-make-backup-files t)
+(setq version-control t)
+
+(setq create-lockfiles nil)
+
+(delete-selection-mode t)
+
+(setq disabled-command-function nil)
+
+(setq ediff-window-setup-function 'ediff-setup-windows-plain
+      ediff-split-window-function 'split-window-horizontally)
+
+(setq find-file-visit-truename t)
+
+(setq help-window-select t)
+
+(global-hl-line-mode 1)
+
+(setq mouse-1-click-follows-link nil)
+
+(setq mouse-wheel-scroll-amount '(3))
+(setq mouse-wheel-progressive-speed nil)
+
+(repeat-mode 1)
+
+(setq save-interprogram-paste-before-kill t)
+
+(save-place-mode 1)
+
+(setq scroll-conservatively 1)
+(setq scroll-margin 1)
+
+(setq shift-select-mode nil)
+
+(setq sentence-end-double-space nil)
+
+(setq undo-limit 10000000)
+(setq undo-strong-limit undo-limit)
+
+;; unique buffer names
+(setq uniquify-strip-common-suffix t)
+(setq uniquify-buffer-name-style 'post-forward)
+
+(setq vc-follow-symlinks t)
+
+(xterm-mouse-mode 1)
+
+(defalias 'yes-or-no-p 'y-or-n-p)
+
+;;;;;;;;;;;;;;;;;
+;; Keybindings ;;
+;;;;;;;;;;;;;;;;;
+
+(global-set-key (kbd "C-x f") 'project-find-file)
+
+;; Text formatting
+(global-set-key (kbd "M-;") 'comment-line)
+(global-set-key (kbd "C-c d") 'duplicate-dwim)
+(global-set-key (kbd "M-z") 'zap-up-to-char)
+(global-set-key (kbd "C-c k") 'kill-whole-line)
+
+;; Windows/frames
+(global-set-key (kbd "<C-up>") 'windmove-up)
+(global-set-key (kbd "<C-down>") 'windmove-down)
+(global-set-key (kbd "<C-left>") 'windmove-left)
+(global-set-key (kbd "<C-right>") 'windmove-right)
+
+;; Mode switching
+(global-set-key (kbd "<f7>") 'flymake-mode)
+(global-set-key (kbd "<f8>") 'flyspell-mode)
+(global-set-key (kbd "<f9>") 'whitespace-mode)
+(global-set-key (kbd "<f10>") 'toggle-truncate-lines)
+
+;; Disable some default bindings from the builtin mouse.el
+(global-set-key [C-down-mouse-1] nil)
+(global-set-key [C-down-mouse-2] nil)
+(global-set-key [C-down-mouse-3] nil)
+(global-set-key [S-down-mouse-1] nil)
+(global-set-key [S-down-mouse-2] nil)
+(global-set-key [S-down-mouse-3] nil)
+
+;; Disable suspend-frame, it's annoying
+(global-set-key (kbd "C-z") nil)
+(global-set-key (kbd "C-x C-z") nil)
+
+;;;;;;;;;;;;;;;;;;;
+;; Load packages ;;
+;;;;;;;;;;;;;;;;;;;
 
 (defvar my/original-load-path load-path)
 
-(defun my/add-to-load-path (dirname)
-  (and (file-accessible-directory-p dirname)
-       (seq-filter (lambda (file)
-                     (string-match-p "\\.el$" file))
-                   (directory-files dirname))
-       (add-to-list 'load-path dirname)))
-
-(defun my/setup-load-path ()
-  (setq load-path my/original-load-path)
-
-  (my/add-to-load-path "~/.emacs.d/lisp")
-
-  (dolist (dirname (directory-files "~/.emacs.d/packages" 'full "^[^\\.]"))
-    (my/add-to-load-path dirname)
-    (my/add-to-load-path (concat dirname "/lisp")))
-
-  (message "Set load-path: %S" load-path))
-
-
-(my/setup-load-path)
-
-(load-library "my-backups")
-(load-library "my-direx")
-(load-library "my-editing-defuns")
-(load-library "my-file-modes")
-(load-library "my-find-test-file")
-(load-library "my-flycheck")
-(load-library "my-frame-title")
-(load-library "my-gui")
-(load-library "my-ivy")
-(load-library "my-keys")
-(load-library "my-kill-buffers")
-(load-library "my-minor-modes")
-(load-library "my-recentf")
-(load-library "my-scratch")
-(load-library "my-shackle")
-(load-library "my-vc")
-
-(message "Successfully loaded init.el")
+(defun my/reset-load-path ()
+  (setq load-path my/original-load-path))
+
+(message "Loading packages...")
+(load-file "~/.emacs.d/utils/init.el")
+(load-file "~/.emacs.d/completion/init.el")
+(load-file "~/.emacs.d/text-edit/init.el")
+(load-file "~/.emacs.d/file-modes/init.el")
+(load-file "~/.emacs.d/vc/init.el")
+(message "Finished loading init.el")
diff --git a/lisp/my-backups.el b/lisp/my-backups.el
deleted file mode 100644 (file)
index e944920..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(setq create-lockfiles nil)
-
-
-(let ((dir "~/.cache/emacs/saves/"))
-  (unless (file-accessible-directory-p dir)
-    (make-directory dir))
-
-  (setq auto-save-file-name-transforms `((".*" ,dir t)))
-  (setq auto-save-interval 0)
-  (setq auto-save-timeout 30))
-
-
-(let ((dir "~/.cache/emacs/backups/"))
-  (unless (file-accessible-directory-p dir)
-    (make-directory dir))
-
-  (setq backup-directory-alist `(("." . ,dir)))
-
-  (setq vc-make-backup-files t)
-  (add-hook 'after-save-hook (lambda () (setq buffer-backed-up nil)))
-
-  (setq backup-by-copying t)
-  (setq version-control t)
-  (setq kept-new-versions 10)
-  (setq kept-old-versions 0)
-  (setq delete-old-versions t))
diff --git a/lisp/my-direx.el b/lisp/my-direx.el
deleted file mode 100644 (file)
index 89ca4b7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'direx)
-(require 'direx-project)
-(require 'dired-x)
-
-(defalias 'direx:find-item 'direx:find-item-other-window)
diff --git a/lisp/my-file-modes.el b/lisp/my-file-modes.el
deleted file mode 100644 (file)
index 5bbd8b0..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(setq-default indent-tabs-mode nil)
-(setq-default require-final-newline t)
-
-(require 'cc-mode)
-(setq c-auto-align-backslashes nil)
-(setq c-default-style '((java-mode . "java")
-                        (awk-mode . "awk")
-                        (other . "stroustrup")))
-
-(require 'closure-template-html-mode)
-(setq sgml-basic-offset 4)
-
-(require 'coffee-mode)
-(setq coffee-tab-width 4)
-
-(require 'dockerfile-mode)
-
-(require 'git-modes)
-
-(require 'groovy-mode)
-(add-to-list 'auto-mode-alist '("\\.groovy\\'" . groovy-mode))
-
-(require 'haskell-mode)
-
-(require 'json-mode)
-(require 'js)
-(require 'js2-mode)
-(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
-(add-to-list 'interpreter-mode-alist '("node" . js2-mode))
-(setq js2-concat-multiline-strings 'eol)
-(setq js2-highlight-external-variables nil)
-(setq js2-mode-show-parse-errors nil)
-(setq js2-mode-show-strict-warnings nil)
-(setq js--declaration-keyword-re "x^") ; declarations should have normal indentation
-(setq js-indent-align-list-continuation nil)
-
-(add-hook 'js2-mode-hook #'js2-refactor-mode)
-
-(require 'js2-refactor)
-(js2r-add-keybindings-with-prefix "C-c C-m")
-(setq js2r-always-insert-parens-around-arrow-function-params t)
-(setq js2r-prefered-quote-type 2)
-
-(require 'kotlin-mode)
-
-(require 'ledger-mode nil 'noerror)
-(add-to-list 'auto-mode-alist '("\\.ledger\\'" . ledger-mode))
-(setq ledger-post-amount-alignment-column 72)
-(setq ledger-reconcile-default-commodity "AUD")
-(setq ledger-clear-whole-transactions t)
-(setq org-read-date-prefer-future nil)
-
-(require 'markdown-mode)
-(setq markdown-command "markdown_py -x markdown.extensions.smart_strong -x markdown.extensions.fenced_code -x markdown.extensions.nl2br")
-(add-to-list 'auto-mode-alist '("\\.mdown\\'" . markdown-mode) t)
-
-(require 'pkgbuild-mode)
-
-(require 'python)
-(add-hook 'python-mode-hook
-          (lambda ()
-            (setq forward-sexp-function nil)
-            (set (make-local-variable 'python-indent-offset) 4)))
-
-
-(require 'scala-mode)
-
-(require 'slime)
-(setq inferior-lisp-program "sbcl")
-
-(require 'sh-script)
-(setq sh-use-smie nil)
-
-(require 'ssh-file-modes)
-
-(when (require 'stumpwm-mode nil 'noerror)
-  (add-to-list 'auto-mode-alist '("/\\.stumpwmrc\\'" . stumpwm-mode)))
-
-(require 'wgrep)
-(setq wgrep-auto-save-buffer t)
-
-(require 'yaml-mode)
diff --git a/lisp/my-flycheck.el b/lisp/my-flycheck.el
deleted file mode 100644 (file)
index a0256d5..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'flycheck)
-
-(global-flycheck-mode 1)
-
-(setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc))
-
-(setq flycheck-emacs-lisp-load-path 'inherit)
-
-(add-hook 'flycheck-mode-hook #'my/use-eslint-from-node-modules)
-
-(setq flycheck-indication-mode 'right-fringe)
-
-(define-fringe-bitmap 'flycheck-fringe-bitmap-double-arrow
-  (vector #b00000000
-          #b00000000
-          #b00000000
-          #b00000000
-          #b00000000
-          #b00011001
-          #b00110110
-          #b01101100
-          #b11011000
-          #b01101100
-          #b00110110
-          #b00011001
-          #b00000000
-          #b00000000
-          #b00000000
-          #b00000000
-          #b00000000))
-
-(defun my/use-eslint-from-node-modules ()
-  (let* ((root (locate-dominating-file
-                (or (buffer-file-name) default-directory)
-                "node_modules"))
-         (eslint (and root
-                      (expand-file-name "node_modules/.bin/eslint" root))))
-    (when (and eslint (file-executable-p eslint))
-      (setq-local flycheck-javascript-eslint-executable eslint))))
diff --git a/lisp/my-gui.el b/lisp/my-gui.el
deleted file mode 100644 (file)
index 1e5fc81..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(menu-bar-mode -1)
-(tool-bar-mode -1)
-(scroll-bar-mode -1)
-
-(require 'pastels-on-dark-theme)
-(enable-theme 'pastels-on-dark)
-(setq frame-background-mode 'dark)
-
-(setq default-frame-alist '((vertical-scroll-bars)
-                            (background-mode . dark)
-                            (alpha . 95)
-                            (font . "monospace 12")))
-
-(require 'ansi-color)
-(setq ansi-color-names-vector
-      '("#000000"
-        "#fc391f"
-        "#31e722"
-        "#eaec23"
-        "#4856f7"
-        "#f935f8"
-        "#14f0f0"
-        "#e9ebeb"))
-(setq ansi-color-map (ansi-color-make-color-map))
-
-(add-to-list 'term-file-aliases
-                 '("screen.xterm-256color" . "screen-256color"))
-
-(setq scroll-conservatively 1)
-(setq scroll-margin 1)
-(setq mouse-wheel-scroll-amount '(3))
-(setq mouse-wheel-progressive-speed nil)
-
-(setq column-number-mode t)
-(setq line-number-mode t)
-
-(show-paren-mode t)
-
-(dolist (hook '(prog-mode-hook text-mode-hook))
-  (add-hook hook (lambda ()
-                   (setq show-trailing-whitespace t))))
-
-(setq shift-select-mode nil)
-(delete-selection-mode t)
-(setq sentence-end-double-space nil)
-
-(require 'uniquify)
-(setq uniquify-strip-common-suffix t)
-(setq uniquify-buffer-name-style 'post-forward)
-
-(defalias 'yes-or-no-p 'y-or-n-p)
-
-(setq find-file-visit-truename t)
-
-(setq disabled-command-function nil)
-
-(setq save-interprogram-paste-before-kill t)
-
-(setq undo-limit 10000000)
-(setq undo-strong-limit undo-limit)
diff --git a/lisp/my-ivy.el b/lisp/my-ivy.el
deleted file mode 100644 (file)
index 6c284b2..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'counsel)
-(require 'ivy)
-(require 'swiper)
-
-(ivy-mode 1)
-(counsel-mode 1)
-
-(setq ivy-wrap t)
-(setq ivy-extra-directories '("./"))
-(setq ivy-count-format "%d/%d ")
-(setq ivy-case-fold-search-default t)
-
-(setq counsel-find-file-at-point t)
-(setq counsel-find-file-ignore-regexp "\\(?:\\`[#.]\\)\\|\\(?:[#~]\\'\\)")
-
-(setq counsel-grep-base-command "grep -E -n -i -e %s %s")
-(setq counsel-rg-base-command "rg -S --no-heading --line-number --color never --hidden --ignore-file ~/.emacs.d/rg-ignore %s .")
-(defvar counsel-rg-files-command "rg --files --hidden --ignore-file ~/.emacs.d/rg-ignore")
-
-(defun counsel-rg-jump (&optional initial-input initial-directory)
-  "Jump to a file below the current directory.
-List all files within the current directory or any of its subdirectories.
-INITIAL-INPUT can be given as the initial minibuffer input.
-INITIAL-DIRECTORY, if non-nil, is used as the root directory for search."
-  (interactive
-   (list nil
-         (when current-prefix-arg
-           (read-directory-name "From directory: "))))
-  (counsel-require-program "rg")
-  (let ((default-directory (or initial-directory
-                               (locate-dominating-file default-directory ".git")
-                               default-directory)))
-    (ivy-read "rg --files: "
-              (split-string
-               (shell-command-to-string counsel-rg-files-command)
-               "\n" t)
-              :matcher #'counsel--find-file-matcher
-              :initial-input initial-input
-              :action (lambda (x)
-                        (with-ivy-window
-                          (find-file (expand-file-name x ivy--directory))))
-              :preselect (counsel--preselect-file)
-              :require-match 'confirm-after-completion
-              :history 'file-name-history
-              :keymap counsel-find-file-map
-              :caller 'counsel-rg-jump)))
diff --git a/lisp/my-keys.el b/lisp/my-keys.el
deleted file mode 100644 (file)
index 6c7d1f0..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-;; Disable suspend-frame, it's annoying
-(global-set-key (kbd "C-z") nil)
-(global-set-key (kbd "C-x C-z") nil)
-
-;; Search
-(global-set-key (kbd "C-s") 'counsel-grep-or-swiper)
-(global-set-key (kbd "C-r") 'ivy-resume)
-
-;; Files/buffers
-(global-set-key (kbd "C-x f") 'counsel-rg-jump)
-(global-set-key (kbd "C-x g") 'counsel-rg)
-(global-set-key (kbd "C-x l") 'counsel-locate)
-(global-set-key (kbd "C-x c") 'my/kill-buffers-not-in-frame)
-(global-set-key (kbd "C-x C-b") 'ibuffer)
-(global-set-key (kbd "C-x C-r") 'counsel-recentf)
-(global-set-key (kbd "C-x t") 'my/find-prod-or-test-file)
-(global-set-key (kbd "C-c g d") 'git-gutter:popup-hunk)
-(global-set-key (kbd "C-c g p") 'git-gutter:previous-hunk)
-(global-set-key (kbd "C-c g n") 'git-gutter:next-hunk)
-(global-set-key (kbd "C-c g r") 'git-gutter:revert-hunk)
-
-;; Windows/frames
-(global-set-key (kbd "C-x 9") 'my/window-resize-mode)
-(global-set-key (kbd "<C-up>") 'windmove-up)
-(global-set-key (kbd "<C-down>") 'windmove-down)
-(global-set-key (kbd "<C-left>") 'windmove-left)
-(global-set-key (kbd "<C-right>") 'windmove-right)
-
-;; Movement
-(global-set-key (kbd "M-g f") 'jump-char-forward)
-
-;; Text formatting
-(global-set-key (kbd "M-;") 'comment-line)
-(global-set-key (kbd "M-i") 'change-inner)
-(global-set-key (kbd "C-o") 'my/open-line-above)
-(global-set-key (kbd "M-o") 'my/open-line-below)
-(global-set-key (kbd "C-c c") 'my/copy-line)
-(global-set-key (kbd "C-c d") 'my/duplicate-line)
-
-;; Marking
-(global-set-key (kbd "M-=") 'er/expand-region)
-(global-set-key (kbd "C-c m a") 'mc/mark-all-dwim)
-(global-set-key (kbd "C-c m l") 'mc/edit-lines)
-(global-set-key (kbd "C-c m m") 'mc/mark-more-like-this-extended)
-(global-set-key (kbd "C-c m p") 'mc/mark-previous-like-this)
-(global-set-key (kbd "C-c m n") 'mc/mark-next-like-this)
-
-;; Killing and deleting
-(global-set-key (kbd "M-z") 'zap-up-to-char)
-(global-set-key (kbd "C-c k") 'kill-whole-line)
-(global-set-key (kbd "C-c s") 'my/substitute-line)
-
-;; Mode switching
-(global-set-key (kbd "C-x C-j") 'direx-project:jump-to-project-root-other-window)
-(global-set-key (kbd "C-c g s") 'magit-status)
-(global-set-key (kbd "C-c g g") 'magit-dispatch)
-(global-set-key (kbd "C-c g f") 'magit-file-dispatch)
-(global-set-key (kbd "<f8>") 'flyspell-mode)
-(global-set-key (kbd "<f9>") 'whitespace-mode)
-(global-set-key (kbd "<f10>") 'toggle-truncate-lines)
-
-;; Disable some default bindings from the builtin mouse.el
-(global-set-key [C-down-mouse-1] nil)
-(global-set-key [C-down-mouse-2] nil)
-(global-set-key [C-down-mouse-3] nil)
-(global-set-key [S-down-mouse-1] nil)
-(global-set-key [S-down-mouse-2] nil)
-(global-set-key [S-down-mouse-3] nil)
-
-
-(defun my/window-resize-mode ()
-  (interactive)
-  (message "Resize window with the arrow keys")
-  (let ((keymap (make-sparse-keymap)))
-    (define-key keymap [up] #'enlarge-window)
-    (define-key keymap [down] #'shrink-window)
-    (define-key keymap [left] #'shrink-window-horizontally)
-    (define-key keymap [right] #'enlarge-window-horizontally)
-    (set-transient-map keymap t)))
diff --git a/lisp/my-minor-modes.el b/lisp/my-minor-modes.el
deleted file mode 100644 (file)
index b9b6b8b..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'autorevert)
-(global-auto-revert-mode 1)
-(setq global-auto-revert-non-file-buffers t)
-(setq auto-revert-verbose nil)
-
-(require 'change-inner)
-
-(require 'editorconfig)
-(editorconfig-mode 1)
-
-(require 'elisp-slime-nav)
-(dolist (hook '(emacs-lisp-mode-hook ielm-mode-hook))
-  (add-hook hook 'elisp-slime-nav-mode))
-
-(require 'expand-region)
-
-(require 'goto-addr)
-(add-hook 'text-mode-hook #'goto-address-mode)
-(add-hook 'prog-mode-hook #'goto-address-prog-mode)
-(setq goto-address-highlight-keymap
-      (let ((m (make-sparse-keymap)))
-        (define-key m (kbd "C-<mouse-1>") 'goto-address-at-point)
-        ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25715
-        (define-key m (kbd "<mouse-2>") 'ignore) ; fixes yank text bug for some reason
-        (define-key m (kbd "C-c RET") 'goto-address-at-point)
-        m))
-
-(require 'highlight-indent-guides)
-(add-hook 'prog-mode-hook 'highlight-indent-guides-mode)
-(setq highlight-indent-guides-method 'character)
-(setq highlight-indent-guides-responsive 'top)
-(setq highlight-indent-guides-auto-enabled nil)
-(set-face-foreground 'highlight-indent-guides-character-face "#333333")
-(set-face-foreground 'highlight-indent-guides-top-character-face "#726464")
-
-(require 'highlight-symbol)
-(add-hook 'prog-mode-hook #'highlight-symbol-mode)
-(add-hook 'prog-mode-hook #'highlight-symbol-nav-mode)
-(setq highlight-symbol-idle-delay 0.5)
-
-(require 'hl-line)
-(global-hl-line-mode)
-
-(require 'jump-char)
-
-(require 'flyspell)
-
-(require 'misc)
-
-(require 'multiple-cursors)
-
-(require 'saveplace)
-(setq-default save-place t)
-
-(require 'xt-mouse)
-(xterm-mouse-mode)
-
-(require 'yasnippet)
-(add-hook 'prog-mode-hook #'yas-minor-mode)
-(add-hook 'python-mode-hook
-          (lambda () (set (make-local-variable 'yas-indent-line) 'fixed)))
-(yas-reload-all)
-
-(require 'diminish)
-(add-hook 'after-init-hook
-          (lambda ()
-            (diminish 'counsel-mode)
-            (diminish 'editorconfig-mode)
-            (diminish 'git-gutter-mode)
-            (diminish 'highlight-symbol-mode)
-            (diminish 'highlight-indent-guides-mode)
-            (diminish 'ivy-mode)
-            (diminish 'yas-minor-mode)))
diff --git a/lisp/my-recentf.el b/lisp/my-recentf.el
deleted file mode 100644 (file)
index 4f8ba5d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'recentf)
-
-(setq recentf-exclude (list
-                       "/\\.emacs\\.d/recentf$"
-                       "/\\.git/"))
-
-(setq recentf-max-saved-items 1000)
-
-(run-with-idle-timer 30 t #'my/recentf-periodic)
-
-(defvar my/recentf-list-prev nil)
-
-(defun my/recentf-periodic ()
-  (when (my/recentf-has-changed)
-    (my/with-inhibit-message #'recentf-cleanup)
-    (when (equal recentf-list my/recentf-list-prev)
-      (my/with-inhibit-message #'recentf-save-list)
-      (setq my/recentf-list-prev recentf-list))))
-
-(defun my/recentf-has-changed ()
-  (not (equal recentf-list my/recentf-list-prev)))
-
-(defun my/with-inhibit-message (function)
-  (let ((old-inhibit-message inhibit-message))
-    (setq inhibit-message t)
-    (unwind-protect
-        (funcall function)
-      (setq inhibit-message old-inhibit-message))))
-
-(recentf-mode 1)
diff --git a/lisp/my-shackle.el b/lisp/my-shackle.el
deleted file mode 100644 (file)
index 6965b96..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'shackle)
-
-(defun my/shackle-rules ()
-  (let ((rules-common
-         '(((:custom buffer-file-name) :other t)
-           (direx:direx-mode :align left :size 40 :select t)
-           ("*Flycheck error messages*" :align below :size 15 :select nil)))
-        (rules-wide
-         '(("magit-.*-popup" :regexp t :align right :select t)
-           ((magit-log-mode magit-status-mode) :align bottom :size 15 :select t)
-           ((magit-diff-mode magit-revision-mode) :align right :size 80)))
-        (rules-narrow-tall
-         '(("magit-.*-popup" :regexp t :align bottom :select t)
-           (magit-status-mode :align bottom :size 25 :select t)
-           ((magit-diff-mode magit-revision-mode) :align bottom :size 25)))
-        (rules-narrow-short
-         '(("magit-.*-popup" :regexp t :align bottom :select t)
-           (magit-status-mode :align bottom :size 0.8 :select t)
-           ((magit-diff-mode magit-revision-mode) :align bottom :size 0.65))))
-    (cond
-     ((>= (frame-text-cols) 120)
-      (append rules-common rules-wide))
-     ((>= (frame-text-lines) 30)
-      (append rules-common rules-narrow-tall))
-     (t
-      (append rules-common rules-narrow-short)))))
-
-(setq shackle-default-rule '(:align below :select t :size 15))
-
-(setq shackle-default-size 0.5)
-
-(defun shackle-match (buffer-or-name)
-  (cl-loop for (condition . plist) in (my/shackle-rules)
-           when (shackle--match buffer-or-name condition plist)
-           return plist
-           finally return shackle-default-rule))
-
-(shackle-mode)
diff --git a/lisp/my-vc.el b/lisp/my-vc.el
deleted file mode 100644 (file)
index a523d15..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-;;; -*- lexical-binding: t -*-
-
-(require 'ediff)
-(setq ediff-window-setup-function 'ediff-setup-windows-plain
-      ediff-split-window-function 'split-window-horizontally)
-
-
-(require 'git-gutter)
-
-(add-hook 'git-gutter:update-hooks 'magit-revert-buffer-hook)
-
-(setq git-gutter:ask-p nil)
-
-(defun git-gutter:popup-hunk (&optional diffinfo)
-  "MODIFIED!! Popup current diff hunk. Removed the `save-window-excursion' so I can control it with shackle."
-  (interactive)
-  (git-gutter:awhen (or diffinfo
-                        (git-gutter:search-here-diffinfo git-gutter:diffinfos))
-    (pop-to-buffer (git-gutter:update-popuped-buffer it))))
-
-(global-git-gutter-mode)
-
-
-(require 'magit)
-
-(setq magit-completing-read-function 'ivy-completing-read)
-(setq git-commit-finish-query-functions
-      (delete #'git-commit-check-style-conventions git-commit-finish-query-functions))
-
-
-(require 'vc)
-(setq vc-follow-symlinks t)
-(setq vc-handled-backends nil)
diff --git a/packages/async b/packages/async
deleted file mode 160000 (submodule)
index d7e7f79..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d7e7f79ee42311a0187aa2ab4f4e2f8843fa28da
diff --git a/packages/change-inner b/packages/change-inner
deleted file mode 160000 (submodule)
index 42cad58..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 42cad58aed2caec260f8e8ff61f78a7d3db72d1b
diff --git a/packages/check.sh b/packages/check.sh
deleted file mode 100755 (executable)
index 8f0b17f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-set -eu
-
-cd "$(dirname "$0")"
-
-grep submodule ../.git/config |cut -d'"' -f2|while read -r x; do ls "$x" &> /dev/null || echo ".git/config remove $x"; done
-
-find ../.git/modules/ -type d -name objects -printf '%h\n'|while read -r x; do x="$(basename "$x")"; ls "$x" &> /dev/null || echo "rm -rf .git/modules/$x"; done
diff --git a/packages/cl-closure-template b/packages/cl-closure-template
deleted file mode 160000 (submodule)
index f1983aa..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f1983aa525045691e128027d2a2d74831c873d6e
diff --git a/packages/coffee-mode b/packages/coffee-mode
deleted file mode 160000 (submodule)
index 35a41c7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 35a41c7d8233eac0b267d9593e67fb8b6235e134
diff --git a/packages/dash b/packages/dash
deleted file mode 160000 (submodule)
index 334a0b3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 334a0b31cab6b42e4465ffdfc6f07c00cd227562
diff --git a/packages/diminish b/packages/diminish
deleted file mode 160000 (submodule)
index 6ec6ebc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6ec6ebc391371418efc6c98d70b013f34af5a2ee
diff --git a/packages/direx b/packages/direx
deleted file mode 160000 (submodule)
index a79bfdb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a79bfdb5980cf6ed7bfb3b41ddc471a7b6c0ede4
diff --git a/packages/dockerfile-mode b/packages/dockerfile-mode
deleted file mode 160000 (submodule)
index 07dde72..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 07dde72b0e356d772fb65b969bd6decfa166e4d7
diff --git a/packages/editorconfig b/packages/editorconfig
deleted file mode 160000 (submodule)
index 048c553..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 048c553999c90db0b6066b3ec647a79f4af9985d
diff --git a/packages/elisp-slime-nav b/packages/elisp-slime-nav
deleted file mode 160000 (submodule)
index 9ab5236..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9ab52362600af9f97f1590f05a295538025170b3
diff --git a/packages/expand-region b/packages/expand-region
deleted file mode 160000 (submodule)
index 4b83227..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4b8322774d9c1d8b64a0049d1dbbc1e7ce80c1a0
diff --git a/packages/flycheck b/packages/flycheck
deleted file mode 160000 (submodule)
index 01396a5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 01396a5eff9fa494285e0d3139838231c05e3948
diff --git a/packages/git-gutter b/packages/git-gutter
deleted file mode 160000 (submodule)
index cca61a1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cca61a1c6b0c0fd6ecb1b0366711c618581eabb6
diff --git a/packages/git-modes b/packages/git-modes
deleted file mode 160000 (submodule)
index 14adca2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 14adca24eb6b0b4e311ad144c5d41972c6b044b2
diff --git a/packages/graphql b/packages/graphql
deleted file mode 160000 (submodule)
index e2b3096..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e2b309689f4faf9225f290080f836e988c5a576d
diff --git a/packages/groovy-modes b/packages/groovy-modes
deleted file mode 160000 (submodule)
index 26da902..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 26da902d1158c0312628d57578109be54eca2415
diff --git a/packages/haskell-mode b/packages/haskell-mode
deleted file mode 160000 (submodule)
index 20f72cc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 20f72ccc17c8233dbb7c94ebf52a2a59e7d97730
diff --git a/packages/highlight-indent-guides b/packages/highlight-indent-guides
deleted file mode 160000 (submodule)
index cf352c8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cf352c85cd15dd18aa096ba9d9ab9b7ab493e8f6
diff --git a/packages/js2-mode b/packages/js2-mode
deleted file mode 160000 (submodule)
index 29979e5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 29979e5f3301796ba606759e39ee0b1b6a2a24f3
diff --git a/packages/js2-refactor b/packages/js2-refactor
deleted file mode 160000 (submodule)
index a0977c4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a0977c4ce1918cc266db9d6cd7a2ab63f3a76b9a
diff --git a/packages/json-mode b/packages/json-mode
deleted file mode 160000 (submodule)
index 0e819e5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0e819e519ae17a2686e0881c4ca51fa873fa9b83
diff --git a/packages/json-reformat b/packages/json-reformat
deleted file mode 160000 (submodule)
index 8eb6668..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8eb6668ed447988aea06467ba8f42e1f2178246f
diff --git a/packages/json-snatcher b/packages/json-snatcher
deleted file mode 160000 (submodule)
index b28d1c0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b28d1c0670636da6db508d03872d96ffddbc10f2
diff --git a/packages/kotlin-mode b/packages/kotlin-mode
deleted file mode 160000 (submodule)
index 0e4bafb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0e4bafb31d1fc2a0a420a521c2723d5526646c0b
diff --git a/packages/ledger-mode b/packages/ledger-mode
deleted file mode 160000 (submodule)
index 3495d12..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3495d1224ee73aa96c1d5bd131dc3a7f23d46336
diff --git a/packages/magit b/packages/magit
deleted file mode 160000 (submodule)
index d14c082..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d14c082354c796dd363550a03463e9382b7cfbf6
diff --git a/packages/magit-transient b/packages/magit-transient
deleted file mode 160000 (submodule)
index 1e090b0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1e090b0cd4ea58c9fb5e807e4ebd7bdb9a7b66ba
diff --git a/packages/markdown-mode b/packages/markdown-mode
deleted file mode 160000 (submodule)
index 0517340..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 051734091aba17a54af96b81beebdbfc84c26459
diff --git a/packages/multiple-cursors b/packages/multiple-cursors
deleted file mode 160000 (submodule)
index a9d7764..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a9d7764f80b241978f3d4e76bc981ef10bab5d70
diff --git a/packages/pkgbuild-mode b/packages/pkgbuild-mode
deleted file mode 160000 (submodule)
index 8a5e95c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8a5e95c8514315cb40c47f1acdb68a4ace921497
diff --git a/packages/s b/packages/s
deleted file mode 160000 (submodule)
index 43ba8b5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 43ba8b563bee3426cead0e6d4ddc09398e1a349d
diff --git a/packages/scala-mode b/packages/scala-mode
deleted file mode 160000 (submodule)
index 402d6df..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 402d6df56457e9c512c3d77c7bcb0d04c77715f1
diff --git a/packages/shackle b/packages/shackle
deleted file mode 160000 (submodule)
index 1c88d2a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1c88d2a2fdd2efb3e990da69d6fedeaee5ff71a2
diff --git a/packages/slime b/packages/slime
deleted file mode 160000 (submodule)
index 68c58c0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 68c58c0194ff03cd147fcec99f0ee90ba9178875
diff --git a/packages/swiper b/packages/swiper
deleted file mode 160000 (submodule)
index e005666..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e005666df39ca767e6d5ab71b1a55d8c08395259
diff --git a/packages/treepy b/packages/treepy
deleted file mode 160000 (submodule)
index 3ac940e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3ac940e97f3d03e48ca9d7fcd74916a9b01c72f3
diff --git a/packages/wgrep b/packages/wgrep
deleted file mode 160000 (submodule)
index f0ef9bf..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f
diff --git a/packages/with-editor b/packages/with-editor
deleted file mode 160000 (submodule)
index 2848a90..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2848a90addae086b657605b84a7fbecf2c4c1c65
diff --git a/packages/yaml-mode b/packages/yaml-mode
deleted file mode 160000 (submodule)
index fc5e1c5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit fc5e1c58f94472944c4aa838f00f6adcac6fa992
diff --git a/packages/yasnippet b/packages/yasnippet
deleted file mode 160000 (submodule)
index 5cbdbf0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6
similarity index 98%
rename from lisp/pastels-on-dark-theme.el
rename to pastels-on-dark-theme.el
index cec781831da2eb939df0406e9f3e2819bd13457b..86fde8164cc533f9b32c7e678d5c60b49948e9c2 100644 (file)
@@ -58,7 +58,7 @@
  '(lazy-highlight ((t (:background "#302733"))))
  '(default (
             (((type tty)) (:stipple nil :background nil :foreground nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal))
-            (((type graphic)) (:stipple nil :background "#211D1D" :foreground "#DADADA" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal))
+            (((type graphic)) (:stipple nil :background "#000000" :foreground "#DADADA" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal))
             )))
 
 
diff --git a/rg-ignore b/rg-ignore
deleted file mode 100644 (file)
index 466cb5d..0000000
--- a/rg-ignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.git
-.hg
-.svn
-CVS
diff --git a/text-edit/change-inner b/text-edit/change-inner
new file mode 160000 (submodule)
index 0000000..1394f5c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 1394f5c07a95a97e39d616a1d7054d7c9bc49ba3
diff --git a/text-edit/expand-region b/text-edit/expand-region
new file mode 160000 (submodule)
index 0000000..e8f4e0f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e8f4e0fe9c9a80a6a26e2b438502aba9a799d580
diff --git a/text-edit/init.el b/text-edit/init.el
new file mode 100644 (file)
index 0000000..3454794
--- /dev/null
@@ -0,0 +1,70 @@
+;;; -*- lexical-binding: t -*-
+
+(dolist (pkg '("~/.emacs.d/text-edit"
+               "~/.emacs.d/text-edit/change-inner"
+               "~/.emacs.d/text-edit/expand-region"
+               "~/.emacs.d/text-edit/highlight-symbol"
+               "~/.emacs.d/text-edit/jump-char"
+               "~/.emacs.d/text-edit/yasnippet"))
+  (add-to-list 'load-path pkg))
+
+;;;;;;;;;;;;;;;;;
+;; My packages ;;
+;;;;;;;;;;;;;;;;;
+
+(require 'my-buffer-navigation)
+(global-set-key (kbd "C-x b") 'my/switch-to-previous-buffer)
+
+(require 'my-find-test-file)
+(global-set-key (kbd "C-x t") 'my/find-prod-or-test-file)
+
+(require 'my-frame-title)
+(setq frame-title-format '((:eval (funcall #'my/generate-frame-title))))
+(setq icon-title-format frame-title-format)
+(add-to-list 'post-command-hook #'my/terminal-update-title)
+
+(require 'my-kill-buffers)
+(add-to-list 'delete-frame-functions #'my/kill-buffers-if-deleting-last-frame)
+(global-set-key (kbd "C-x c") 'my/kill-buffers-not-in-frame)
+
+(require 'my-line-editing)
+(global-set-key (kbd "C-o") 'my/open-line-above)
+(global-set-key (kbd "M-o") 'my/open-line-below)
+(global-set-key (kbd "C-c c") 'my/copy-line)
+(global-set-key (kbd "C-c s") 'my/substitute-line)
+
+(require 'my-new-scratch-buffer)
+
+(require 'my-recentf)
+(setq recentf-save-file "~/.cache/emacs/recentf")
+(setq recentf-exclude '("/\\.emacs\\.d/recentf$" "/\\.git/"))
+(setq recentf-max-saved-items 1000)
+(recentf-mode 1)
+(my/recentf-auto-cleanup-and-save)
+
+(require 'my-window-resize)
+(global-set-key (kbd "C-x 9") 'my/window-resize-mode)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Third-party packages ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'change-inner)
+(global-set-key (kbd "M-i") 'change-inner)
+
+(require 'expand-region)
+(global-set-key (kbd "M-=") 'er/expand-region)
+
+(require 'highlight-symbol)
+(add-hook 'prog-mode-hook #'highlight-symbol-mode)
+(add-hook 'prog-mode-hook #'highlight-symbol-nav-mode)
+(setq highlight-symbol-idle-delay 0.5)
+
+(require 'jump-char)
+(global-set-key (kbd "M-g f") 'jump-char-forward)
+
+(require 'yasnippet)
+(add-hook 'prog-mode-hook #'yas-minor-mode)
+(add-hook 'python-mode-hook
+          (lambda () (set (make-local-variable 'yas-indent-line) 'fixed)))
+(yas-reload-all)
similarity index 100%
rename from packages/jump-char
rename to text-edit/jump-char
diff --git a/text-edit/my-buffer-navigation.el b/text-edit/my-buffer-navigation.el
new file mode 100644 (file)
index 0000000..77c6aca
--- /dev/null
@@ -0,0 +1,7 @@
+;;; -*- lexical-binding: t -*-
+
+(defun my/switch-to-previous-buffer ()
+  (interactive)
+  (switch-to-buffer (other-buffer (current-buffer) 1)))
+
+(provide 'my-buffer-navigation)
similarity index 98%
rename from lisp/my-find-test-file.el
rename to text-edit/my-find-test-file.el
index 8f0c445364f38603d1be65cd019f8b7f511c9e56..989f449edc0a5e03877981d1cadc9b1be3adb92f 100644 (file)
@@ -1,7 +1,6 @@
 ;;; -*- lexical-binding: t -*-
 
 (require 'cl-lib)
-(require 'counsel)
 
 (defun my/prod-file-p (file)
   (not (or (string-match-p "test" file)
@@ -54,3 +53,5 @@ INITIAL-DIRECTORY, if non-nil, is used as the root directory for search."
       (t (ivy-read "Find test file" results
                    :action #'counsel-git-action
                    :caller 'my/find-prod-or-test-file)))))
+
+(provide 'my-find-test-file)
similarity index 78%
rename from lisp/my-frame-title.el
rename to text-edit/my-frame-title.el
index bb558b3ac2e0e35df2ec6c6e6262d860d8670a0f..2a437c94d25ac484b57208f7d245fdbd477623f2 100644 (file)
@@ -1,14 +1,7 @@
 ;;; -*- lexical-binding: t -*-
 
-(setq frame-title-format '((:eval (funcall #'my/generate-frame-title))))
-
-(setq icon-title-format frame-title-format)
-
-(add-to-list 'post-command-hook #'my/terminal-update-title)
-
-
 (defun my/generate-frame-title ()
-  "Returns a string like 'filename (dirname) (hostname)'"
+  "Return a string like \"filename (dirname) (hostname)\"."
   (let ((t-name
          (if (buffer-file-name)
              (file-name-nondirectory (buffer-file-name))
@@ -33,3 +26,5 @@
   "If using a terminal frame then sends the escape codes to update the title."
   (if (terminal-parameter (frame-terminal) 'terminal-initted)
       (send-string-to-terminal (concat "\033]0;" (my/generate-frame-title) "\007"))))
+
+(provide 'my-frame-title)
similarity index 95%
rename from lisp/my-kill-buffers.el
rename to text-edit/my-kill-buffers.el
index 8e262f52860d63b7fb5bebd5bd4aa945483b8773..f911b4362e7efd2079739d0aa572c11429e9bd5d 100644 (file)
@@ -1,7 +1,5 @@
 ;;; -*- lexical-binding: t -*-
 
-(add-to-list 'delete-frame-functions #'my/kill-buffers-if-deleting-last-frame)
-
 (defun my/kill-buffers-if-deleting-last-frame (frame)
   "Kill all buffers when closing the last frame"
   (when (equal (list frame) (my/frame-list-ignoring-initial-frame))
@@ -39,3 +37,5 @@
         (not (buffer-modified-p buffer))
         (null (buffer-file-name buffer))))
       (kill-buffer buffer)))
+
+(provide 'my-kill-buffers)
similarity index 67%
rename from lisp/my-editing-defuns.el
rename to text-edit/my-line-editing.el
index f05070309467b393b088ecf0c48c4c7fb55d0348..3192814c484bf37bbd011c5c48aeebdf8dda52a3 100644 (file)
@@ -7,22 +7,6 @@
                   (line-beginning-position (+ 1 arg)))
   (message "Copied %d lines" arg))
 
-(defun my/duplicate-line (arg)
-  "Duplicate current line, leaving point in lower line. With ARG duplicates the line that many lines."
-  (interactive "*p")
-  (let* ((start (line-beginning-position 1))
-         (end (line-beginning-position 2))
-         (at-eof (= end (line-end-position) (point-max))))
-    (kill-ring-save start end)
-    (when at-eof
-      (kill-append "\n" t))
-    (save-mark-and-excursion
-      (forward-line)
-      (dotimes (ignored arg)
-        (yank)))
-    (forward-line)
-    (back-to-indentation)))
-
 (defun my/open-line-above (arg)
   "Open a new line above point with indentation. With ARG insert that many lines."
   (interactive "*p")
@@ -46,3 +30,5 @@
       (kill-line arg))
   (if (not (string-equal major-mode "fundamental-mode"))
       (indent-for-tab-command)))
+
+(provide 'my-line-editing)
similarity index 89%
rename from lisp/my-scratch.el
rename to text-edit/my-new-scratch-buffer.el
index dc387d840a6c565e4c835e2531a2272c5e10494e..47161a90ab785adb448b04f02c9d03c5b98e2238 100644 (file)
@@ -3,7 +3,7 @@
 (setq initial-scratch-message nil)
 (setq initial-major-mode 'emacs-lisp-mode)
 
-(defun my/scratch-buffer ()
+(defun my/new-scratch-buffer ()
   "Create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
   (interactive)
   (let ((n 0)
@@ -16,3 +16,5 @@
              (get-buffer bufname)))
     (switch-to-buffer (get-buffer-create bufname))
     (funcall initial-major-mode)))
+
+(provide 'my-new-scratch-buffer)
diff --git a/text-edit/my-recentf.el b/text-edit/my-recentf.el
new file mode 100644 (file)
index 0000000..d04b5df
--- /dev/null
@@ -0,0 +1,16 @@
+;;; -*- lexical-binding: t -*-
+
+;; Auto-cleanup and auto-save with no (message)
+
+(defvar my/recentf-list-prev nil)
+
+(defun my/recentf-periodic ()
+  (when (not (equal recentf-list my/recentf-list-prev))
+    (let ((inhibit-message t)) (recentf-cleanup))
+    (let ((inhibit-message t)) (recentf-save-list))
+    (setq my/recentf-list-prev recentf-list)))
+
+(defun my/recentf-auto-cleanup-and-save ()
+  (run-with-idle-timer 30 t #'my/recentf-periodic))
+
+(provide 'my-recentf)
diff --git a/text-edit/my-window-resize.el b/text-edit/my-window-resize.el
new file mode 100644 (file)
index 0000000..edbb7fd
--- /dev/null
@@ -0,0 +1,13 @@
+;;; -*- lexical-binding: t -*-
+
+(defun my/window-resize-mode ()
+  (interactive)
+  (message "Resize window with the arrow keys")
+  (let ((keymap (make-sparse-keymap)))
+    (define-key keymap [up] #'enlarge-window)
+    (define-key keymap [down] #'shrink-window)
+    (define-key keymap [left] #'shrink-window-horizontally)
+    (define-key keymap [right] #'enlarge-window-horizontally)
+    (set-transient-map keymap t)))
+
+(provide 'my-window-resize)
diff --git a/text-edit/yasnippet b/text-edit/yasnippet
new file mode 160000 (submodule)
index 0000000..297546f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 297546f0853a6a51f5b05e954d0c6aea8caa5ec2
diff --git a/update-package-ignore.sh b/update-package-ignore.sh
new file mode 100755 (executable)
index 0000000..b32fcd5
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+cd "$(dirname "$0")"
+find . -name .git -type f -printf '%h\n' | sed 's/^\.//' | sort > .ignore
diff --git a/utils/compat b/utils/compat
new file mode 160000 (submodule)
index 0000000..eb8fbfa
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit eb8fbfa5582a8e5880e2eaa66d15d498bca6a45a
diff --git a/utils/dash b/utils/dash
new file mode 160000 (submodule)
index 0000000..13f9fcd
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 13f9fcd09d40132e9e1346a69e7b293d835a85f2
diff --git a/utils/init.el b/utils/init.el
new file mode 100644 (file)
index 0000000..d5a2289
--- /dev/null
@@ -0,0 +1,6 @@
+;;; -*- lexical-binding: t -*-
+
+(dolist (pkg '("~/.emacs.d/utils/compat/"
+               "~/.emacs.d/utils/dash/"
+               "~/.emacs.d/utils/s/"))
+  (add-to-list 'load-path pkg))
diff --git a/utils/s b/utils/s
new file mode 160000 (submodule)
index 0000000..dda84d3
--- /dev/null
+++ b/utils/s
@@ -0,0 +1 @@
+Subproject commit dda84d38fffdaf0c9b12837b504b402af910d01d
diff --git a/vc/diff-hl b/vc/diff-hl
new file mode 160000 (submodule)
index 0000000..b8b2727
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b8b2727a72fdf64ac98e6cfa136a43cb0cacf72f
diff --git a/vc/init.el b/vc/init.el
new file mode 100644 (file)
index 0000000..5f5e9a6
--- /dev/null
@@ -0,0 +1,21 @@
+;;; -*- lexical-binding: t -*-
+
+(dolist (pkg '("~/.emacs.d/vc/magit/lisp"
+               "~/.emacs.d/vc/magit-popup"
+               "~/.emacs.d/vc/magit-transient/lisp"
+               "~/.emacs.d/vc/with-editor/lisp"
+               "~/.emacs.d/vc/diff-hl"))
+  (add-to-list 'load-path pkg))
+
+(require 'diff-hl)
+(require 'diff-hl-show-hunk)
+(global-diff-hl-mode 1)
+
+(require 'magit)
+(setq transient-history-file "~/.cache/emacs/transient-history.el")
+(setq magit-completing-read-function 'ivy-completing-read)
+(setq git-commit-finish-query-functions
+      (delete #'git-commit-check-style-conventions git-commit-finish-query-functions))
+(global-set-key (kbd "C-x v s") 'magit-status)
+(global-set-key (kbd "C-x v v") 'magit-dispatch)
+(global-set-key (kbd "C-x v f") 'magit-file-dispatch)
diff --git a/vc/magit b/vc/magit
new file mode 160000 (submodule)
index 0000000..54d37dc
--- /dev/null
+++ b/vc/magit
@@ -0,0 +1 @@
+Subproject commit 54d37dc14c3f715dd0328a70bc65d63c54ee9613
similarity index 100%
rename from packages/magit-popup
rename to vc/magit-popup
diff --git a/vc/magit-transient b/vc/magit-transient
new file mode 160000 (submodule)
index 0000000..b14f44e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b14f44e91341ca70c21946baf70162dd13a30310
diff --git a/vc/with-editor b/vc/with-editor
new file mode 160000 (submodule)
index 0000000..d43db3c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit d43db3c58c34d4dbc3ce6f68ec24fecf3452b20e