From a55a5248bd2dae5f849476d0f7b5dcd8d91cf929 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 8 Apr 2024 17:16:29 -0500 Subject: fit and finish work - gptel: added gptel-send-region with global keybinding - projectile: made project-switch-actions more efficient with regexp - prog-go: removed disabled code - mu4e: capture template captures region if selected - system utils: merged bury alive with other killing buffer code - org-capture: renamed *website-clipper to org-webpage-clipper - rg: auto switch to ripgrep-results window when ripgrep search completes - dashboard: remove dashboard banner custom face General - moved abbrev_defs to assets - removed gitmodules file - updated packages - fixed docstring and formatting throughout Custom-Functions - move cj/merge-list-to-list to custom-functions - add remove leading trailing whitespace function - corrected arrayify prompt Font-Config - added font point sizes in fontaine menu - make default font point size 11 Python - adding back python poetry support - added cj/python-setup method - merge python and python-mode configurations (they are the same built-in package) Show-Kill-Ring - show-kill-ring displays in another read-only buffer - show-kill-ring exits with q Elfeed - moved elfeed-feeds.org to assets - removed Wired from elfeed feeds - moved ElfeedDB to user-emacs-directory/.elfeed-db - moved elfeed-dashboard.org to assets --- .gitignore | 1 + .gitmodules | 0 TODO.org | 120 ++++---- abbrev_defs | 317 -------------------- assets/abbrev_defs | 320 +++++++++++++++++++++ assets/elfeed-dashboard.org | 61 ++++ assets/elfeed-feeds.org | 5 - elfeed-dashboard.org | 61 ---- localrepo/a-20210929.1510.tar | Bin 20480 -> 20480 bytes localrepo/aio-20200610.1904.tar | Bin 30720 -> 30720 bytes localrepo/all-the-icons-20240108.559.tar | Bin 204800 -> 204800 bytes localrepo/all-the-icons-ivy-20190508.1803.tar | Bin 10240 -> 10240 bytes localrepo/archive-contents | 5 +- localrepo/async-1.9.8.tar | Bin 102400 -> 102400 bytes localrepo/blacken-20231129.654.tar | Bin 10240 -> 10240 bytes localrepo/calibredb-20240331.409.tar | Bin 235520 -> 235520 bytes localrepo/change-inner-20231203.1021.tar | Bin 10240 -> 10240 bytes localrepo/chess-2.0.5.tar | Bin 4710400 -> 4710400 bytes localrepo/company-0.10.2.tar | Bin 2713600 -> 2713600 bytes localrepo/compat-29.1.4.5.tar | Bin 348160 -> 0 bytes localrepo/counsel-0.14.2.tar | Bin 286720 -> 286720 bytes localrepo/css-eldoc-20220415.1629.tar | Bin 30720 -> 30720 bytes localrepo/dashboard-20240327.29.tar | Bin 174080 -> 174080 bytes localrepo/devdocs-0.6.1.tar | Bin 40960 -> 40960 bytes localrepo/dired-hacks-utils-20230512.1107.tar | Bin 20480 -> 20480 bytes localrepo/dirvish-20230519.1500.tar | Bin 276480 -> 276480 bytes localrepo/easy-hugo-20240129.1534.tar | Bin 112640 -> 112640 bytes localrepo/ef-themes-1.6.1.tar | Bin 819200 -> 819200 bytes localrepo/elfeed-20240331.1348.tar | Bin 204800 -> 204800 bytes localrepo/elfeed-dashboard-20210727.603.tar | Bin 20480 -> 20480 bytes localrepo/emacsql-20240124.1601.tar | Bin 9267200 -> 9267200 bytes localrepo/emojify-20210108.1111.tar | Bin 921600 -> 921600 bytes localrepo/eradio-20210327.1000.tar | Bin 10240 -> 10240 bytes localrepo/erc-image-20210604.753.tar | Bin 20480 -> 20480 bytes localrepo/esxml-20230308.2254.tar | Bin 51200 -> 51200 bytes localrepo/exec-path-from-shell-2.1.tar | Bin 61440 -> 61440 bytes localrepo/expand-region-1.0.0.tar | Bin 266240 -> 266240 bytes localrepo/f-20240308.906.tar | Bin 51200 -> 51200 bytes localrepo/feebleline-20190822.1401.tar | Bin 20480 -> 20480 bytes localrepo/flycheck-34.1.tar | Bin 655360 -> 655360 bytes localrepo/flycheck-package-20210509.2325.tar | Bin 10240 -> 10240 bytes localrepo/flycheck-projectile-20201031.1952.tar | Bin 20480 -> 20480 bytes localrepo/fontaine-1.0.0.tar | Bin 184320 -> 184320 bytes localrepo/forge-20240405.1509.tar | Bin 409600 -> 409600 bytes localrepo/free-keys-1.0.tar | Bin 20480 -> 20480 bytes localrepo/ghub-20240311.1716.tar | Bin 163840 -> 163840 bytes .../github-dark-vscode-theme-20231011.2034.tar | Bin 20480 -> 20480 bytes localrepo/go-mode-1.6.0.tar | Bin 225280 -> 225280 bytes localrepo/gptel-20240404.813.tar | Bin 174080 -> 174080 bytes localrepo/graphql-0.1.2.tar | Bin 30720 -> 30720 bytes localrepo/helpful-20231028.516.tar | Bin 122880 -> 122880 bytes localrepo/hl-todo-20240329.1503.tar | Bin 30720 -> 30720 bytes localrepo/htmlize-1.56.tar | Bin 92160 -> 92160 bytes localrepo/hydra-0.15.0.tar | Bin 102400 -> 102400 bytes localrepo/impatient-mode-20230511.1746.tar | Bin 245760 -> 245760 bytes localrepo/iter2-20221104.1938.tar | Bin 61440 -> 61440 bytes localrepo/ivy-0.14.2.tar | Bin 583680 -> 583680 bytes localrepo/ivy-rich-20230425.1422.tar | Bin 30720 -> 30720 bytes localrepo/js2-mode-20231224.tar | Bin 634880 -> 634880 bytes localrepo/kv-20140108.1534.tar | Bin 20480 -> 20480 bytes localrepo/ledger-mode-20240326.2002.tar | Bin 327680 -> 327680 bytes localrepo/ligature-20220808.1225.tar | Bin 20480 -> 20480 bytes localrepo/lsp-mode-20240406.356.tar | Bin 1484800 -> 1484800 bytes localrepo/lsp-ui-20240330.2227.tar | Bin 163840 -> 163840 bytes localrepo/lv-0.15.0.tar | Bin 20480 -> 20480 bytes localrepo/madhat2r-theme-20170203.30.tar | Bin 92160 -> 92160 bytes localrepo/magit-20240404.1901.tar | Bin 1863680 -> 1863680 bytes localrepo/magit-section-20240311.1407.tar | Bin 122880 -> 122880 bytes localrepo/malyon-20161208.2125.tar | Bin 133120 -> 133120 bytes localrepo/marginalia-1.6.tar | Bin 112640 -> 112640 bytes localrepo/markdown-mode-2.6.tar | Bin 686080 -> 686080 bytes localrepo/mood-line-20231210.1309.tar | Bin 61440 -> 61440 bytes localrepo/nerd-icons-20240319.833.tar | Bin 512000 -> 512000 bytes localrepo/nerd-icons-ibuffer-20230417.1549.tar | Bin 20480 -> 20480 bytes localrepo/nov-20230715.1434.tar | Bin 51200 -> 51200 bytes localrepo/olivetti-20231104.538.tar | Bin 30720 -> 30720 bytes localrepo/org-contacts-1.1.tar | Bin 71680 -> 71680 bytes localrepo/org-drill-2.7.0.tar | Bin 317440 -> 317440 bytes localrepo/org-roam-20240114.1941.tar | Bin 368640 -> 368640 bytes localrepo/org-super-agenda-20240301.1602.tar | Bin 102400 -> 102400 bytes localrepo/org-superstar-1.5.1.tar | Bin 102400 -> 102400 bytes localrepo/ox-hugo-20240305.1923.tar | Bin 378880 -> 378880 bytes localrepo/package-build-20240306.2234.tar | Bin 102400 -> 102400 bytes localrepo/package-lint-0.23.tar | Bin 1218560 -> 1218560 bytes localrepo/pdf-tools-1.1.0.tar | Bin 6400000 -> 6400000 bytes localrepo/pdf-view-restore-20190904.1708.tar | Bin 10240 -> 10240 bytes localrepo/persist-0.6.tar | Bin 30720 -> 30720 bytes localrepo/poetry-20240329.1103.tar | Bin 0 -> 40960 bytes localrepo/popup-0.5.9.tar | Bin 153600 -> 153600 bytes localrepo/projectile-2.8.0.tar | Bin 348160 -> 348160 bytes localrepo/promise-20210307.727.tar | Bin 71680 -> 71680 bytes localrepo/pyvenv-20211014.707.tar | Bin 0 -> 30720 bytes localrepo/racket-mode-1.0.20240319.160226.tar | Bin 1269760 -> 0 bytes localrepo/rainbow-mode-1.0.6.tar | Bin 51200 -> 51200 bytes localrepo/request-0.3.3.tar | Bin 92160 -> 92160 bytes localrepo/ripgrep-20220520.1410.tar | Bin 20480 -> 20480 bytes localrepo/s-20220902.1511.tar | Bin 30720 -> 30720 bytes localrepo/sicp-20200512.1137.tar | Bin 1505280 -> 0 bytes localrepo/simple-httpd-20230821.1458.tar | Bin 40960 -> 40960 bytes localrepo/spinner-1.7.4.tar | Bin 1976320 -> 1976320 bytes localrepo/sudo-edit-20220801.1317.tar | Bin 20480 -> 20480 bytes localrepo/swiper-0.14.2.tar | Bin 71680 -> 71680 bytes localrepo/tablist-1.0.tar | Bin 133120 -> 133120 bytes localrepo/telega-20240322.901.tar | Bin 5632000 -> 5632000 bytes localrepo/tide-20230620.1444.tar | Bin 13025280 -> 13025280 bytes localrepo/tomelr-0.4.3.tar | Bin 71680 -> 71680 bytes localrepo/toml-mode-20161107.1800.tar | Bin 10240 -> 10240 bytes localrepo/transient-20240405.1443.tar | Bin 378880 -> 378880 bytes localrepo/tree-sitter-20220212.1632.tar | Bin 71680 -> 71680 bytes localrepo/treesit-auto-20240401.1240.tar | Bin 30720 -> 30720 bytes localrepo/tsc-20220212.1632.tar | Bin 133120 -> 133120 bytes localrepo/visual-fill-column-2.6.2.tar | Bin 235520 -> 235520 bytes localrepo/vscode-icon-20230330.2206.tar | Bin 5263360 -> 5263360 bytes localrepo/vterm-20240325.1551.tar | Bin 522240 -> 634880 bytes localrepo/web-mode-17.3.19.tar | Bin 593920 -> 593920 bytes localrepo/which-key-3.6.0.tar | Bin 645120 -> 645120 bytes localrepo/wiki-summary-20181010.1824.tar | Bin 10240 -> 10240 bytes localrepo/windsize-20181029.2257.tar | Bin 10240 -> 10240 bytes localrepo/with-editor-20240101.2226.tar | Bin 71680 -> 71680 bytes localrepo/yaml-20231211.1501.tar | Bin 112640 -> 112640 bytes localrepo/yaml-mode-0.0.16.tar | Bin 40960 -> 40960 bytes localrepo/yasnippet-0.14.1.tar | Bin 911360 -> 911360 bytes localrepo/ztree-1.0.6.tar | Bin 143360 -> 143360 bytes modules/ai-config.el | 21 +- modules/config-utilities.el | 2 +- modules/custom-functions.el | 67 +++-- modules/dashboard-config.el | 5 - modules/elfeed-config.el | 31 +- modules/flycheck-config.el | 18 +- modules/font-config.el | 14 +- modules/help-utils.el | 13 +- modules/org-capture-config.el | 133 ++++----- modules/org-drill-config.el | 1 + modules/org-roam-config.el | 10 +- modules/prog-c.el | 2 +- modules/prog-comments.el | 73 +++-- modules/prog-general.el | 42 +-- modules/prog-go.el | 52 +--- modules/prog-python.el | 61 ++-- modules/show-kill-ring.el | 25 +- modules/system-utils.el | 72 +++-- modules/test-code.el | 20 +- modules/text-config.el | 2 +- modules/ui-navigation.el | 25 -- 144 files changed, 800 insertions(+), 779 deletions(-) delete mode 100644 .gitmodules delete mode 100644 abbrev_defs create mode 100644 assets/abbrev_defs create mode 100644 assets/elfeed-dashboard.org delete mode 100644 elfeed-dashboard.org delete mode 100644 localrepo/compat-29.1.4.5.tar create mode 100644 localrepo/poetry-20240329.1103.tar create mode 100644 localrepo/pyvenv-20211014.707.tar delete mode 100644 localrepo/racket-mode-1.0.20240319.160226.tar delete mode 100644 localrepo/sicp-20200512.1137.tar diff --git a/.gitignore b/.gitignore index 56a98c92..828dc13d 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ auto-save-list/ /.elpa-mirrors/ /forge-database.sqlite /.scratch +/.elfeed-db/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29b..00000000 diff --git a/TODO.org b/TODO.org index 15c49a37..0d86d0f2 100644 --- a/TODO.org +++ b/TODO.org @@ -156,50 +156,53 @@ This is the result of overriding that function in cj/invincible-buffers in syste *** DONE [#C] Bookmark-save-flag Replaces Bookmark-set-and-save CLOSED: [2024-04-03 Wed 15:00] remove cj/bookmark-set-and-save if setting bookmark-save-flat to 1 saves when adding/modifying a bookmark -** DOING v0.7 Bug Fixing (ends 2024.04.18) [5/10] -*** TODO [#C] Ripgrep Should Put Point on Results Buffer -*** TODO [#A] Remove Security Keys -**** Remove OpenAPI Key From ai-config.el -***** 2024-04-07 Sun @ 13:21:22 -0500 Issue in ai-config.el - ;; BUG: .authinfo.gpg not accessed for this key -**** Purge History to Remove Historical Issues -Do this after other secrets are removed -***** Google OAuth file in assets -****** 2024-04-07 Sun @ 13:23:51 -0500 This One's in History. Fix by Purging History -***** OpenAPI Key in help-utils.el -****** 2024-04-07 Sun @ 13:19:10 -0500 Need to Erase History -Originally, I thought this was a duplicate use-package declaration. -Now it appears this is in history. I can simply: -- force delete the .git file -- recommit everything -- force push back to github and git.cjennings.net -- check the security section again to ensure it's gone. -***** Google OAuth Client ID and Client Secret in org-agenda-config.el +** DOING Open v0.7 Fit and Finish (ends 2024.04.18) [0/6] +*** DOING [#B] Mu4e Doesn't Launch Properly on Fresh Archinstall +Error was something about the mu server exiting. +**** DOING Setup Virtualbox Testing +***** DONE Create ArchBase and ArchSetup Images +CLOSED: [2024-04-07 Sun 13:48] +***** DOING Run Archsetup in ArchSetup Image +***** TODO Run Mu4e Install Found in ~/.emacs.d/scripts/ +***** TODO Snapshot the Image *** TODO [#A] S- is Undefined Error in Org Mode (should be org-agenda-todo-nextset) **** 2024-04-07 Sun @ 11:48:44 -0500 it's simply undefined in org-mode Looks like I just added it to org-agenda-mode? *** TODO [#A] Error When Starting org-drill in cj/org-drill-start let: Symbol’s function definition is void: org-drill -*** TODO [#B] Kill All Windows Also Kills Invisible Buffers -*** TODO [#B] Mu4e Doesn't Launch Properly on Fresh Archinstall -Error was something about the mu server exiting. -**** TODO Setup Archbase for Virtualbox Testing -**** TODO Run Archsetup -**** TODO Run Mu4e Install Found in ~/.emacs.d/scripts/ *** TODO [#C] Dashboard Icons Aren't Correct or Sized Correctly on Fractal *** TODO [#C] Check if Including Dired Buffers in Autorevert-mode Slows Tramp -*** DONE [#B] cj/kill-buffers renamed +*** [#D] Completed v.07 Fit and Finish +**** DONE [#A] Remove Security Keys +CLOSED: [2024-04-07 Sun 13:46] +***** Remove OpenAPI Key From ai-config.el +****** 2024-04-07 Sun @ 13:21:22 -0500 Issue in ai-config.el + ;; BUG: .authinfo.gpg not accessed for this key +***** Purge History to Remove Historical Issues +Do this after other secrets are removed +****** Google OAuth file in assets +******* 2024-04-07 Sun @ 13:23:51 -0500 This One's in History. Fix by Purging History +****** OpenAPI Key in help-utils.el +******* 2024-04-07 Sun @ 13:19:10 -0500 Need to Erase History +Originally, I thought this was a duplicate use-package declaration. +Now it appears this is in history. I can simply: +- force delete the .git file +- recommit everything +- force push back to github and git.cjennings.net +- check the security section again to ensure it's gone. +****** Google OAuth Client ID and Client Secret in org-agenda-config.el +**** DONE [#B] cj/kill-buffers renamed CLOSED: [2024-04-04 Thu 19:17] -*** DONE [#B] cj/kill-buffers doesn't select current buffer in completing read by default +**** DONE [#B] cj/kill-buffers doesn't select current buffer in completing read by default CLOSED: [2024-04-04 Thu 19:17] -*** DONE [#B] cj/kill-buffers should allow adding to invincible-buffers with C-u prefix +**** DONE [#B] cj/kill-buffers should allow adding to invincible-buffers with C-u prefix CLOSED: [2024-04-04 Thu 19:33] -*** DONE [#B] Mu4e Reply All Should Be Default +**** DONE [#B] Mu4e Reply All Should Be Default CLOSED: [2024-04-04 Thu 20:45] make 'r' reply-all (or wide reply) and 'R' reply no need to remove 'W' (for wide reply) -**** 2024-04-04 Thu @ 20:36:56 -0500 Solution Tested to Be Working +***** 2024-04-04 Thu @ 20:36:56 -0500 Solution Tested to Be Working Need to adjust 'mu4e-view-mode'. Within that mode: - the reply method is named "mu4e-compose-reply" - the reply-all method is named "mu4e-compose-wide-reply" @@ -212,19 +215,31 @@ There doesn't seem to be anything already mapped to "R", so adding the following #+end_src Tested both keys on a mail that had many recipients and it behaved in the way I expected. -*** DONE [#B] cj/hyphenate-whitespace-in-region should leave point where it started +**** DONE [#B] cj/hyphenate-whitespace-in-region should leave point where it started CLOSED: [2024-04-04 Thu 22:07] -** DOING Complete v0.7 Release Checklist [7/10] -- [X] No Open Work -- [X] WIP Code Empty/Disabled -- [X] Emacs Config Inbox Zero -- [X] Perf Testing: Sub-Second Launch Time -- [X] Successful Launch from Git Clone -- [ ] Successful Launch from Archsetup -- [X] Merged cleanly into main branch -- [X] Main Branch Pushed to github and git.cjennings.net -- [ ] 2 Week Scenario Testing and Bug Fixing ends: Thursday, April 18, 2024 -- [ ] Mark Release as DONE and Create Tag on Repo +**** DONE [#C] Remove unnecessary .gitmodule file +CLOSED: [2024-04-07 Sun 14:07] +**** DONE [#C] move files in project root to assets +CLOSED: [2024-04-07 Sun 14:21] +***** 2024-04-07 Sun @ 14:07:56 -0500 files to move +abbrev_defs +elfeed-dashboard +**** DONE [#B] Kill All Windows Also Kills Invisible Buffers +CLOSED: [2024-04-08 Mon 16:14] +**** DONE [#C] Ripgrep Should Finish with Point on Results Buffer +CLOSED: [2024-04-08 Mon 16:14] +** DOING Complete v0.7 Release Checklist [8/11] +*** DOING 2 Week Fit and Finish (ends 2024.04.18) +*** TODO Clean Launch from Archsetup +*** TODO Close Release and Create Tag on Repo +*** DONE No Open Work +*** DONE WIP Code Empty/Disabled +*** DONE Emacs Config Inbox Zero +*** DONE Perf Testing: Sub-Second Launch Time +*** DONE Security Check for Keys +*** DONE Clean Launch from Git Clone +*** DONE Merged Cleanly Into Main Branch +*** DONE Main Branch Pushed to github and git.cjennings.net * Emacs Config v0.8 ** VERIFY Add Around Word or Region *** 2024-04-04 Thu @ 22:12:04 -0500 Scenario Testing Verification @@ -326,19 +341,9 @@ I'm starting from scratch, but here are my (currently simple) requirements And yes, this means I also need to find and host an online calendar that sync's with an Android app. ** TODO Ledger Workflow -** TODO Emacs Config v0.8 Bug Fixes -** TODO Emacs Config v0.8 Release Checklist [0/9] -- [ ] No Open Work -- [ ] WIP Code Empty/Disabled -- [ ] Empty Emacs Config Inbox of Issues -- [ ] Keep Sub-Second Launch Time -- [ ] Successful Launch from Git Clone -- [ ] Merged cleanly into main branch -- [ ] Main Branch Pushed to github and git.cjennings.net -- [ ] 2 Weeks of Use and Bug Fixing -- [ ] Mark Release as DONE and Create Tag on Repo - -** TODO Consider the Flyspell Correct Ivy Interface for spelling +** TODO Miscellaneous Work +*** TODO Fix Show Kill Ring +*** TODO Consider the Flyspell Correct Ivy Interface for spelling #+BEGIN_QUOTE flyspell-correct-ivy interface In order to use flyspell-correct-ivy interface you have to install flyspell-correct-ivy package in any preferred way and then add following snippet to relevant part of your init.el file. @@ -360,9 +365,12 @@ Note that in order to access actions in ivy interface you need to press M-o. Mor #+END_QUOTE [[https://github.com/d12frosted/flyspell-correct?tab=readme-ov-file#screenshots][d12frosted/flyspell-correct: Distraction-free words correction with flyspell via selected interface.]] Captured On: [2024-04-05 Fri 13:49] -** TODO Consider Actively Developed Awesome Tray Instead of Unsupported Feebleline +*** TODO Consider Actively Developed Awesome Tray Instead of Unsupported Feebleline [[https://github.com/manateelazycat/awesome-tray?tab=readme-ov-file][manateelazycat/awesome-tray: Hide mode-line, display necessary information at right of minibuffer.]] Captured On: [2024-04-06 Sat 11:09] +** TODO Emacs Config v0.8 Bug Fixes +** TODO Emacs Config v0.8 Release Checklist +(add latest release checklist here) * Emacs Config v0.9 ** TODO VC Installs from Github ** TODO Prog Go Workflow diff --git a/abbrev_defs b/abbrev_defs deleted file mode 100644 index 1423bcc9..00000000 --- a/abbrev_defs +++ /dev/null @@ -1,317 +0,0 @@ -;;-*-coding: utf-8;-*- -(define-abbrev-table 'global-abbrev-table - '( - ("Benedictine" "Bénédictine" nil :count 1) - ("Treme" "Tremé" nil :count 2) - ("abcense" "absence" nil :count 0) - ("absance" "absence" nil :count 0) - ("absense" "absence" nil :count 0) - ("acceptible" "acceptable" nil :count 0) - ("accidentaly" "accidentally" nil :count 0) - ("accidently" "accidentally" nil :count 0) - ("accomodate" "accommodate" nil :count 0) - ("accomodating" "accommodating" nil :count 0) - ("acerage" "acreage" nil :count 0) - ("acheive" "achieve" nil :count 0) - ("acknowlege" "acknowledge" nil :count 0) - ("acommodate" "accommodate" nil :count 0) - ("acquaintence" "acquaintance" nil :count 0) - ("acquantiances" "acquaintances" nil :count 0) - ("acrage" "acreage" nil :count 0) - ("acticity" "activity" nil :count 0) - ("additionsl" "additional" nil :count 0) - ("adquire" "acquire" nil :count 0) - ("adress" "address" nil :count 0) - ("adultary" "adultery" nil :count 0) - ("advizable" "advisable" nil :count 0) - ("agression" "aggression" nil :count 0) - ("agressive" "aggressive" nil :count 0) - ("ahve" "have" nil :count 0) - ("aknowledge" "acknowledge" nil :count 0) - ("alegiance" "allegiance" nil :count 0) - ("allegaince" "allegiance" nil :count 0) - ("allegience" "allegiance" nil :count 0) - ("alot" "a lot" nil :count 3) - ("amatuer" "amateur" nil :count 0) - ("amature" "amateur" nil :count 0) - ("annualy" "annually" nil :count 0) - ("anotehr" "another" nil :count 0) - ("antoehr" "another" nil :count 0) - ("anually" "annually" nil :count 0) - ("aparent" "apparent" nil :count 0) - ("aparrent" "apparent" nil :count 0) - ("apparant" "apparent" nil :count 0) - ("aquaintance" "acquaintance" nil :count 0) - ("aquire" "acquire" nil :count 0) - ("aquit" "acquit" nil :count 0) - ("artic" "arctic" nil :count 1) - ("atention" "attention" nil :count 0) - ("athiest" "atheist" nil :count 0) - ("athist" "atheist" nil :count 0) - ("availabilty" "availability" nil :count 0) - ("balconly" "open" nil :count 0) - ("beatiful" "beautiful" nil :count 0) - ("becuase" "because" nil :count 0) - ("begining" "beginning" nil :count 0) - ("begnning" "beginning" nil :count 0) - ("beleive" "believe" nil :count 0) - ("benifit" "benefit" nil :count 0) - ("betwene" "between" nil :count 0) - ("bnot" "should" nil :count 1) - ("bookeepping" "bookkeeping" nil :count 0) - ("bouy" "buoy" nil :count 0) - ("bouyant" "buoyant" nil :count 0) - ("buisness" "business" nil :count 0) - ("calender" "calendar" nil :count 0) - ("camoflage" "camouflage" nil :count 0) - ("camoflague" "camouflage" nil :count 0) - ("carribean" "caribbean" nil :count 0) - ("catagory" "category" nil :count 0) - ("caugt" "caught" nil :count 0) - ("cauhgt" "caught" nil :count 0) - ("cematery" "cemetery" nil :count 0) - ("cemetary" "cemetery" nil :count 0) - ("changable" "changeable" nil :count 0) - ("characeters" "of" nil :count 0) - ("chastized" "chastised" nil :count 0) - ("cheif" "chief" nil :count 0) - ("chrisitne" "christine" nil :count 0) - ("collaegue" "colleague" nil :count 0) - ("collegue" "colleague" nil :count 0) - ("colum" "column" nil :count 0) - ("comitted" "committed" nil :count 0) - ("commited" "committed" nil :count 0) - ("communicaiton" "communication" nil :count 1) - ("comparsion" "comparison" nil :count 0) - ("competetive" "competitive" nil :count 0) - ("completign" "completing" nil :count 0) - ("conceed" "concede" nil :count 0) - ("concensus" "consensus" nil :count 0) - ("concious" "conscious" nil :count 0) - ("conenct" "connect" nil :count 0) - ("congradulate" "congratulate" nil :count 0) - ("consciencious" "conscientious" nil :count 0) - ("consious" "conscious" nil :count 0) - ("contraversy" "controversy" nil :count 0) - ("cooly" "coolly" nil :count 0) - ("creditscards" "credit cards" nil :count 0) - ("customizaton" "customization" nil :count 0) - ("dacquiri" "daiquiri" nil :count 0) - ("daquiri" "daiquiri" nil :count 0) - ("decieve" "deceive" nil :count 0) - ("decypher" "decipher" nil :count 0) - ("definate" "definite" nil :count 0) - ("definately" "definitely" nil :count 0) - ("definatly" "definitely" nil :count 0) - ("definit" "definite" nil :count 0) - ("definitly" "definitely" nil :count 0) - ("defintiely" "definitely" nil :count 0) - ("desparate" "desperate" nil :count 0) - ("detaisl" "details" nil :count 0) - ("differentname" "different" nil :count 0) - ("diffrence" "difference" nil :count 0) - ("dilema" "dilemma" nil :count 0) - ("direcories" "directories" nil :count 0) - ("dissapoint" "disappoint" nil :count 0) - ("distaseful" "distasteful" nil :count 0) - ("drunkeness" "drunkenness" nil :count 0) - ("dumbell" "dumbbell" nil :count 0) - ("embarass" "embarrass" nil :count 0) - ("endoing" "weeks" nil :count 0) - ("excede" "exceed" nil :count 0) - ("exilerate" "exhilarate" nil :count 0) - ("existance" "existence" nil :count 0) - ("experiance" "experience" nil :count 0) - ("extreem" "extreme" nil :count 0) - ("facinating" "fascinating" nil :count 0) - ("fierey" "foreign" nil :count 0) - ("fiirst" "profile" nil :count 0) - ("finshed" "finished" nil :count 0) - ("firey" "fiery" nil :count 0) - ("foriegn" "foreign" nil :count 0) - ("francsico" "francisco" nil :count 0) - ("freind" "friend" nil :count 0) - ("funciton" "function" nil :count 2) - ("garantee" "guarantee" nil :count 0) - ("garanty" "guarantee" nil :count 0) - ("garentee" "guarantee" nil :count 0) - ("generousity" "than" nil :count 0) - ("grat" "great" nil :count 0) - ("greatful" "grateful" nil :count 0) - ("groveries" "groceries" nil :count 0) - ("guage" "gauge" nil :count 0) - ("guidence" "guidance" nil :count 0) - ("heigth" "height" nil :count 0) - ("heirarchy" "hierarchy" nil :count 0) - ("higeine" "hygiene" nil :count 0) - ("hipocrit" "hypocrite" nil :count 0) - ("horozontal" "horizontal" nil :count 0) - ("hospiralization" "hospitalization" nil :count 0) - ("hrie" "hire" nil :count 0) - ("htey" "they" nil :count 3) - ("humerous" "humorous" nil :count 0) - ("hygeine" "hygiene" nil :count 0) - ("hygene" "hygiene" nil :count 0) - ("hygine" "hygiene" nil :count 0) - ("ignorence" "ignorance" nil :count 0) - ("imediately" "immediately" nil :count 0) - ("indentated" "indented" nil :count 0) - ("independant" "independent" nil :count 0) - ("indispensible" "indispensable" nil :count 0) - ("infomration" "information" nil :count 0) - ("inspoection" "the" nil :count 0) - ("inteligence" "intelligence" nil :count 0) - ("intelligance" "intelligence" nil :count 0) - ("judgement" "value" nil :count 0) - ("kernal" "kernel" nil :count 0) - ("knwoing" "knowing" nil :count 0) - ("knwoledgeable" "knowledgeable" nil :count 0) - ("laer" "later" nil :count 0) - ("lawyear" "your" nil :count 0) - ("liason" "liaison" nil :count 0) - ("libary" "library" nil :count 0) - ("liberry" "library" nil :count 0) - ("liek" "like" nil :count 1) - ("liesure" "leisure" nil :count 0) - ("lisence" "license" nil :count 0) - ("lotes" "lots" nil :count 0) - ("maintnance" "maintenance" nil :count 0) - ("managment" "management" nil :count 0) - ("marshmellow" "marshmallow" nil :count 0) - ("medeval" "medieval" nil :count 0) - ("medevil" "medieval" nil :count 0) - ("mentione" "mentioned" nil :count 0) - ("mideval" "medieval" nil :count 0) - ("milennium" "millennium" nil :count 0) - ("millenium" "millennium" nil :count 0) - ("miniscule" "minuscule" nil :count 0) - ("miniture" "miniature" nil :count 0) - ("mischevious" "mischievous" nil :count 0) - ("mischevous" "mischievous" nil :count 0) - ("mispell" "misspell" nil :count 0) - ("misspel" "misspell" nil :count 0) - ("momento" "memento" nil :count 0) - ("momment" "the" nil :count 0) - ("necessery" "necessary" nil :count 0) - ("neice" "niece" nil :count 0) - ("nieghbor" "neighbor" nil :count 0) - ("noticable" "noticeable" nil :count 0) - ("numnbers" "numbers" nil :count 0) - ("occasionaly" "occasionally" nil :count 0) - ("occured" "occurred" nil :count 0) - ("occurence" "occurrence" nil :count 0) - ("occurrance" "occurrence" nil :count 0) - ("offboarded" "off" nil :count 0) - ("omision" "omission" nil :count 0) - ("ommision" "omission" nil :count 0) - ("orignal" "original" nil :count 0) - ("ot" "to" nil :count 4) - ("otehr" "other" nil :count 2) - ("otes" "notes" nil :count 0) - ("outgoign" "outgoing" nil :count 0) - ("outragous" "outrageous" nil :count 0) - ("palestinean" "palestinian" nil :count 0) - ("parliment" "parliament" nil :count 0) - ("peopel" "people" nil :count 2) - ("percieve" "perceive" nil :count 0) - ("perfored" "performed" nil :count 0) - ("perseverence" "perseverance" nil :count 0) - ("personel" "personnel" nil :count 0) - ("personell" "personnel" nil :count 0) - ("philosohy" "philosophy" nil :count 0) - ("plagerize" "plagiarize" nil :count 0) - ("platofrm" "platform" nil :count 0) - ("poltical" "political" nil :count 0) - ("posession" "possession" nil :count 0) - ("possesion" "possession" nil :count 0) - ("potatos" "potatoes" nil :count 0) - ("preceed" "precede" nil :count 0) - ("precis" "précis" nil :count 0) - ("privelege" "privilege" nil :count 0) - ("prodcut" "product" nil :count 0) - ("professer" "professor" nil :count 0) - ("protestor" "protester" nil :count 0) - ("quarentine" "quarantine" nil :count 0) - ("quesitons" "questions" nil :count 0) - ("questionaire" "questionnaire" nil :count 0) - ("questionnair" "questionnaire" nil :count 0) - ("readible" "readable" nil :count 0) - ("realy" "really" nil :count 0) - ("reat" "great" nil :count 0) - ("rececently" "recently" nil :count 0) - ("receivved" "received" nil :count 0) - ("reciept" "receipt" nil :count 0) - ("recieve" "receive" nil :count 0) - ("recomend" "recommend" nil :count 0) - ("referance" "reference" nil :count 0) - ("refered" "referred" nil :count 0) - ("refrence" "reference" nil :count 0) - ("relationsips" "relationships" nil :count 0) - ("relevent" "relevant" nil :count 0) - ("religius" "religious" nil :count 0) - ("religous" "religious" nil :count 0) - ("removign" "removing" nil :count 0) - ("repitition" "repetition" nil :count 0) - ("requireemnts" "requirements" nil :count 0) - ("restarant" "restaurant" nil :count 0) - ("restaraunt" "restaurant" nil :count 0) - ("revelant" "relevant" nil :count 0) - ("roomate" "roommate" nil :count 0) - ("rythem" "rhythm" nil :count 0) - ("rythm" "rhythm" nil :count 0) - ("sargent" "sergeant" nil :count 0) - ("secratary" "secretary" nil :count 0) - ("secretery" "secretary" nil :count 0) - ("seperate" "separate" nil :count 0) - ("seperately" "separately" nil :count 0) - ("sgould" "should" nil :count 0) - ("shoudl" "should" nil :count 1) - ("sieze" "seize" nil :count 0) - ("skilfull" "skillful" nil :count 0) - ("snoer" "snore" nil :count 1) - ("soley" "solely" nil :count 0) - ("specificaly" "specifically" nil :count 0) - ("sreen" "screen" nil :count 0) - ("stoory" "short" nil :count 0) - ("succesful" "successful" nil :count 0) - ("sucessful" "successful" nil :count 0) - ("sunroom" "sun" nil :count 0) - ("supercede" "supersede" nil :count 0) - ("supplment" "supplement" nil :count 0) - ("suprise" "surprise" nil :count 0) - ("surprize" "surprise" nil :count 0) - ("takss" "tasks" nil :count 0) - ("talekd" "talked" nil :count 0) - ("talkign" "talking" nil :count 4) - ("teh" "the" nil :count 55) - ("tehir" "their" nil :count 3) - ("tehre" "there" nil :count 1) - ("thansk" "thanks" nil :count 2) - ("thickeness" "adjust" nil :count 0) - ("tiem" "time" nil :count 0) - ("togehter" "together" nil :count 0) - ("tomatos" "tomatoes" nil :count 0) - ("tranaction" "transaction" nil :count 0) - ("ture" "true" nil :count 0) - ("twelth" "twelfth" nil :count 0) - ("tyrany" "tyranny" nil :count 0) - ("ultimtely" "ultimately" nil :count 0) - ("underate" "underrate" nil :count 0) - ("unncessary" "unnecessary" nil :count 0) - ("upholstry" "upholstery" nil :count 0) - ("usible" "usable" nil :count 0) - ("vaccum" "vacuum" nil :count 1) - ("vacume" "vacuum" nil :count 0) - ("vairable" "variable" nil :count 0) - ("valiedate" "and" nil :count 0) - ("vehical" "vehicle" nil :count 0) - ("visious" "vicious" nil :count 0) - ("waht" "what" nil :count 1) - ("warant" "warrant" nil :count 0) - ("welfair" "welfare" nil :count 0) - ("welomce" "welcome" nil :count 0) - ("wierd" "weird" nil :count 0) - ("withold" "withhold" nil :count 0) - ("workign" "working" nil :count 3) - )) - diff --git a/assets/abbrev_defs b/assets/abbrev_defs new file mode 100644 index 00000000..922e3871 --- /dev/null +++ b/assets/abbrev_defs @@ -0,0 +1,320 @@ +;;-*-coding: utf-8;-*- +(define-abbrev-table 'global-abbrev-table + '( + ("Benedictine" "Bénédictine" nil :count 1) + ("Treme" "Tremé" nil :count 2) + ("abcense" "absence" nil :count 0) + ("absance" "absence" nil :count 0) + ("absense" "absence" nil :count 0) + ("acceptible" "acceptable" nil :count 0) + ("accidentaly" "accidentally" nil :count 0) + ("accidently" "accidentally" nil :count 0) + ("accomodate" "accommodate" nil :count 0) + ("accomodating" "accommodating" nil :count 0) + ("acerage" "acreage" nil :count 0) + ("acheive" "achieve" nil :count 0) + ("acknowlege" "acknowledge" nil :count 0) + ("acommodate" "accommodate" nil :count 0) + ("acquaintence" "acquaintance" nil :count 0) + ("acquantiances" "acquaintances" nil :count 0) + ("acrage" "acreage" nil :count 0) + ("acticity" "activity" nil :count 0) + ("additionsl" "additional" nil :count 0) + ("adquire" "acquire" nil :count 0) + ("adress" "address" nil :count 0) + ("adultary" "adultery" nil :count 0) + ("advizable" "advisable" nil :count 0) + ("agression" "aggression" nil :count 0) + ("agressive" "aggressive" nil :count 0) + ("ahve" "have" nil :count 0) + ("aknowledge" "acknowledge" nil :count 0) + ("alegiance" "allegiance" nil :count 0) + ("allegaince" "allegiance" nil :count 0) + ("allegience" "allegiance" nil :count 0) + ("alot" "a lot" nil :count 3) + ("amatuer" "amateur" nil :count 0) + ("amature" "amateur" nil :count 0) + ("annualy" "annually" nil :count 0) + ("anotehr" "another" nil :count 0) + ("antoehr" "another" nil :count 0) + ("anually" "annually" nil :count 0) + ("aparent" "apparent" nil :count 0) + ("aparrent" "apparent" nil :count 0) + ("apparant" "apparent" nil :count 0) + ("aquaintance" "acquaintance" nil :count 0) + ("aquire" "acquire" nil :count 0) + ("aquit" "acquit" nil :count 0) + ("artic" "arctic" nil :count 1) + ("atention" "attention" nil :count 0) + ("athiest" "atheist" nil :count 0) + ("athist" "atheist" nil :count 0) + ("availabilty" "availability" nil :count 0) + ("balconly" "open" nil :count 0) + ("beatiful" "beautiful" nil :count 0) + ("becuase" "because" nil :count 0) + ("begining" "beginning" nil :count 0) + ("begnning" "beginning" nil :count 0) + ("beleive" "believe" nil :count 0) + ("benifit" "benefit" nil :count 0) + ("beter" "better" nil :count 0) + ("betwene" "between" nil :count 0) + ("bnot" "should" nil :count 1) + ("bookeepping" "bookkeeping" nil :count 0) + ("bouy" "buoy" nil :count 0) + ("bouyant" "buoyant" nil :count 0) + ("buisness" "business" nil :count 0) + ("cafe" "café" nil :count 0) + ("cafes" "cafés" nil :count 0) + ("calender" "calendar" nil :count 0) + ("camoflage" "camouflage" nil :count 0) + ("camoflague" "camouflage" nil :count 0) + ("carribean" "caribbean" nil :count 0) + ("catagory" "category" nil :count 0) + ("caugt" "caught" nil :count 0) + ("cauhgt" "caught" nil :count 0) + ("cematery" "cemetery" nil :count 0) + ("cemetary" "cemetery" nil :count 0) + ("changable" "changeable" nil :count 0) + ("characeters" "of" nil :count 0) + ("chastized" "chastised" nil :count 0) + ("cheif" "chief" nil :count 0) + ("chrisitne" "christine" nil :count 0) + ("collaegue" "colleague" nil :count 0) + ("collegue" "colleague" nil :count 0) + ("colum" "column" nil :count 0) + ("comitted" "committed" nil :count 0) + ("commited" "committed" nil :count 0) + ("communicaiton" "communication" nil :count 1) + ("comparsion" "comparison" nil :count 0) + ("competetive" "competitive" nil :count 0) + ("completign" "completing" nil :count 0) + ("conceed" "concede" nil :count 0) + ("concensus" "consensus" nil :count 0) + ("concious" "conscious" nil :count 0) + ("conenct" "connect" nil :count 0) + ("congradulate" "congratulate" nil :count 0) + ("consciencious" "conscientious" nil :count 0) + ("consious" "conscious" nil :count 0) + ("contraversy" "controversy" nil :count 0) + ("cooly" "coolly" nil :count 0) + ("creditscards" "credit cards" nil :count 0) + ("customizaton" "customization" nil :count 0) + ("dacquiri" "daiquiri" nil :count 0) + ("daquiri" "daiquiri" nil :count 0) + ("decieve" "deceive" nil :count 0) + ("decypher" "decipher" nil :count 0) + ("definate" "definite" nil :count 0) + ("definately" "definitely" nil :count 0) + ("definatly" "definitely" nil :count 0) + ("definit" "definite" nil :count 0) + ("definitly" "definitely" nil :count 0) + ("defintiely" "definitely" nil :count 0) + ("desparate" "desperate" nil :count 0) + ("detaisl" "details" nil :count 0) + ("differentname" "different" nil :count 0) + ("diffrence" "difference" nil :count 0) + ("dilema" "dilemma" nil :count 0) + ("direcories" "directories" nil :count 0) + ("dissapoint" "disappoint" nil :count 0) + ("distaseful" "distasteful" nil :count 0) + ("drunkeness" "drunkenness" nil :count 0) + ("dumbell" "dumbbell" nil :count 0) + ("embarass" "embarrass" nil :count 0) + ("endoing" "weeks" nil :count 0) + ("excede" "exceed" nil :count 0) + ("exilerate" "exhilarate" nil :count 0) + ("existance" "existence" nil :count 0) + ("experiance" "experience" nil :count 0) + ("extreem" "extreme" nil :count 0) + ("facinating" "fascinating" nil :count 0) + ("fiirst" "profile" nil :count 0) + ("finshed" "finished" nil :count 0) + ("firey" "fiery" nil :count 0) + ("foriegn" "foreign" nil :count 0) + ("francsico" "francisco" nil :count 0) + ("freind" "friend" nil :count 0) + ("funciton" "function" nil :count 2) + ("garantee" "guarantee" nil :count 0) + ("garanty" "guarantee" nil :count 0) + ("garentee" "guarantee" nil :count 0) + ("generousity" "than" nil :count 0) + ("grat" "great" nil :count 0) + ("greatful" "grateful" nil :count 0) + ("groveries" "groceries" nil :count 0) + ("guage" "gauge" nil :count 0) + ("guidence" "guidance" nil :count 0) + ("heigth" "height" nil :count 0) + ("heirarchy" "hierarchy" nil :count 0) + ("higeine" "hygiene" nil :count 0) + ("hipocrit" "hypocrite" nil :count 0) + ("horozontal" "horizontal" nil :count 0) + ("hospiralization" "hospitalization" nil :count 0) + ("hrie" "hire" nil :count 0) + ("htey" "they" nil :count 3) + ("humerous" "humorous" nil :count 0) + ("hygeine" "hygiene" nil :count 0) + ("hygene" "hygiene" nil :count 0) + ("hygine" "hygiene" nil :count 0) + ("ignorence" "ignorance" nil :count 0) + ("imediately" "immediately" nil :count 0) + ("indentated" "indented" nil :count 0) + ("independant" "independent" nil :count 0) + ("indispensible" "indispensable" nil :count 0) + ("infomration" "information" nil :count 0) + ("inspoection" "the" nil :count 0) + ("inteligence" "intelligence" nil :count 0) + ("intelligance" "intelligence" nil :count 0) + ("judgement" "value" nil :count 0) + ("kernal" "kernel" nil :count 0) + ("knwoing" "knowing" nil :count 0) + ("knwoledgeable" "knowledgeable" nil :count 0) + ("laer" "later" nil :count 0) + ("lawyear" "your" nil :count 0) + ("liason" "liaison" nil :count 0) + ("libary" "library" nil :count 0) + ("liberry" "library" nil :count 0) + ("liek" "like" nil :count 1) + ("liesure" "leisure" nil :count 0) + ("lisence" "license" nil :count 0) + ("lotes" "lots" nil :count 0) + ("maintnance" "maintenance" nil :count 0) + ("managment" "management" nil :count 0) + ("marshmellow" "marshmallow" nil :count 0) + ("medeval" "medieval" nil :count 0) + ("medevil" "medieval" nil :count 0) + ("mentione" "mentioned" nil :count 0) + ("mideval" "medieval" nil :count 0) + ("milennium" "millennium" nil :count 0) + ("millenium" "millennium" nil :count 0) + ("miniscule" "minuscule" nil :count 0) + ("miniture" "miniature" nil :count 0) + ("mischevious" "mischievous" nil :count 0) + ("mischevous" "mischievous" nil :count 0) + ("mispell" "misspell" nil :count 0) + ("misspel" "misspell" nil :count 0) + ("momento" "memento" nil :count 0) + ("momment" "the" nil :count 0) + ("necessery" "necessary" nil :count 0) + ("neice" "niece" nil :count 0) + ("nieghbor" "neighbor" nil :count 0) + ("noticable" "noticeable" nil :count 0) + ("numnbers" "numbers" nil :count 0) + ("occasionaly" "occasionally" nil :count 0) + ("occured" "occurred" nil :count 0) + ("occurence" "occurrence" nil :count 0) + ("occurrance" "occurrence" nil :count 0) + ("offboarded" "off" nil :count 0) + ("omision" "omission" nil :count 0) + ("ommision" "omission" nil :count 0) + ("orignal" "original" nil :count 0) + ("ot" "to" nil :count 4) + ("otehr" "other" nil :count 2) + ("otes" "notes" nil :count 0) + ("outgoign" "outgoing" nil :count 0) + ("outragous" "outrageous" nil :count 0) + ("palestinean" "palestinian" nil :count 0) + ("parliment" "parliament" nil :count 0) + ("peopel" "people" nil :count 2) + ("percieve" "perceive" nil :count 0) + ("perfored" "performed" nil :count 0) + ("perseverence" "perseverance" nil :count 0) + ("personel" "personnel" nil :count 0) + ("personell" "personnel" nil :count 0) + ("philosohy" "philosophy" nil :count 0) + ("plagerize" "plagiarize" nil :count 0) + ("platofrm" "platform" nil :count 0) + ("poltical" "political" nil :count 0) + ("posession" "possession" nil :count 0) + ("possesion" "possession" nil :count 0) + ("potatos" "potatoes" nil :count 0) + ("preceed" "precede" nil :count 0) + ("precis" "précis" nil :count 0) + ("privelege" "privilege" nil :count 0) + ("prodcut" "product" nil :count 0) + ("professer" "professor" nil :count 0) + ("protestor" "protester" nil :count 0) + ("quarentine" "quarantine" nil :count 0) + ("quesitons" "questions" nil :count 0) + ("questionaire" "questionnaire" nil :count 0) + ("questionnair" "questionnaire" nil :count 0) + ("readible" "readable" nil :count 0) + ("realy" "really" nil :count 0) + ("reat" "great" nil :count 0) + ("rececently" "recently" nil :count 0) + ("receivved" "received" nil :count 0) + ("reciept" "receipt" nil :count 0) + ("recieve" "receive" nil :count 0) + ("recomend" "recommend" nil :count 0) + ("referance" "reference" nil :count 0) + ("refered" "referred" nil :count 0) + ("refrence" "reference" nil :count 0) + ("relationsips" "relationships" nil :count 0) + ("relevent" "relevant" nil :count 0) + ("religius" "religious" nil :count 0) + ("religous" "religious" nil :count 0) + ("removign" "removing" nil :count 0) + ("repitition" "repetition" nil :count 0) + ("requireemnts" "requirements" nil :count 0) + ("restarant" "restaurant" nil :count 0) + ("restaraunt" "restaurant" nil :count 0) + ("revelant" "relevant" nil :count 0) + ("roomate" "roommate" nil :count 0) + ("rythem" "rhythm" nil :count 0) + ("rythm" "rhythm" nil :count 0) + ("sargent" "sergeant" nil :count 0) + ("secratary" "secretary" nil :count 0) + ("secretery" "secretary" nil :count 0) + ("seperate" "separate" nil :count 0) + ("seperately" "separately" nil :count 0) + ("sergent" "sergeant" nil :count 0) + ("sgould" "should" nil :count 0) + ("shoudl" "should" nil :count 1) + ("sieze" "seize" nil :count 0) + ("skilfull" "skillful" nil :count 0) + ("snoer" "snore" nil :count 1) + ("soley" "solely" nil :count 0) + ("specificaly" "specifically" nil :count 0) + ("sreen" "screen" nil :count 0) + ("stoory" "short" nil :count 0) + ("succesful" "successful" nil :count 0) + ("sucessful" "successful" nil :count 0) + ("sunroom" "sun" nil :count 0) + ("supercede" "supersede" nil :count 0) + ("supplment" "supplement" nil :count 0) + ("suprise" "surprise" nil :count 0) + ("surprize" "surprise" nil :count 0) + ("takss" "tasks" nil :count 0) + ("talekd" "talked" nil :count 0) + ("talkign" "talking" nil :count 4) + ("teh" "the" nil :count 55) + ("tehir" "their" nil :count 3) + ("tehre" "there" nil :count 1) + ("thansk" "thanks" nil :count 2) + ("thickeness" "adjust" nil :count 0) + ("tiem" "time" nil :count 0) + ("togehter" "together" nil :count 0) + ("tomatos" "tomatoes" nil :count 0) + ("tranaction" "transaction" nil :count 0) + ("ture" "true" nil :count 0) + ("twelth" "twelfth" nil :count 0) + ("tyrany" "tyranny" nil :count 0) + ("ultimtely" "ultimately" nil :count 0) + ("underate" "underrate" nil :count 0) + ("unncessary" "unnecessary" nil :count 0) + ("upholstry" "upholstery" nil :count 0) + ("usible" "usable" nil :count 0) + ("vaccum" "vacuum" nil :count 1) + ("vacume" "vacuum" nil :count 0) + ("vairable" "variable" nil :count 0) + ("valiedate" "and" nil :count 0) + ("vehical" "vehicle" nil :count 0) + ("visious" "vicious" nil :count 0) + ("waht" "what" nil :count 1) + ("warant" "warrant" nil :count 0) + ("welfair" "welfare" nil :count 0) + ("welomce" "welcome" nil :count 0) + ("wierd" "weird" nil :count 0) + ("withold" "withhold" nil :count 0) + ("workign" "working" nil :count 3) + )) + diff --git a/assets/elfeed-dashboard.org b/assets/elfeed-dashboard.org new file mode 100644 index 00000000..0d9e90f6 --- /dev/null +++ b/assets/elfeed-dashboard.org @@ -0,0 +1,61 @@ + +== Feed Reader Dashboard == + +* Actions + + [U] Update Feeds + [s] Search + [E] Edit + [g] Refresh Feed Counts + [q] Quit + +* Bookmarks + + [u] All Unread ([[elfeed:+unread][ 3]]/[[elfeed:][ 2266]]) + [m] Must Read ([[elfeed:+unread +mustread][ 1]]/[[elfeed:+mustread][ 31]]) + +** Sources + [p] Podcasts ([[elfeed:+unread +podcasts][ 0]]/[[elfeed:+podcasts][ 1758]]) + [v] Videos ([[elfeed:+unread +videos][ 0]]/[[elfeed:+videos][ 261]]) + +** Tech Aggregators + [h] Hacker News ([[elfeed:+unread +hackernews][ 0]]/[[elfeed:+hackernews][ 24]]) + [l] Lobsters ([[elfeed:+unread +lobsters][ 0]]/[[elfeed:+lobsters][ 0]]) + +** Topics + [t] Tech News ([[elfeed:+unread +technews][ 2]]/[[elfeed:+technews][ 172]]) + [T] Tech ([[elfeed:+unread +tech][ 0]]/[[elfeed:+tech][ 65]]) + [b] Blogs ([[elfeed:+unread +blogs][ 1]]/[[elfeed:+blogs][ 71]]) + [e] Emacs ([[elfeed:+unread +emacs][ 0]]/[[elfeed:+emacs][ 91]]) + [c] Code ([[elfeed:+unread +code][ 0]]/[[elfeed:+code][ 135]]) + [C] Cooking ([[elfeed:+unread +cooking][ 0]]/[[elfeed:+cooking][ 11]]) + [M] Comedy ([[elfeed:+unread +comedy][ 0]]/[[elfeed:+comedy][ 15]]) + [j] Jobs ([[elfeed:+unread +jobs][ 0]]/[[elfeed:+jobs][ 0]]) + +* Configuration + :PROPERTIES: + :VISIBILITY: hideall + :END: + + Press "E" to edit and M-x elfeed-dashboard-mode to go back + + #+STARTUP: showall showstars indent + #+KEYMAP: u | elfeed-dashboard-query "+unread" + #+KEYMAP: m | elfeed-dashboard-query "+unread +mustread" + #+KEYMAP: p | elfeed-dashboard-query "+unread +podcasts" + #+KEYMAP: v | elfeed-dashboard-query "+unread +videos" + #+KEYMAP: h | elfeed-dashboard-query "+unread +hackernews" + #+KEYMAP: l | elfeed-dashboard-query "+unread +lobsters" + #+KEYMAP: t | elfeed-dashboard-query "+unread +technews" + #+KEYMAP: T | elfeed-dashboard-query "+unread +tech" + #+KEYMAP: b | elfeed-dashboard-query "+unread +blogs" + #+KEYMAP: e | elfeed-dashboard-query "+unread +emacs" + #+KEYMAP: c | elfeed-dashboard-query "+unread +code" + #+KEYMAP: C | elfeed-dashboard-query "+unread +cooking" + #+KEYMAP: M | elfeed-dashboard-query "+unread +comedy" + #+KEYMAP: j | elfeed-dashboard-query "+unread +jobs" + #+KEYMAP: s | elfeed + #+KEYMAP: g | elfeed-dashboard-update-links + #+KEYMAP: U | elfeed-dashboard-update + #+KEYMAP: E | elfeed-dashboard-edit + #+KEYMAP: q | kill-current-buffer diff --git a/assets/elfeed-feeds.org b/assets/elfeed-feeds.org index e8bc1426..db4cbd66 100644 --- a/assets/elfeed-feeds.org +++ b/assets/elfeed-feeds.org @@ -48,11 +48,6 @@ *** [[https://drewdevault.com/blog/index.xml][Drew Devault's Blog]] :tech: *** [[https://registerspill.thorstenball.com/feed][Thorsten Ball's Register Spill]] :tech: ** Tech News Sites :technews: -*** Wired :wired: -**** [[https://www.wired.com/feed/category/ideas/latest/rss][Wired Ideas]] -**** [[https://www.wired.com/feed/category/backchannel/latest/rss][Wired Backchannel]] -**** [[https://www.wired.com/feed/category/business/latest/rss][Wired Business]] -**** [[https://www.wired.com/feed/tag/ai/latest/rss][Wired AI]] :ai: *** The Register :theregister: **** [[https://www.theregister.co.uk/headlines.atom][The Register Headlines]] *** Ars Technica :arstechnica: diff --git a/elfeed-dashboard.org b/elfeed-dashboard.org deleted file mode 100644 index 0d9e90f6..00000000 --- a/elfeed-dashboard.org +++ /dev/null @@ -1,61 +0,0 @@ - -== Feed Reader Dashboard == - -* Actions - - [U] Update Feeds - [s] Search - [E] Edit - [g] Refresh Feed Counts - [q] Quit - -* Bookmarks - - [u] All Unread ([[elfeed:+unread][ 3]]/[[elfeed:][ 2266]]) - [m] Must Read ([[elfeed:+unread +mustread][ 1]]/[[elfeed:+mustread][ 31]]) - -** Sources - [p] Podcasts ([[elfeed:+unread +podcasts][ 0]]/[[elfeed:+podcasts][ 1758]]) - [v] Videos ([[elfeed:+unread +videos][ 0]]/[[elfeed:+videos][ 261]]) - -** Tech Aggregators - [h] Hacker News ([[elfeed:+unread +hackernews][ 0]]/[[elfeed:+hackernews][ 24]]) - [l] Lobsters ([[elfeed:+unread +lobsters][ 0]]/[[elfeed:+lobsters][ 0]]) - -** Topics - [t] Tech News ([[elfeed:+unread +technews][ 2]]/[[elfeed:+technews][ 172]]) - [T] Tech ([[elfeed:+unread +tech][ 0]]/[[elfeed:+tech][ 65]]) - [b] Blogs ([[elfeed:+unread +blogs][ 1]]/[[elfeed:+blogs][ 71]]) - [e] Emacs ([[elfeed:+unread +emacs][ 0]]/[[elfeed:+emacs][ 91]]) - [c] Code ([[elfeed:+unread +code][ 0]]/[[elfeed:+code][ 135]]) - [C] Cooking ([[elfeed:+unread +cooking][ 0]]/[[elfeed:+cooking][ 11]]) - [M] Comedy ([[elfeed:+unread +comedy][ 0]]/[[elfeed:+comedy][ 15]]) - [j] Jobs ([[elfeed:+unread +jobs][ 0]]/[[elfeed:+jobs][ 0]]) - -* Configuration - :PROPERTIES: - :VISIBILITY: hideall - :END: - - Press "E" to edit and M-x elfeed-dashboard-mode to go back - - #+STARTUP: showall showstars indent - #+KEYMAP: u | elfeed-dashboard-query "+unread" - #+KEYMAP: m | elfeed-dashboard-query "+unread +mustread" - #+KEYMAP: p | elfeed-dashboard-query "+unread +podcasts" - #+KEYMAP: v | elfeed-dashboard-query "+unread +videos" - #+KEYMAP: h | elfeed-dashboard-query "+unread +hackernews" - #+KEYMAP: l | elfeed-dashboard-query "+unread +lobsters" - #+KEYMAP: t | elfeed-dashboard-query "+unread +technews" - #+KEYMAP: T | elfeed-dashboard-query "+unread +tech" - #+KEYMAP: b | elfeed-dashboard-query "+unread +blogs" - #+KEYMAP: e | elfeed-dashboard-query "+unread +emacs" - #+KEYMAP: c | elfeed-dashboard-query "+unread +code" - #+KEYMAP: C | elfeed-dashboard-query "+unread +cooking" - #+KEYMAP: M | elfeed-dashboard-query "+unread +comedy" - #+KEYMAP: j | elfeed-dashboard-query "+unread +jobs" - #+KEYMAP: s | elfeed - #+KEYMAP: g | elfeed-dashboard-update-links - #+KEYMAP: U | elfeed-dashboard-update - #+KEYMAP: E | elfeed-dashboard-edit - #+KEYMAP: q | kill-current-buffer diff --git a/localrepo/a-20210929.1510.tar b/localrepo/a-20210929.1510.tar index 7a217dc5..8d66ed01 100644 Binary files a/localrepo/a-20210929.1510.tar and b/localrepo/a-20210929.1510.tar differ diff --git a/localrepo/aio-20200610.1904.tar b/localrepo/aio-20200610.1904.tar index 808b935c..aafa76bb 100644 Binary files a/localrepo/aio-20200610.1904.tar and b/localrepo/aio-20200610.1904.tar differ diff --git a/localrepo/all-the-icons-20240108.559.tar b/localrepo/all-the-icons-20240108.559.tar index 05e7e9cc..b6286073 100644 Binary files a/localrepo/all-the-icons-20240108.559.tar and b/localrepo/all-the-icons-20240108.559.tar differ diff --git a/localrepo/all-the-icons-ivy-20190508.1803.tar b/localrepo/all-the-icons-ivy-20190508.1803.tar index e9f3b8db..b1a03c3a 100644 Binary files a/localrepo/all-the-icons-ivy-20190508.1803.tar and b/localrepo/all-the-icons-ivy-20190508.1803.tar differ diff --git a/localrepo/archive-contents b/localrepo/archive-contents index a1c011bd..188655c2 100644 --- a/localrepo/archive-contents +++ b/localrepo/archive-contents @@ -19,7 +19,6 @@ (closql . [(20240405 1948) ((emacs (25 1)) (compat (29 1 4 5)) (emacsql (20240124))) "Store EIEIO objects using EmacSQL" tar]) (company . [(0 10 2) ((emacs (25 1))) "Modular text completion framework" tar]) (company-ledger . [(20210910 250) ((emacs (24 3)) (company (0 8 0))) "Fuzzy auto-completion for Ledger & friends" tar]) - (compat . [(29 1 4 5) ((emacs (24 4)) (seq (2 23))) "Emacs Lisp Compatibility Library" tar]) (counsel . [(0 14 2) ((emacs (24 5)) (ivy (0 14 2)) (swiper (0 14 2))) "Various completion functions using Ivy" tar]) (css-eldoc . [(20220415 1629) nil "an eldoc-mode plugin for CSS source code" tar]) (dash . [(20240405 946) ((emacs (24))) "A modern list library for Emacs" tar]) @@ -119,18 +118,18 @@ (pdf-view-restore . [(20190904 1708) ((pdf-tools (0 90)) (emacs (26 0))) "Support for opening last known pdf position in pdfview mode" tar]) (persist . [(0 6) nil "Persist Variables between Emacs Sessions" tar]) (persistent-scratch . [(20230225 1439) ((emacs (24))) "Preserve the scratch buffer across Emacs sessions" tar]) + (poetry . [(20240329 1103) ((transient (0 2 0)) (pyvenv (1 2)) (emacs (25 1))) "Interface to Poetry" tar]) (popup . [(0 5 9) ((emacs (24 3))) "Visual Popup User Interface" tar]) (prescient . [(20240226 204) ((emacs (25 1))) "Better sorting and filtering" tar]) (projectile . [(2 8 0) ((emacs (25 1))) "Manage and navigate projects in Emacs easily" tar]) (promise . [(20210307 727) ((emacs (25 1))) "Promises/A+" tar]) - (racket-mode . [(1 0 20240319 160226) ((emacs (25 1))) "Racket editing, REPL, and more" tar]) + (pyvenv . [(20211014 707) nil "Python virtual environment interface" tar]) (rainbow-delimiters . [(2 1 5) nil "Highlight brackets according to their depth" tar]) (rainbow-identifiers . [(20141102 1526) ((emacs (24))) "Highlight identifiers according to their names" tar]) (rainbow-mode . [(1 0 6) nil "Colorize color names in buffers" tar]) (request . [(0 3 3) ((emacs (24 4))) "Compatible layer for URL request in Emacs" tar]) (ripgrep . [(20220520 1410) nil "Front-end for ripgrep, a command line search tool" tar]) (s . [(20220902 1511) nil "The long lost Emacs string manipulation library." tar]) - (sicp . [(20200512 1137) nil "Structure and Interpretation of Computer Programs in info format" tar]) (simple-httpd . [(20230821 1458) ((cl-lib (0 3))) "pure elisp HTTP server" tar]) (spinner . [(1 7 4) ((emacs (24 3))) "Add spinners and progressline for ongoing operations" tar]) (sudo-edit . [(20220801 1317) ((emacs (24)) (cl-lib (0 5))) "Open files as another user" tar]) diff --git a/localrepo/async-1.9.8.tar b/localrepo/async-1.9.8.tar index c16e3eee..d251f9ac 100644 Binary files a/localrepo/async-1.9.8.tar and b/localrepo/async-1.9.8.tar differ diff --git a/localrepo/blacken-20231129.654.tar b/localrepo/blacken-20231129.654.tar index 7d8d6e3d..41346c0a 100644 Binary files a/localrepo/blacken-20231129.654.tar and b/localrepo/blacken-20231129.654.tar differ diff --git a/localrepo/calibredb-20240331.409.tar b/localrepo/calibredb-20240331.409.tar index 5b25087b..9ec0895d 100644 Binary files a/localrepo/calibredb-20240331.409.tar and b/localrepo/calibredb-20240331.409.tar differ diff --git a/localrepo/change-inner-20231203.1021.tar b/localrepo/change-inner-20231203.1021.tar index 63a209b1..53e0ca6c 100644 Binary files a/localrepo/change-inner-20231203.1021.tar and b/localrepo/change-inner-20231203.1021.tar differ diff --git a/localrepo/chess-2.0.5.tar b/localrepo/chess-2.0.5.tar index 8a477760..570b29f5 100644 Binary files a/localrepo/chess-2.0.5.tar and b/localrepo/chess-2.0.5.tar differ diff --git a/localrepo/company-0.10.2.tar b/localrepo/company-0.10.2.tar index a719dfd0..4d3844f3 100644 Binary files a/localrepo/company-0.10.2.tar and b/localrepo/company-0.10.2.tar differ diff --git a/localrepo/compat-29.1.4.5.tar b/localrepo/compat-29.1.4.5.tar deleted file mode 100644 index 7a5fc787..00000000 Binary files a/localrepo/compat-29.1.4.5.tar and /dev/null differ diff --git a/localrepo/counsel-0.14.2.tar b/localrepo/counsel-0.14.2.tar index 5714cae4..429b5166 100644 Binary files a/localrepo/counsel-0.14.2.tar and b/localrepo/counsel-0.14.2.tar differ diff --git a/localrepo/css-eldoc-20220415.1629.tar b/localrepo/css-eldoc-20220415.1629.tar index 4d696fda..5dd2a869 100644 Binary files a/localrepo/css-eldoc-20220415.1629.tar and b/localrepo/css-eldoc-20220415.1629.tar differ diff --git a/localrepo/dashboard-20240327.29.tar b/localrepo/dashboard-20240327.29.tar index 0a4f36fd..62b2f527 100644 Binary files a/localrepo/dashboard-20240327.29.tar and b/localrepo/dashboard-20240327.29.tar differ diff --git a/localrepo/devdocs-0.6.1.tar b/localrepo/devdocs-0.6.1.tar index bf56b67e..fdfe4174 100644 Binary files a/localrepo/devdocs-0.6.1.tar and b/localrepo/devdocs-0.6.1.tar differ diff --git a/localrepo/dired-hacks-utils-20230512.1107.tar b/localrepo/dired-hacks-utils-20230512.1107.tar index ff669625..e53c0063 100644 Binary files a/localrepo/dired-hacks-utils-20230512.1107.tar and b/localrepo/dired-hacks-utils-20230512.1107.tar differ diff --git a/localrepo/dirvish-20230519.1500.tar b/localrepo/dirvish-20230519.1500.tar index 67b00264..9b2c4ee3 100644 Binary files a/localrepo/dirvish-20230519.1500.tar and b/localrepo/dirvish-20230519.1500.tar differ diff --git a/localrepo/easy-hugo-20240129.1534.tar b/localrepo/easy-hugo-20240129.1534.tar index 62129295..6e9c9e5b 100644 Binary files a/localrepo/easy-hugo-20240129.1534.tar and b/localrepo/easy-hugo-20240129.1534.tar differ diff --git a/localrepo/ef-themes-1.6.1.tar b/localrepo/ef-themes-1.6.1.tar index 314f7f51..53b4a4a1 100644 Binary files a/localrepo/ef-themes-1.6.1.tar and b/localrepo/ef-themes-1.6.1.tar differ diff --git a/localrepo/elfeed-20240331.1348.tar b/localrepo/elfeed-20240331.1348.tar index b369e753..a03a07d9 100644 Binary files a/localrepo/elfeed-20240331.1348.tar and b/localrepo/elfeed-20240331.1348.tar differ diff --git a/localrepo/elfeed-dashboard-20210727.603.tar b/localrepo/elfeed-dashboard-20210727.603.tar index 20cb7522..693c0ff0 100644 Binary files a/localrepo/elfeed-dashboard-20210727.603.tar and b/localrepo/elfeed-dashboard-20210727.603.tar differ diff --git a/localrepo/emacsql-20240124.1601.tar b/localrepo/emacsql-20240124.1601.tar index 220f0bd5..f54dde20 100644 Binary files a/localrepo/emacsql-20240124.1601.tar and b/localrepo/emacsql-20240124.1601.tar differ diff --git a/localrepo/emojify-20210108.1111.tar b/localrepo/emojify-20210108.1111.tar index 995fd1a0..8826c909 100644 Binary files a/localrepo/emojify-20210108.1111.tar and b/localrepo/emojify-20210108.1111.tar differ diff --git a/localrepo/eradio-20210327.1000.tar b/localrepo/eradio-20210327.1000.tar index 4fab8751..64a05ad8 100644 Binary files a/localrepo/eradio-20210327.1000.tar and b/localrepo/eradio-20210327.1000.tar differ diff --git a/localrepo/erc-image-20210604.753.tar b/localrepo/erc-image-20210604.753.tar index cbc16946..da89b8c9 100644 Binary files a/localrepo/erc-image-20210604.753.tar and b/localrepo/erc-image-20210604.753.tar differ diff --git a/localrepo/esxml-20230308.2254.tar b/localrepo/esxml-20230308.2254.tar index 10cf835f..12ab6306 100644 Binary files a/localrepo/esxml-20230308.2254.tar and b/localrepo/esxml-20230308.2254.tar differ diff --git a/localrepo/exec-path-from-shell-2.1.tar b/localrepo/exec-path-from-shell-2.1.tar index d481c68d..ed3c63e0 100644 Binary files a/localrepo/exec-path-from-shell-2.1.tar and b/localrepo/exec-path-from-shell-2.1.tar differ diff --git a/localrepo/expand-region-1.0.0.tar b/localrepo/expand-region-1.0.0.tar index a86b7e1d..0fd0857f 100644 Binary files a/localrepo/expand-region-1.0.0.tar and b/localrepo/expand-region-1.0.0.tar differ diff --git a/localrepo/f-20240308.906.tar b/localrepo/f-20240308.906.tar index 38e41a87..581b091a 100644 Binary files a/localrepo/f-20240308.906.tar and b/localrepo/f-20240308.906.tar differ diff --git a/localrepo/feebleline-20190822.1401.tar b/localrepo/feebleline-20190822.1401.tar index a8b83f63..89cb83f3 100644 Binary files a/localrepo/feebleline-20190822.1401.tar and b/localrepo/feebleline-20190822.1401.tar differ diff --git a/localrepo/flycheck-34.1.tar b/localrepo/flycheck-34.1.tar index fd03fde6..90b81328 100644 Binary files a/localrepo/flycheck-34.1.tar and b/localrepo/flycheck-34.1.tar differ diff --git a/localrepo/flycheck-package-20210509.2325.tar b/localrepo/flycheck-package-20210509.2325.tar index 8bfa1f18..c66e0370 100644 Binary files a/localrepo/flycheck-package-20210509.2325.tar and b/localrepo/flycheck-package-20210509.2325.tar differ diff --git a/localrepo/flycheck-projectile-20201031.1952.tar b/localrepo/flycheck-projectile-20201031.1952.tar index 145b68f2..434b3838 100644 Binary files a/localrepo/flycheck-projectile-20201031.1952.tar and b/localrepo/flycheck-projectile-20201031.1952.tar differ diff --git a/localrepo/fontaine-1.0.0.tar b/localrepo/fontaine-1.0.0.tar index b7125cb2..e79176a3 100644 Binary files a/localrepo/fontaine-1.0.0.tar and b/localrepo/fontaine-1.0.0.tar differ diff --git a/localrepo/forge-20240405.1509.tar b/localrepo/forge-20240405.1509.tar index 3ba4388a..ebf23ad1 100644 Binary files a/localrepo/forge-20240405.1509.tar and b/localrepo/forge-20240405.1509.tar differ diff --git a/localrepo/free-keys-1.0.tar b/localrepo/free-keys-1.0.tar index 758e79ab..5a5e67f5 100644 Binary files a/localrepo/free-keys-1.0.tar and b/localrepo/free-keys-1.0.tar differ diff --git a/localrepo/ghub-20240311.1716.tar b/localrepo/ghub-20240311.1716.tar index bfcf7bfe..3bd3e32e 100644 Binary files a/localrepo/ghub-20240311.1716.tar and b/localrepo/ghub-20240311.1716.tar differ diff --git a/localrepo/github-dark-vscode-theme-20231011.2034.tar b/localrepo/github-dark-vscode-theme-20231011.2034.tar index 5521ad82..21d2b534 100644 Binary files a/localrepo/github-dark-vscode-theme-20231011.2034.tar and b/localrepo/github-dark-vscode-theme-20231011.2034.tar differ diff --git a/localrepo/go-mode-1.6.0.tar b/localrepo/go-mode-1.6.0.tar index 42e2c90a..57cc7cae 100644 Binary files a/localrepo/go-mode-1.6.0.tar and b/localrepo/go-mode-1.6.0.tar differ diff --git a/localrepo/gptel-20240404.813.tar b/localrepo/gptel-20240404.813.tar index c9bf1b05..4fd7f9fd 100644 Binary files a/localrepo/gptel-20240404.813.tar and b/localrepo/gptel-20240404.813.tar differ diff --git a/localrepo/graphql-0.1.2.tar b/localrepo/graphql-0.1.2.tar index 8d3584e9..083784ef 100644 Binary files a/localrepo/graphql-0.1.2.tar and b/localrepo/graphql-0.1.2.tar differ diff --git a/localrepo/helpful-20231028.516.tar b/localrepo/helpful-20231028.516.tar index 10cb6d23..1191a166 100644 Binary files a/localrepo/helpful-20231028.516.tar and b/localrepo/helpful-20231028.516.tar differ diff --git a/localrepo/hl-todo-20240329.1503.tar b/localrepo/hl-todo-20240329.1503.tar index b965b88d..9e34d26d 100644 Binary files a/localrepo/hl-todo-20240329.1503.tar and b/localrepo/hl-todo-20240329.1503.tar differ diff --git a/localrepo/htmlize-1.56.tar b/localrepo/htmlize-1.56.tar index b867a7c4..01bbaf98 100644 Binary files a/localrepo/htmlize-1.56.tar and b/localrepo/htmlize-1.56.tar differ diff --git a/localrepo/hydra-0.15.0.tar b/localrepo/hydra-0.15.0.tar index 88a5a88b..e5ccfaab 100644 Binary files a/localrepo/hydra-0.15.0.tar and b/localrepo/hydra-0.15.0.tar differ diff --git a/localrepo/impatient-mode-20230511.1746.tar b/localrepo/impatient-mode-20230511.1746.tar index 545e3993..bb9f928e 100644 Binary files a/localrepo/impatient-mode-20230511.1746.tar and b/localrepo/impatient-mode-20230511.1746.tar differ diff --git a/localrepo/iter2-20221104.1938.tar b/localrepo/iter2-20221104.1938.tar index a543baa7..f75051ea 100644 Binary files a/localrepo/iter2-20221104.1938.tar and b/localrepo/iter2-20221104.1938.tar differ diff --git a/localrepo/ivy-0.14.2.tar b/localrepo/ivy-0.14.2.tar index f970c322..c1fee305 100644 Binary files a/localrepo/ivy-0.14.2.tar and b/localrepo/ivy-0.14.2.tar differ diff --git a/localrepo/ivy-rich-20230425.1422.tar b/localrepo/ivy-rich-20230425.1422.tar index 1d02e1bf..a0129b49 100644 Binary files a/localrepo/ivy-rich-20230425.1422.tar and b/localrepo/ivy-rich-20230425.1422.tar differ diff --git a/localrepo/js2-mode-20231224.tar b/localrepo/js2-mode-20231224.tar index 274d4c8d..a09e411f 100644 Binary files a/localrepo/js2-mode-20231224.tar and b/localrepo/js2-mode-20231224.tar differ diff --git a/localrepo/kv-20140108.1534.tar b/localrepo/kv-20140108.1534.tar index a600eed4..fc81b345 100644 Binary files a/localrepo/kv-20140108.1534.tar and b/localrepo/kv-20140108.1534.tar differ diff --git a/localrepo/ledger-mode-20240326.2002.tar b/localrepo/ledger-mode-20240326.2002.tar index 55e5cd5e..2c4e776c 100644 Binary files a/localrepo/ledger-mode-20240326.2002.tar and b/localrepo/ledger-mode-20240326.2002.tar differ diff --git a/localrepo/ligature-20220808.1225.tar b/localrepo/ligature-20220808.1225.tar index 3ebb682d..9376ae50 100644 Binary files a/localrepo/ligature-20220808.1225.tar and b/localrepo/ligature-20220808.1225.tar differ diff --git a/localrepo/lsp-mode-20240406.356.tar b/localrepo/lsp-mode-20240406.356.tar index 9376bdfa..122ad294 100644 Binary files a/localrepo/lsp-mode-20240406.356.tar and b/localrepo/lsp-mode-20240406.356.tar differ diff --git a/localrepo/lsp-ui-20240330.2227.tar b/localrepo/lsp-ui-20240330.2227.tar index 926f7ed4..76fe7785 100644 Binary files a/localrepo/lsp-ui-20240330.2227.tar and b/localrepo/lsp-ui-20240330.2227.tar differ diff --git a/localrepo/lv-0.15.0.tar b/localrepo/lv-0.15.0.tar index 087a1080..31d21c3a 100644 Binary files a/localrepo/lv-0.15.0.tar and b/localrepo/lv-0.15.0.tar differ diff --git a/localrepo/madhat2r-theme-20170203.30.tar b/localrepo/madhat2r-theme-20170203.30.tar index 3f134c43..578ba75a 100644 Binary files a/localrepo/madhat2r-theme-20170203.30.tar and b/localrepo/madhat2r-theme-20170203.30.tar differ diff --git a/localrepo/magit-20240404.1901.tar b/localrepo/magit-20240404.1901.tar index 5943cde0..9174ca22 100644 Binary files a/localrepo/magit-20240404.1901.tar and b/localrepo/magit-20240404.1901.tar differ diff --git a/localrepo/magit-section-20240311.1407.tar b/localrepo/magit-section-20240311.1407.tar index b4fd28df..6a5a7936 100644 Binary files a/localrepo/magit-section-20240311.1407.tar and b/localrepo/magit-section-20240311.1407.tar differ diff --git a/localrepo/malyon-20161208.2125.tar b/localrepo/malyon-20161208.2125.tar index 439128bd..8e5a6aa0 100644 Binary files a/localrepo/malyon-20161208.2125.tar and b/localrepo/malyon-20161208.2125.tar differ diff --git a/localrepo/marginalia-1.6.tar b/localrepo/marginalia-1.6.tar index ddcdffef..d9d8f274 100644 Binary files a/localrepo/marginalia-1.6.tar and b/localrepo/marginalia-1.6.tar differ diff --git a/localrepo/markdown-mode-2.6.tar b/localrepo/markdown-mode-2.6.tar index a2272247..7d5405bd 100644 Binary files a/localrepo/markdown-mode-2.6.tar and b/localrepo/markdown-mode-2.6.tar differ diff --git a/localrepo/mood-line-20231210.1309.tar b/localrepo/mood-line-20231210.1309.tar index 393b8269..7f2738bb 100644 Binary files a/localrepo/mood-line-20231210.1309.tar and b/localrepo/mood-line-20231210.1309.tar differ diff --git a/localrepo/nerd-icons-20240319.833.tar b/localrepo/nerd-icons-20240319.833.tar index bca92cc9..51f6fdc7 100644 Binary files a/localrepo/nerd-icons-20240319.833.tar and b/localrepo/nerd-icons-20240319.833.tar differ diff --git a/localrepo/nerd-icons-ibuffer-20230417.1549.tar b/localrepo/nerd-icons-ibuffer-20230417.1549.tar index 25f6eb8e..639df931 100644 Binary files a/localrepo/nerd-icons-ibuffer-20230417.1549.tar and b/localrepo/nerd-icons-ibuffer-20230417.1549.tar differ diff --git a/localrepo/nov-20230715.1434.tar b/localrepo/nov-20230715.1434.tar index c3217ff5..941c3f6d 100644 Binary files a/localrepo/nov-20230715.1434.tar and b/localrepo/nov-20230715.1434.tar differ diff --git a/localrepo/olivetti-20231104.538.tar b/localrepo/olivetti-20231104.538.tar index dfc5cf6d..158d5912 100644 Binary files a/localrepo/olivetti-20231104.538.tar and b/localrepo/olivetti-20231104.538.tar differ diff --git a/localrepo/org-contacts-1.1.tar b/localrepo/org-contacts-1.1.tar index 35065a14..9e8b02f8 100644 Binary files a/localrepo/org-contacts-1.1.tar and b/localrepo/org-contacts-1.1.tar differ diff --git a/localrepo/org-drill-2.7.0.tar b/localrepo/org-drill-2.7.0.tar index f3efdf8b..bce52415 100644 Binary files a/localrepo/org-drill-2.7.0.tar and b/localrepo/org-drill-2.7.0.tar differ diff --git a/localrepo/org-roam-20240114.1941.tar b/localrepo/org-roam-20240114.1941.tar index adb70660..905acb46 100644 Binary files a/localrepo/org-roam-20240114.1941.tar and b/localrepo/org-roam-20240114.1941.tar differ diff --git a/localrepo/org-super-agenda-20240301.1602.tar b/localrepo/org-super-agenda-20240301.1602.tar index 19b13e84..885a7886 100644 Binary files a/localrepo/org-super-agenda-20240301.1602.tar and b/localrepo/org-super-agenda-20240301.1602.tar differ diff --git a/localrepo/org-superstar-1.5.1.tar b/localrepo/org-superstar-1.5.1.tar index 3995f3c2..7cd0cdc4 100644 Binary files a/localrepo/org-superstar-1.5.1.tar and b/localrepo/org-superstar-1.5.1.tar differ diff --git a/localrepo/ox-hugo-20240305.1923.tar b/localrepo/ox-hugo-20240305.1923.tar index 0a4cbd84..ebeeda92 100644 Binary files a/localrepo/ox-hugo-20240305.1923.tar and b/localrepo/ox-hugo-20240305.1923.tar differ diff --git a/localrepo/package-build-20240306.2234.tar b/localrepo/package-build-20240306.2234.tar index 2d5df205..01a922e6 100644 Binary files a/localrepo/package-build-20240306.2234.tar and b/localrepo/package-build-20240306.2234.tar differ diff --git a/localrepo/package-lint-0.23.tar b/localrepo/package-lint-0.23.tar index 30ba3b51..8590a874 100644 Binary files a/localrepo/package-lint-0.23.tar and b/localrepo/package-lint-0.23.tar differ diff --git a/localrepo/pdf-tools-1.1.0.tar b/localrepo/pdf-tools-1.1.0.tar index 28d82bda..be713b47 100644 Binary files a/localrepo/pdf-tools-1.1.0.tar and b/localrepo/pdf-tools-1.1.0.tar differ diff --git a/localrepo/pdf-view-restore-20190904.1708.tar b/localrepo/pdf-view-restore-20190904.1708.tar index b020f2d5..cf811794 100644 Binary files a/localrepo/pdf-view-restore-20190904.1708.tar and b/localrepo/pdf-view-restore-20190904.1708.tar differ diff --git a/localrepo/persist-0.6.tar b/localrepo/persist-0.6.tar index 0d96deb6..44c0f722 100644 Binary files a/localrepo/persist-0.6.tar and b/localrepo/persist-0.6.tar differ diff --git a/localrepo/poetry-20240329.1103.tar b/localrepo/poetry-20240329.1103.tar new file mode 100644 index 00000000..75018b7b Binary files /dev/null and b/localrepo/poetry-20240329.1103.tar differ diff --git a/localrepo/popup-0.5.9.tar b/localrepo/popup-0.5.9.tar index 3c63f0c3..945610a3 100644 Binary files a/localrepo/popup-0.5.9.tar and b/localrepo/popup-0.5.9.tar differ diff --git a/localrepo/projectile-2.8.0.tar b/localrepo/projectile-2.8.0.tar index eb09813a..005099ca 100644 Binary files a/localrepo/projectile-2.8.0.tar and b/localrepo/projectile-2.8.0.tar differ diff --git a/localrepo/promise-20210307.727.tar b/localrepo/promise-20210307.727.tar index fe812a33..bdf27e10 100644 Binary files a/localrepo/promise-20210307.727.tar and b/localrepo/promise-20210307.727.tar differ diff --git a/localrepo/pyvenv-20211014.707.tar b/localrepo/pyvenv-20211014.707.tar new file mode 100644 index 00000000..bfc9b425 Binary files /dev/null and b/localrepo/pyvenv-20211014.707.tar differ diff --git a/localrepo/racket-mode-1.0.20240319.160226.tar b/localrepo/racket-mode-1.0.20240319.160226.tar deleted file mode 100644 index 77413768..00000000 Binary files a/localrepo/racket-mode-1.0.20240319.160226.tar and /dev/null differ diff --git a/localrepo/rainbow-mode-1.0.6.tar b/localrepo/rainbow-mode-1.0.6.tar index 13acf33c..69b279fa 100644 Binary files a/localrepo/rainbow-mode-1.0.6.tar and b/localrepo/rainbow-mode-1.0.6.tar differ diff --git a/localrepo/request-0.3.3.tar b/localrepo/request-0.3.3.tar index 423a7d49..2b77881b 100644 Binary files a/localrepo/request-0.3.3.tar and b/localrepo/request-0.3.3.tar differ diff --git a/localrepo/ripgrep-20220520.1410.tar b/localrepo/ripgrep-20220520.1410.tar index 7ef4b7f2..5fc97933 100644 Binary files a/localrepo/ripgrep-20220520.1410.tar and b/localrepo/ripgrep-20220520.1410.tar differ diff --git a/localrepo/s-20220902.1511.tar b/localrepo/s-20220902.1511.tar index 5b160aa3..066b0c27 100644 Binary files a/localrepo/s-20220902.1511.tar and b/localrepo/s-20220902.1511.tar differ diff --git a/localrepo/sicp-20200512.1137.tar b/localrepo/sicp-20200512.1137.tar deleted file mode 100644 index a01ae053..00000000 Binary files a/localrepo/sicp-20200512.1137.tar and /dev/null differ diff --git a/localrepo/simple-httpd-20230821.1458.tar b/localrepo/simple-httpd-20230821.1458.tar index fb62c692..00218834 100644 Binary files a/localrepo/simple-httpd-20230821.1458.tar and b/localrepo/simple-httpd-20230821.1458.tar differ diff --git a/localrepo/spinner-1.7.4.tar b/localrepo/spinner-1.7.4.tar index ad940748..07f6dd74 100644 Binary files a/localrepo/spinner-1.7.4.tar and b/localrepo/spinner-1.7.4.tar differ diff --git a/localrepo/sudo-edit-20220801.1317.tar b/localrepo/sudo-edit-20220801.1317.tar index 255fae8e..bc5416ce 100644 Binary files a/localrepo/sudo-edit-20220801.1317.tar and b/localrepo/sudo-edit-20220801.1317.tar differ diff --git a/localrepo/swiper-0.14.2.tar b/localrepo/swiper-0.14.2.tar index ed5cdbba..b3d04dbd 100644 Binary files a/localrepo/swiper-0.14.2.tar and b/localrepo/swiper-0.14.2.tar differ diff --git a/localrepo/tablist-1.0.tar b/localrepo/tablist-1.0.tar index ab4b983f..b912fea2 100644 Binary files a/localrepo/tablist-1.0.tar and b/localrepo/tablist-1.0.tar differ diff --git a/localrepo/telega-20240322.901.tar b/localrepo/telega-20240322.901.tar index 830c2ebd..0ce12a42 100644 Binary files a/localrepo/telega-20240322.901.tar and b/localrepo/telega-20240322.901.tar differ diff --git a/localrepo/tide-20230620.1444.tar b/localrepo/tide-20230620.1444.tar index 7a787873..0d679617 100644 Binary files a/localrepo/tide-20230620.1444.tar and b/localrepo/tide-20230620.1444.tar differ diff --git a/localrepo/tomelr-0.4.3.tar b/localrepo/tomelr-0.4.3.tar index 16b79075..0d6a9ea0 100644 Binary files a/localrepo/tomelr-0.4.3.tar and b/localrepo/tomelr-0.4.3.tar differ diff --git a/localrepo/toml-mode-20161107.1800.tar b/localrepo/toml-mode-20161107.1800.tar index cd9731df..8e6921f4 100644 Binary files a/localrepo/toml-mode-20161107.1800.tar and b/localrepo/toml-mode-20161107.1800.tar differ diff --git a/localrepo/transient-20240405.1443.tar b/localrepo/transient-20240405.1443.tar index 406cfddb..975259d0 100644 Binary files a/localrepo/transient-20240405.1443.tar and b/localrepo/transient-20240405.1443.tar differ diff --git a/localrepo/tree-sitter-20220212.1632.tar b/localrepo/tree-sitter-20220212.1632.tar index 6826b158..1abce838 100644 Binary files a/localrepo/tree-sitter-20220212.1632.tar and b/localrepo/tree-sitter-20220212.1632.tar differ diff --git a/localrepo/treesit-auto-20240401.1240.tar b/localrepo/treesit-auto-20240401.1240.tar index eee0aa2a..93e05b88 100644 Binary files a/localrepo/treesit-auto-20240401.1240.tar and b/localrepo/treesit-auto-20240401.1240.tar differ diff --git a/localrepo/tsc-20220212.1632.tar b/localrepo/tsc-20220212.1632.tar index d580f2a3..245f1da9 100644 Binary files a/localrepo/tsc-20220212.1632.tar and b/localrepo/tsc-20220212.1632.tar differ diff --git a/localrepo/visual-fill-column-2.6.2.tar b/localrepo/visual-fill-column-2.6.2.tar index 9aad9034..aeeb15d4 100644 Binary files a/localrepo/visual-fill-column-2.6.2.tar and b/localrepo/visual-fill-column-2.6.2.tar differ diff --git a/localrepo/vscode-icon-20230330.2206.tar b/localrepo/vscode-icon-20230330.2206.tar index c77a2699..8a358e4f 100644 Binary files a/localrepo/vscode-icon-20230330.2206.tar and b/localrepo/vscode-icon-20230330.2206.tar differ diff --git a/localrepo/vterm-20240325.1551.tar b/localrepo/vterm-20240325.1551.tar index 2842b46c..4b0990e7 100644 Binary files a/localrepo/vterm-20240325.1551.tar and b/localrepo/vterm-20240325.1551.tar differ diff --git a/localrepo/web-mode-17.3.19.tar b/localrepo/web-mode-17.3.19.tar index 57e38d2c..4caa4c2f 100644 Binary files a/localrepo/web-mode-17.3.19.tar and b/localrepo/web-mode-17.3.19.tar differ diff --git a/localrepo/which-key-3.6.0.tar b/localrepo/which-key-3.6.0.tar index d0f57954..26aed842 100644 Binary files a/localrepo/which-key-3.6.0.tar and b/localrepo/which-key-3.6.0.tar differ diff --git a/localrepo/wiki-summary-20181010.1824.tar b/localrepo/wiki-summary-20181010.1824.tar index b1ff4405..22ea72c2 100644 Binary files a/localrepo/wiki-summary-20181010.1824.tar and b/localrepo/wiki-summary-20181010.1824.tar differ diff --git a/localrepo/windsize-20181029.2257.tar b/localrepo/windsize-20181029.2257.tar index 49c0ba19..ad475ee6 100644 Binary files a/localrepo/windsize-20181029.2257.tar and b/localrepo/windsize-20181029.2257.tar differ diff --git a/localrepo/with-editor-20240101.2226.tar b/localrepo/with-editor-20240101.2226.tar index 276fa1ed..29c69688 100644 Binary files a/localrepo/with-editor-20240101.2226.tar and b/localrepo/with-editor-20240101.2226.tar differ diff --git a/localrepo/yaml-20231211.1501.tar b/localrepo/yaml-20231211.1501.tar index de48c563..adc0aa53 100644 Binary files a/localrepo/yaml-20231211.1501.tar and b/localrepo/yaml-20231211.1501.tar differ diff --git a/localrepo/yaml-mode-0.0.16.tar b/localrepo/yaml-mode-0.0.16.tar index 55ae5e74..06885825 100644 Binary files a/localrepo/yaml-mode-0.0.16.tar and b/localrepo/yaml-mode-0.0.16.tar differ diff --git a/localrepo/yasnippet-0.14.1.tar b/localrepo/yasnippet-0.14.1.tar index d1a4b942..30576abb 100644 Binary files a/localrepo/yasnippet-0.14.1.tar and b/localrepo/yasnippet-0.14.1.tar differ diff --git a/localrepo/ztree-1.0.6.tar b/localrepo/ztree-1.0.6.tar index 1cbee399..b6e5b0d7 100644 Binary files a/localrepo/ztree-1.0.6.tar and b/localrepo/ztree-1.0.6.tar differ diff --git a/modules/ai-config.el b/modules/ai-config.el index 14380a2b..2240d0ac 100644 --- a/modules/ai-config.el +++ b/modules/ai-config.el @@ -41,11 +41,26 @@ . "You are a large language model and a careful programmer. Provide code and only code as output without any additional text, prompt or note.") (writing - . "You are a large language model and a writing assistant. Respond concisely.") + . "You are a large language model and a writing assistant. Respond + concisely.") (chat - . "You are a large language model and a conversation partner. Respond concisely."))) + . "You are a large language model and a conversation partner. Respond + concisely."))) + ;; grab the secret from ~/.authinfo.gpg (setq gptel-api-key (auth-source-pick-first-password :host "api.openai.com"))) +;; ----------------------------- Gptel Send Region ----------------------------- +;; convenience function to send a selection to Gptel. + +(defun cj/gptel-send-region (&optional prefix) + "Verify a region is selected and call gptel-send with PREFIX." + (interactive "P") + (if (use-region-p) + (gptel-send (prefix-numeric-value prefix)) + (error "No region selected"))) + +(global-set-key (kbd "C-; g") 'cj/gptel-send-region) + (provide 'ai-config) -;;; ai-config.el ends here. +;;; ai-config.el ends here diff --git a/modules/config-utilities.el b/modules/config-utilities.el index 4e0fd923..240c6d14 100644 --- a/modules/config-utilities.el +++ b/modules/config-utilities.el @@ -45,7 +45,7 @@ Will recompile natively if supported, or byte-compiled if not." ;; removes all compiled files and deletes the eln directory (defun cj/delete-emacs-home-compiled-files () - "Delete all compiled files recursively in \\='user-emacs-directory\\='." + "Delete all compiled files recursively in \='user-emacs-directory\='." (interactive) (message "Deleting compiled files under %s. This may take a while." user-emacs-directory) (require 'find-lisp) ;; make sure the package is required diff --git a/modules/custom-functions.el b/modules/custom-functions.el index fe617ed1..414d3108 100644 --- a/modules/custom-functions.el +++ b/modules/custom-functions.el @@ -130,6 +130,32 @@ buffer." (indent-region start-pos end-pos nil) (untabify start-pos end-pos)))) +;; ------------------- Remove Leading And Trailing Whitespace ------------------ +;; removes leading and trailing whitespace on line, region, or buffer. + +(defun cj/remove-leading-trailing-whitespace (start end) + "Remove leading and trailing whitespace in a region or buffer. +When called interactively, if a region is active, remove leading +and trailing spaces in the region. Else, remove from the current line. +If called with a prefix argument (C-u), remove throughout the entire buffer. +START and END define region." + (interactive "r") + (let (deactivate-mark) + (if (or (use-region-p) current-prefix-arg) + (save-restriction + (if current-prefix-arg + (progn (widen) (setq start (point-min) end (point-max))) + (narrow-to-region start end)) + (goto-char (point-min)) + (while (re-search-forward "^[ \t]+" nil t) (replace-match "")) + (goto-char (point-min)) + (while (re-search-forward "[ \t]+$" nil t) (replace-match ""))) + (beginning-of-line) + (while (looking-at "^[ \t]+") (replace-match "")) + (end-of-line) + (while (re-search-backward "[ \t]+$" (line-beginning-position) t) + (replace-match ""))))) + ;; --------------------------- Arrayify / Unarrayify --------------------------- ;; unquoted text on newlines to quoted comma separated strings (and vice-versa). @@ -137,7 +163,7 @@ buffer." "Turn unquoted text on newlines into quoted comma-separated strings. START and END indicate the region selected. QUOTE is the characters used for quotations (i.e, \=' or \")" - (interactive "r\nMQuote: ") + (interactive "r\nMQuotation character to use for array element: ") (let ((insertion (mapconcat (lambda (x) (format "%s%s%s" quote x quote)) @@ -456,7 +482,16 @@ Uses `sortable-time-format' for the formatting the date/time." (defadvice align-regexp (around align-regexp-with-spaces activate) "Avoid tabs when aligning text." (let ((indent-tabs-mode nil)) - ad-do-it)) + ad-do-it)) + +;; ----------------------------- Merge List To List ---------------------------- +;; Convenience method for merging two lists together +;; https://emacs.stackexchange.com/questions/38008/adding-many-items-to-a-list/68048#68048 + +(defun cj/merge-list-to-list (dst src) + "Merge content of the 2nd list SRC with the 1st one DST." + (set dst + (append (eval dst) src))) ;; ------------------------------ Personal Keymap ------------------------------ ;; a keymap to use the above functions. prefix key: "C-;" @@ -472,20 +507,20 @@ Uses `sortable-time-format' for the formatting the date/time." (define-key map "D" 'cj/remove-duplicate-lines-from-region-or-buffer) (define-key map ")" #'cj/jump-to-matching-paren) - (define-key map "-" #'cj/hyphenate-whitespace-in-region) - (define-key map "p" 'cj/append-to-lines-in-region-or-buffer) - (define-key map "1" 'cj/alphabetize-and-replace-regibon) - (define-key map "C" 'display-fill-column-indicator-mode) - (define-key map "w" 'cj/wrap-region-as-code-span) - (define-key map "f" 'cj/format-region-or-buffer) - (define-key map "h" 'cj/hyphenate-region) - (define-key map "j" 'cj/join-line-or-region) - (define-key map "J" 'cj/join-paragraph) - (define-key map "r" 'align-regexp) - (define-key map "l" 'downcase-dwim) - (define-key map "u" 'cj/title-case-region) - (define-key map "U" 'upcase-region) - (define-key map "#" 'cj/count-words-buffer-or-region) + (define-key map "-" #'cj/hyphenate-region) + (define-key map "U" 'upcase-region) + (define-key map "w" 'cj/remove-leading-trailing-whitespace) + (define-key map "#" 'cj/count-words-buffer-or-region) + (define-key map "1" 'cj/alphabetize-and-replace-region) + (define-key map "C" 'display-fill-column-indicator-mode) + (define-key map "J" 'cj/join-paragraph) + (define-key map "f" 'cj/format-region-or-buffer) + (define-key map "j" 'cj/join-line-or-region) + (define-key map "l" 'downcase-dwim) + (define-key map "p" 'cj/append-to-lines-in-region-or-buffer) + (define-key map "r" 'align-regexp) + (define-key map "u" 'cj/title-case-region) + (define-key map "c" 'cj/wrap-region-as-code-span) map) "My personal key map.") (global-set-key (kbd "C-;") personal-keymap) diff --git a/modules/dashboard-config.el b/modules/dashboard-config.el index 6340c32b..f9c40ee5 100644 --- a/modules/dashboard-config.el +++ b/modules/dashboard-config.el @@ -94,11 +94,6 @@ (setq dashboard-set-footer nil) ;; don't show footer and quotes ;; == banner - (custom-set-faces '(dashboard-banner-logo-title - ((t(:slant oblique - :height 170 - :family "Merriweather"))))) - (setq dashboard-startup-banner (concat user-emacs-directory "assets/M-x_butterfly.png")) (setq dashboard-banner-logo-title "Emacs: The Editor That Saves Your Soul") diff --git a/modules/elfeed-config.el b/modules/elfeed-config.el index 37a0e12f..901ae0b1 100644 --- a/modules/elfeed-config.el +++ b/modules/elfeed-config.el @@ -13,13 +13,13 @@ ("w" . eww-open-in-new-buffer)) (:map elfeed-search-mode-map ("w" . cj/elfeed-eww-open) ;; opens in eww - ("b" . cj/elfeed-browser-open) ;; opens in external browser - ("d" . cj/elfeed-youtube-dl) ;; async download with yt-dlp and tsp - ("p" . cj/play-with-mpv) ;; async play with mpv - ("R" . cj/elfeed-mark-all-as-read) ;; capital marks all as read, since upper case marks one as read - ("U" . cj/elfeed-mark-all-as-unread)) ;; capital marks all as unread, since lower case marks one as unread + ("b" . cj/elfeed-browser-open) ;; opens in external browser + ("d" . cj/elfeed-youtube-dl) ;; async download with yt-dlp and tsp + ("p" . cj/play-with-mpv) ;; async play with mpv + ("R" . cj/elfeed-mark-all-as-read) ;; capital marks all as read, since upper case marks one as read + ("U" . cj/elfeed-mark-all-as-unread)) ;; capital marks all as unread, since lower case marks one as unread :config - (setq elfeed-db-directory "~/sync/org/ElfeedDB") + (setq elfeed-db-directory (concat user-emacs-directory ".elfeed-db")) (setq-default elfeed-search-title-max-width 150) (setq-default elfeed-search-title-min-width 80) (setq-default elfeed-search-filter "+mustread +unread")) @@ -30,7 +30,8 @@ :defer .5 :after elfeed :config - (setq rmh-elfeed-org-files (list (concat sync-dir "elfeed-feeds.org"))) + (setq rmh-elfeed-org-files + (list (concat user-emacs-directory "assets/elfeed-feeds.org"))) (elfeed-org)) ;; ------------------------------ Elfeed Dashboard ----------------------------- @@ -40,7 +41,7 @@ :bind ("M-R" . elfeed-dashboard) :config - (setq elfeed-dashboard-file (concat user-emacs-directory "elfeed-dashboard.org")) + (setq elfeed-dashboard-file (concat user-emacs-directory "assets/elfeed-dashboard.org")) ;; update feed counts on elfeed-quit (advice-add 'elfeed-search-quit-window :after #'elfeed-dashboard-update-links)) @@ -87,16 +88,16 @@ (add-hook 'eww-after-render-hook #'cj/eww-readable-nonce) (eww-browse-url it)) (mapc #'elfeed-search-update-entry entries) - (unless (use-region-p) (forward-line)))) + (unless (use-region-p) (forward-line)))) ;; hook for cj/elfeed-eww-open to open entry in eww readable mode ;; https://emacs.stackexchange.com/questions/36284/how-to-open-eww-in-readable-mode/47757 (defun cj/eww-readable-nonce () "Once-off call to eww-readable after EWW is done rendering." (unwind-protect - (progn - (eww-readable) - (goto-char (point-min))) + (progn + (eww-readable) + (goto-char (point-min))) (remove-hook 'eww-after-render-hook #'cj/eww-readable-nonce))) (defun cj/elfeed-browser-open (&optional use-generic-p) @@ -126,8 +127,8 @@ (defun cj/yt-dl-it (url) "Downloads the URL in an async shell." (let ((default-directory "~/videos")) - (save-window-excursion - (async-shell-command (format "tsp yt-dlp --add-metadata -ic -o '%%(channel)s-%%(title)s.%%(ext)s' '%s'" url))))) + (save-window-excursion + (async-shell-command (format "tsp yt-dlp --add-metadata -ic -o '%%(channel)s-%%(title)s.%%(ext)s' '%s'" url))))) (defun cj/play-with-mpv (&optional use-generic-p) "MPV link." @@ -144,7 +145,5 @@ "Play the URL with mpv in an async shell." (async-shell-command (format "mpv '%s'" url))) - - (provide 'elfeed-config) ;;; elfeed-config.el ends here diff --git a/modules/flycheck-config.el b/modules/flycheck-config.el index 1bad4cbd..f0ca71fe 100644 --- a/modules/flycheck-config.el +++ b/modules/flycheck-config.el @@ -6,7 +6,7 @@ ;;; Code: (defun cj/prose-helpers-on () - "Ensure that abbrev, flyspell, and flycheck are on." + "Ensure that abbrev, flyspell, and flycheck are all on." (interactive) (if (not (abbrev-mode)) (abbrev-mode)) @@ -19,7 +19,13 @@ (use-package flycheck :defer .5 :hook (sh-mode emacs-lisp-mode) - :bind ("C-; ?" . flycheck-list-errors) + :preface + (defun cj/flycheck-list-errors () + "Display flycheck's error list and switch to its buffer." + (interactive) + (flycheck-list-errors) + (switch-to-buffer-other-window "*Flycheck errors*")) + :bind ("C-; ?" . cj/flycheck-list-errors) :config ;; don't warn about double-spaces after period. (setq-default checkdoc-arguments '("sentence-end-double-space" nil "warn-escape" nil)) @@ -35,13 +41,5 @@ :modes (text-mode markdown-mode gfm-mode)) (add-to-list 'flycheck-checkers 'proselint)) -;; ;; https://github.com/emacs-grammarly/flycheck-grammarly -;; (use-package flycheck-grammarly -;; :defer 1 -;; :after flycheck -;; :config -;; (with-eval-after-load 'flycheck -;; (flycheck-grammarly-setup))) - (provide 'flycheck-config) ;;; flycheck-config.el ends here diff --git a/modules/font-config.el b/modules/font-config.el index a5ed2771..6678d2f9 100644 --- a/modules/font-config.el +++ b/modules/font-config.el @@ -41,10 +41,18 @@ :default-family "Codelia Ligatures") (Liberation_Mono-Only :default-family "Liberation Mono") + (12-point-font + :default-height 120) + (13-point-font + :default-height 130) + (11-point-font + :default-height 110) + (10-point-font + :default-height 100) (t ;; shared fallback properties go here :default-family "Berkeley Mono" :default-weight regular - :default-height 130 + :default-height 110 :fixed-pitch-family nil ;; falls back to :default-family :fixed-pitch-weight nil ;; falls back to :default-weight :fixed-pitch-height 1.0 @@ -70,7 +78,7 @@ Note that server-after-make-frame-hook is available only in Emacs 27+." (interactive) (fontaine-set-preset 'Berkeley-Only) (if (daemonp) - (remove-hook 'server-after-make-frame-hook #'cj/apply-font-settings-after-ui-creation))) + (remove-hook 'server-after-make-frame-hook #'cj/apply-font-settings-after-ui-creation))) (if (daemonp) (add-hook 'server-after-make-frame-hook #'cj/apply-font-settings-after-ui-creation) @@ -141,7 +149,7 @@ Note that server-after-make-frame-hook is available only in Emacs 27+." (interactive) (pop-to-buffer "*Available Fonts*" '(display-buffer-in-side-window . ((side . right)(window-width . fit-window-to-buffer)))) (let ((font-list (font-family-list))) - (setq font-list (remove-duplicates (cl-sort font-list 'string-lessp :key 'downcase))) + (setq font-list (cl-remove-duplicates (cl-sort font-list 'string-lessp :key 'downcase))) (with-current-buffer "*Available Fonts*" (erase-buffer) (dolist (font-family font-list) diff --git a/modules/help-utils.el b/modules/help-utils.el index 66286704..199e6815 100644 --- a/modules/help-utils.el +++ b/modules/help-utils.el @@ -10,7 +10,7 @@ (global-set-key (kbd "C-h P") 'list-packages) ;; bring up the package menu -;;;; ---------------------------- Helpful ---------------------------- +;; ---------------------------------- Helpful ---------------------------------- (use-package helpful :defer .5 @@ -27,7 +27,7 @@ (setq counsel-describe-variable-function #'helpful-variable)) -;;;; ------------------------------ Man ------------------------------ +;; ------------------------------------ Man ------------------------------------ (use-package man :defer 1 @@ -35,7 +35,7 @@ :bind ("C-h M" . man)) -;;;; ------------------------------ Info ----------------------------- +;; ------------------------------------ Info ----------------------------------- (use-package info :defer 1 @@ -58,7 +58,7 @@ (push (concat user-emacs-directory "assets/info") Info-directory-list) (add-to-list 'auto-mode-alist '("\\.info\\'" . open-with-info-mode))) -;;;; ---------------------------- Devdocs ---------------------------- +;; ---------------------------------- Devdocs ---------------------------------- (use-package devdocs :defer 1 @@ -72,18 +72,17 @@ (define-key devdocs-mode-map "b" 'devdocs-go-back) (define-key devdocs-mode-map "f" 'devdocs-go-forward)) -;;;; ------------------------------- TLDR ------------------------------ +;; ------------------------------------ TLDR ----------------------------------- (use-package tldr :defer 1 :bind ("C-h T" . tldr)) -;;;; -------------------------- Wiki-Summary ------------------------- +;; -------------------------------- Wiki Summary ------------------------------- (use-package wiki-summary :defer 1 :bind ("C-h W" . wiki-summary)) - (provide 'help-utils) ;;; help-utils.el ends here diff --git a/modules/org-capture-config.el b/modules/org-capture-config.el index 2ce8494b..3cdb45fd 100644 --- a/modules/org-capture-config.el +++ b/modules/org-capture-config.el @@ -1,8 +1,8 @@ -;;; org-capture-config.el --- Org Capture/Refile -*- lexical-binding: t; -*- +;;; org-capture-config.el --- Org Capture Configuration -*- lexical-binding: t; -*- ;;; Commentary: ;; Customizations related to org-capture and org-refile is here. -;; This includes 'web-clipper' functionality. +;; This includes 'org-webpage-clipper' functionality. ;; To ensure the code below is only loaded after org-mode, all code is wrapped in an ;; eval-after-load function. @@ -13,93 +13,94 @@ (with-eval-after-load 'org - ;; ---------------------- Org-Website-Clipper ---------------------- - ;; Saves a copy of the page eww is visiting in an org file for offline reading - ;; In other words, it's a "Poor Man's Pocket/Instapaper" + ;; ---------------------- Org-Webpage-Clipper ---------------------- + ;; Saves a copy of the page eww is visiting in the 'articles'-file for offline + ;; reading. In other words, it's a "Poor Man's Pocket/Instapaper" - - (defun org-website-clipper () - "Capture a web page for later viewing in an org-file. + (defun org-webpage-clipper () + "Capture a web page for later viewing in an org-file. Encodes all links and marks that may interfere with org mode display, then inserts the content into a file for later offline use. This is meant to be used in coordination with an org-capture-template. Example Template: - (\"w\" \"Website\" plain (function org-website-clipper) - \"* %a\\nCaptured On: %U\\n\" :immediate-finish t))) - -Requires Emacs 15 and the 2017-02-12 or later version of org-eww.el." - (interactive) - - ;; Ensure valid major mode before encoding - (cond - ((eq major-mode 'w3m-mode) - (org-w3m-copy-for-org-mode)) - ((eq major-mode 'eww-mode) - (org-eww-copy-for-org-mode)) - (t - (error "Not valid -- must be in w3m or eww mode"))) - - ;; Check for full path to the archive file. Create missing directories. - (unless (file-exists-p article-file) - (let ((dir (file-name-directory article-file))) - (unless (file-exists-p dir) - (make-directory dir)))) - - ;; Move to end of file and insert blank line for org-capture to add timestamp, etc. - (find-file article-file) - (goto-char (point-max)) - (insert "\n\n\n\n\n") - - ;; Insert the web content keeping our place. - (save-excursion (yank)) - - ;; Remove page info from kill ring. Also, fix the yank pointer. - (setq kill-ring (cdr kill-ring)) - (setq kill-ring-yank-pointer kill-ring) - - ;; Final repositioning. - (forward-line -1)) + +,@ +(\"w\" \"Website\" plain (function org-webpage-clipper) +\"* %a\\nArticle Link: %L\\nCaptured On: %U\\n\\n\" :immediate-finish t) +'@" + (interactive) + + ;; Ensure valid major mode before encoding + (cond + ((eq major-mode 'w3m-mode) + (org-w3m-copy-for-org-mode)) + ((eq major-mode 'eww-mode) + (org-eww-copy-for-org-mode)) + (t + (error "Not valid -- must be in w3m or eww mode"))) + + ;; Check for full path to the archive file. Create missing directories. + (unless (file-exists-p article-file) + (let ((dir (file-name-directory article-file))) + (unless (file-exists-p dir) + (make-directory dir)))) + + ;; Move to end of file and insert blank line for org-capture to add timestamp, etc. + (find-file article-file) + (goto-char (point-max)) + (insert "\n\n\n\n\n") + + ;; Insert the web content keeping our place. + (save-excursion (yank)) + + ;; Remove page info from kill ring. Also, fix the yank pointer. + (setq kill-ring (cdr kill-ring)) + (setq kill-ring-yank-pointer kill-ring) + + ;; Final repositioning. + (forward-line -1)) ;;;; --------------------------------- Functions ------------------------------- (defun org-capture-pdf-active-region () - "Capture the active region of the pdf-view buffer. + "Capture the active region of the pdf-view buffer. Intended to be called within an org capture template." - (let* ((pdf-buf-name (plist-get org-capture-plist :original-buffer)) - (pdf-buf (get-buffer pdf-buf-name))) - (if (buffer-live-p pdf-buf) - (with-current-buffer pdf-buf - (car (pdf-view-active-region-text))) - (user-error "Buffer %S not alive." pdf-buf-name)))) + (let* ((pdf-buf-name (plist-get org-capture-plist :original-buffer)) + (pdf-buf (get-buffer pdf-buf-name))) + (if (buffer-live-p pdf-buf) + (with-current-buffer pdf-buf + (car (pdf-view-active-region-text))) + (user-error "Buffer %S not alive" pdf-buf-name)))) ;;;; --------------------------- Org-Capture Templates ------------------------- ;; ORG-CAPTURE TEMPLATES (setq org-protocol-default-template-key "L") (setq org-capture-templates - '( - ("e" "Event" entry (file+headline schedule-file "Scheduled Events") - "* %?\nWHEN: %^t" :prepend t) + '( + ("e" "Event" entry (file+headline schedule-file "Scheduled Events") + "* %?\nWHEN: %^t" :prepend t) - ("E" "Epub Text" entry (file+headline inbox-file "Inbox") - "* %?\n#+BEGIN_QUOTE\n %i\n#+END_QUOTE\nSource: [[%:link][%(buffer-name (org-capture-get :original-buffer))]]\nCaptured On: %U" :prepend t) + ("E" "Epub Text" entry (file+headline inbox-file "Inbox") + "* %?\n#+BEGIN_QUOTE\n %i\n#+END_QUOTE\nSource: [[%:link][%(buffer-name (org-capture-get :original-buffer))]]\nCaptured On: %U" :prepend t) - ("P" "PDF Text" entry (file+headline inbox-file "Inbox") - "* %?\n#+BEGIN_QUOTE\n %(org-capture-pdf-active-region)\n#+END_QUOTE\nSource:[[%L][%(buffer-name (org-capture-get :original-buffer))]]\nCaptured On: %U" :prepend t) + ("P" "PDF Text" entry (file+headline inbox-file "Inbox") + "* %?\n#+BEGIN_QUOTE\n %(org-capture-pdf-active-region)\n#+END_QUOTE\nSource:[[%L][%(buffer-name (org-capture-get :original-buffer))]]\nCaptured On: %U" :prepend t) - ("p" "Link with Selection" entry (file+headline inbox-file "Inbox") - "* TODO %?\n#+BEGIN_QUOTE\n%i\n#+END_QUOTE\n[[%:link][%:description]]\nCaptured On: %U" :prepend t) + ("p" "Link with Selection" entry (file+headline inbox-file "Inbox") + "* TODO %?\n#+BEGIN_QUOTE\n%i\n#+END_QUOTE\n[[%:link][%:description]]\nCaptured On: %U" :prepend t) - ("L" "Link" entry (file+headline inbox-file "Inbox") - "* TODO %?\n[[%:link][%:description]]\nCaptured On: %U" :prepend t) + ("L" "Link" entry (file+headline inbox-file "Inbox") + "* TODO %?\n[[%:link][%:description]]\nCaptured On: %U" :prepend t) - ("m" "Mu4e Email" entry (file+headline inbox-file "Inbox") - "* TODO %?\n[[%:link][%:description]]\nCaptured On: %U" :prepend t) + ("m" "Mu4e Email" entry (file+headline inbox-file "Inbox") + "* TODO %?%(if (string= \"%i\" \"\") \"\" \"\n#+BEGIN_QUOTE\n%i\n#+END_QUOTE\")\n[[%:link][%:description]]\nCaptured On: %U" + :prepend t) - ("w" "Website" plain - (function org-website-clipper) - "* %a\nArticle Link: %L\nCaptured On: %U\n\n" :immediate-finish t))) + ("w" "Website" plain + (function org-webpage-clipper) + "* %a\nArticle Link: %L\nCaptured On: %U\n\n" :immediate-finish t))) ) ;; end with-eval-after-load 'org diff --git a/modules/org-drill-config.el b/modules/org-drill-config.el index f2120c33..127a94f7 100644 --- a/modules/org-drill-config.el +++ b/modules/org-drill-config.el @@ -14,6 +14,7 @@ ;;; Code: +(require 'custom-functions) ;; for cj/merge-list-to-list (defvar org-drill-files (directory-files (concat sync-dir "drill/") t directory-files-no-dot-files-regexp)) diff --git a/modules/org-roam-config.el b/modules/org-roam-config.el index 1852cde5..c9a5bad1 100644 --- a/modules/org-roam-config.el +++ b/modules/org-roam-config.el @@ -94,7 +94,7 @@ ARGS represents the node name to link." ;; -------------------------- Org Roam Find Functions -------------------------- (defun cj/org-roam-find-node (tag template-key template-file) - "List all node of type \\=`TAG\\=` in completing read for selection or creation." + "List all node of type \='TAG\=' in completing read for selection or creation." (interactive) ;; Add the project file to the agenda after capture is finished (add-hook 'org-capture-after-finalize-hook #'cj/org-roam-add-node-to-agenda-files-finalize-hook) @@ -111,24 +111,24 @@ ARGS represents the node name to link." :unnarrowed t)))) (defun cj/org-roam-find-topic () - "List all node of type \\=`topic\\=` in completing read for selection or creation." + "List all node of type \=`topic\=` in completing read for selection or creation." (interactive) (cj/org-roam-find-node "Topic" "t" "~/sync/org/roam/templates/topic.org")) (defun cj/org-roam-find-recipe () - "List all node of type \\=`recipe\\=` in completing read for selection or creation." + "List all node of type \=`recipe\=` in completing read for selection or creation." (interactive) (cj/org-roam-find-node "Recipe" "r" "~/sync/org/roam/templates/recipe.org")) (defun cj/org-roam-find-project () - "List all node of type \\='project\\=' in completing read for selection or creation." + "List all node of type \='project\=' in completing read for selection or creation." (interactive) (cj/org-roam-find-node "Project" "p" "~/sync/org/roam/templates/project.org")) ;; ---------------------- Org Capture After Finalize Hook ---------------------- (defun cj/org-roam-add-node-to-agenda-files-finalize-hook () - "Add the captured project file to \\='org-agenda-files\\='." + "Add the captured project file to \='org-agenda-files\='." ;; Remove the hook since it was added temporarily (remove-hook 'org-capture-after-finalize-hook #'cj/org-roam-add-node-to-agenda-files-finalize-hook) diff --git a/modules/prog-c.el b/modules/prog-c.el index d3e29d44..3dd4eade 100644 --- a/modules/prog-c.el +++ b/modules/prog-c.el @@ -8,7 +8,7 @@ ;;;; ------------------------------ C-Mode Settings ------------------------------ (defun cj/c-mode-settings () - "Settings for \\='c-mode\\='." + "Settings for \='c-mode\='." (setq-default indent-tabs-mode nil) ;; spaces, not tabs (setq-default c-basic-offset 4) ;; 4 spaces offset (setq c-default-style "stroustrup") ;; k&r c, 2nd edition diff --git a/modules/prog-comments.el b/modules/prog-comments.el index 61d5e328..62193d6f 100644 --- a/modules/prog-comments.el +++ b/modules/prog-comments.el @@ -30,47 +30,46 @@ ;; per major mode. (defun cj/comment-centered (&optional comment-char) - "Insert comment text centered around the 'COMMENT-CHAR' character. -Will default to the '#' character if called with no arguments. Uses -\\="fill-column"\\= or 80 (whichever is less) to calculate the comment length. -Will begin and end the line with the appropriate comment symbols based on -programming mode." + "Insert comment text centered around the COMMENT-CHAR character. +Will default to the '#' character if called with no arguments. Uses the value of +fill-column or 80 (whichever is less) to calculate the comment length. Will +begin and end the line with the appropriate comment symbols based on programming mode." (interactive) (if (not (char-or-string-p comment-char)) - (setq comment-char "#")) + (setq comment-char "#")) (let* ((comment (capitalize (string-trim (read-from-minibuffer "Comment: ")))) - (fill-column (min fill-column 80)) - (comment-length (length comment)) - (comment-start-length (length comment-start)) - (comment-end-length (length comment-end)) - (current-column-pos (current-column)) - (space-on-each-side (/ (- fill-column - current-column-pos - comment-length - (length comment-start) - (length comment-end) - ;; Single space on each side of comment - (if (> comment-length 0) 2 0) - ;; Single space after comment syntax sting - 1) - 2))) + (fill-column (min fill-column 80)) + (comment-length (length comment)) + (comment-start-length (length comment-start)) + (comment-end-length (length comment-end)) + (current-column-pos (current-column)) + (space-on-each-side (/ (- fill-column + current-column-pos + comment-length + (length comment-start) + (length comment-end) + ;; Single space on each side of comment + (if (> comment-length 0) 2 0) + ;; Single space after comment syntax sting + 1) + 2))) (if (< space-on-each-side 2) - (message "Comment string is too big to fit in one line") - (progn - (insert comment-start) - (when (equal comment-start ";") ; emacs-lisp line comments are ;; - (insert comment-start)) ; so insert comment-char again - (insert " ") - (dotimes (_ space-on-each-side) (insert comment-char)) - (when (> comment-length 0) (insert " ")) - (insert comment) - (when (> comment-length 0) (insert " ")) - (dotimes (_ (if (= (% comment-length 2) 0) - (- space-on-each-side 1) - space-on-each-side)) - (insert comment-char)) - (insert " ") - (insert comment-end))))) + (message "Comment string is too big to fit in one line") + (progn + (insert comment-start) + (when (equal comment-start ";") ; emacs-lisp line comments are ;; + (insert comment-start)) ; so insert comment-char again + (insert " ") + (dotimes (_ space-on-each-side) (insert comment-char)) + (when (> comment-length 0) (insert " ")) + (insert comment) + (when (> comment-length 0) (insert " ")) + (dotimes (_ (if (= (% comment-length 2) 0) + (- space-on-each-side 1) + space-on-each-side)) + (insert comment-char)) + (insert " ") + (insert comment-end))))) (global-set-key (kbd "C-z c l") 'cj/comment-line) ;; ------------------------------- Comment Hyphen ------------------------------ diff --git a/modules/prog-general.el b/modules/prog-general.el index b374daf3..1f1b8e4e 100644 --- a/modules/prog-general.el +++ b/modules/prog-general.el @@ -49,19 +49,16 @@ ("" . bicycle-cycle-global))) ;; --------------------------- Project Switch Actions -------------------------- -;; if there's a todo or readme file in the project, display it when switching +;; when switching projects, display the todo file if it exists, or display +;; magit-status if it doesn't. (defun cj/project-switch-actions () "Opens TODO or README file on projectile switch project. If none exists, it opens magit-status." - ;; (dired-sidebar-hide-sidebar) - ;; (dired-sidebar-show-sidebar) - (let ((todo-file - (cond - ((file-exists-p (concat (projectile-project-root) "TODO.org")) "TODO.org") - ((file-exists-p (concat (projectile-project-root) "todo.org")) "todo.org") - ((file-exists-p (concat (projectile-project-root) "TODO.md")) "TODO.md") - ((file-exists-p (concat (projectile-project-root) "TODO.txt")) "TODO.txt")))) + (let* ((files (directory-files (projectile-project-root))) + (todo-file (seq-find (lambda (file) + (string-match-p "todo\\.\\(org\\|md\\|txt\\)\\'" + (downcase file))) files))) (if todo-file (find-file (concat (projectile-project-root) todo-file)) (magit-status)))) @@ -69,16 +66,11 @@ If none exists, it opens magit-status." ;; --------------------------------- Projectile -------------------------------- ;; project support -;; notify user when scanning for projects -(defun cj/projectile-identify-projects () - (message "No project cache found. Identifying projects....") - (projectile-discover-projects-in-search-path)) - ;; only run discover projects when there's no bookmarks file (defun cj/projectile-schedule-project-discovery () - (let ((bookmark-file (concat user-emacs-directory "/projectile-bookmarks.eld"))) - (unless (file-exists-p bookmark-file) - (run-at-time "3" nil 'cj/projectile-identify-projects)))) + (let ((projectile-bookmark-file (concat user-emacs-directory "/projectile-bookmarks.eld"))) + (unless (file-exists-p projectile-bookmark-file) + (run-at-time "3" nil 'projectile-discover-projects-in-search-path)))) (use-package projectile :defer .5 @@ -92,7 +84,9 @@ If none exists, it opens magit-status." (projectile-project-search-path '("~/code" "~/projects")) :config + ;; scan for projects if none are defined (cj/projectile-schedule-project-discovery) + ;; don't reuse comp buffers between projects (setq projectile-per-project-compilation-buffer t) (projectile-mode) @@ -120,7 +114,15 @@ If none exists, it opens magit-status." :after projectile :bind (:map projectile-command-map - ("G" . projectile-ripgrep))) + ("G" . projectile-ripgrep)) + :config + + ;; when running ripgrep searches, end with the results window selected + (defun switch-to-ripgrep-results (&rest _) + "Switch to *ripgrep-search* buffer in other window." + (pop-to-buffer "*ripgrep-search*")) + + (advice-add 'ripgrep-regexp :after #'switch-to-ripgrep-results)) ;; ---------------------------------- Snippets --------------------------------- ;; reusable code and text. @@ -174,7 +176,7 @@ If none exists, it opens magit-status." ("WIP" . "#1E90FF")))) ;; --------------------------- Whitespace Management --------------------------- -;; when saving your file, trims unneeded whitespace only from lines you've modified +;; trims trailing whitespace only from lines you've modified when saving buffer (use-package ws-butler :defer .5 @@ -187,7 +189,7 @@ If none exists, it opens magit-status." (setq ws-butler-convert-leading-tabs-or-spaces t)) ;; ----------------- Auto-Close Successful Compilation Windows ----------------- -;; from 'enberg' on #emacs +;; close compilation windows when successful. from 'enberg' on #emacs (add-hook 'compilation-finish-functions (lambda (buf str) diff --git a/modules/prog-go.el b/modules/prog-go.el index 617fceaa..70e1f832 100644 --- a/modules/prog-go.el +++ b/modules/prog-go.el @@ -5,6 +5,8 @@ ;;; Code: +;; ---------------------------------- Go Setup --------------------------------- +;; golang preferences (defun cj/go-setup () "My default code preferences for Golang." @@ -20,7 +22,8 @@ (electric-pair-mode t)) ;; match delimiters automatically (add-hook 'go-mode-hook 'cj/go-setup) -;;;; ---------------------------- Go Mode ---------------------------- +;; ---------------------------------- Go Mode ---------------------------------- +;; go mode configuration (use-package go-mode :bind (:map go-mode-map @@ -34,52 +37,5 @@ ;; go install golang.org/x/tools/cmd/goimports@latest (setq gofmt-command "goimports")) -;; (use-package go-mode -;; :config -;; (general-define-key -;; :keymaps 'go-mode-map -;; :states '(normal) -;; "K" #'godoc-at-point -;; "C-]" #'godef-jump) - -;; (general-define-key -;; :keymaps 'go-mode-map -;; :states '(normal) -;; :prefix mpereira/leader -;; "tt" #'go-test-current-test -;; "tT" #'go-test-current-file -;; "pt" #'go-test-current-project)) - -;; ------------- Configure Emacs To Find Go Project Root ------------- - -;; Note: This appears to interfere with tramp. Before re-enabling, this -;; should have a toggle and turned off when working in tramp. - -;; (require 'project) - -;; (defun project-find-go-module (dir) -;; (when-let ((root (locate-dominating-file dir "go.mod"))) -;; (cons 'go-module root))) - -;; (cl-defmethod project-root ((project (head go-module))) -;; (cdr project)) - -;; (add-hook 'project-find-functions #'project-find-go-module) - -;; -------------------- Enable Eglot Integrations -------------------- - -;; The depth of -10 places this before eglot's willSave notification, -;; so that that notification reports the actual contents that will be saved. -;; (defun eglot-format-buffer-on-save () -;; (add-hook 'before-save-hook #'eglot-format-buffer -10 t)) -;; (add-hook 'go-mode-hook #'eglot-format-buffer-on-save) - -;; -------------------- Configure Gopls Via Eglot -------------------- - -;; (setq-default eglot-workspace-configuration -;; '((:gopls . -;; ((staticcheck . t) -;; (matcher . "CaseSensitive"))))) - (provide 'prog-go) ;;; prog-go.el ends here diff --git a/modules/prog-python.el b/modules/prog-python.el index 5dc06bf6..e85ae548 100644 --- a/modules/prog-python.el +++ b/modules/prog-python.el @@ -5,46 +5,52 @@ ;;; Code: -;; ------------------------- General Settings ------------------------ - -(add-hook 'python-mode-hook (lambda () (setq indent-tabs-mode nil))) ;; use spaces, not tabs +;; -------------------------------- Python Setup ------------------------------- +;; preferences for Python programming + +(defun cj/python-setup () + "My default code preferences for Python coding." + (tree-sitter-hl-mode) ;; use tree-sitter's highlighting + (hs-minor-mode) ;; folding + (company-mode) ;; completion framework + (flyspell-prog-mode) ;; spell check comments + (superword-mode) ;; see-this-as-one-word + (setq-default fill-column 80) ;; wrap at 80 columns + (setq-default tab-width 4) ;; set the tab width to 4 spaces + (setq-default standard-indent 4) ;; indent 4 spaces + (setq-default indent-tabs-mode nil) ;; disable tab characters + (electric-pair-mode t)) ;; match delimiters automatically ;; ----------------------------------- Python ---------------------------------- -;; remove the guess indent python message +;; configuration for Emacs' built-in Python editing support (use-package python - :config - (setq python-indent-guess-indent-offset-verbose nil)) - -;; --------------------------- Python Mode --------------------------- - -(use-package python-mode :ensure nil ;; built-in :hook - ((python-mode . flyspell-prog-mode) - (python-mode . superword-mode) - (python-mode . company-mode) - (python-mode . electric-pair-mode)) ;; auto-complete braces and pairs + (python-mode . cj/python-setup) :custom (python-shell-interpreter "python3") - (setq python-indent-offset 4)) ;; 4 spaces default indent + :config + ;; remove the "guess indent" python message + (setq python-indent-guess-indent-offset-verbose nil)) ;; ----------------------------------- Poetry ---------------------------------- ;; virtual environments and dependencies -;; (use-package poetry -;; :defer t -;; :config -;; ;; Checks for the correct virtualenv. Better strategy IMO because the default -;; ;; one is quite slow. -;; (setq poetry-tracking-strategy 'switch-buffer) -;; :hook (python-mode . poetry-tracking-mode)) +(use-package poetry + :defer t + :after (python) + :hook (python-mode . poetry-tracking-mode) + :config + ;; Checks for the correct virtualenv. Better strategy IMO because the default + ;; one is quite slow. + (setq poetry-tracking-strategy 'switch-buffer)) ;; ---------------------------------- Blacken ---------------------------------- ;; formatting on save (use-package blacken - :defer t + :defer 1 :custom (blacken-allow-py36 t) (blacken-skip-string-normalization t) @@ -54,20 +60,21 @@ ;; automatically insert NumPy style docstrings in Python function definitions (use-package numpydoc - :defer t + :defer 1 :custom (numpydoc-insert-examples-block nil) (numpydoc-template-long nil) :bind (:map python-mode-map ("C-c C-n" . numpydoc-generate))) -;; ------------------------------------ Toml ----------------------------------- +;; ------------------------------------ TOML ----------------------------------- +;; editing support and documentation for TOML files (use-package toml-mode - :defer .5) + :defer 1) (use-package eldoc-toml - :defer .5) + :defer 1) (provide 'prog-python) diff --git a/modules/show-kill-ring.el b/modules/show-kill-ring.el index fdc400ee..e6405c6d 100644 --- a/modules/show-kill-ring.el +++ b/modules/show-kill-ring.el @@ -1,21 +1,24 @@ ;;; show-kill-ring --- Displays Previous Kill Ring Entries -*- lexical-binding: t; -*-;; Show Kill Ring ;; Stolen from Steve Yegge when he wasn't looking - ;;; Commentary: ;; Browse items you've previously killed. - ;;; Code: (require 'cl-lib) (defvar show-kill-max-item-size 1000 - "This represents the size of a \\='kill ring\\=' entry. -A positive number means to limit the display of \\='kill-ring\\=' items to + "This represents the size of a \='kill ring\=' entry. +A positive number means to limit the display of \='kill-ring\=' items to that number of characters.") +(defun show-kill-ring-exit () + "Exit the show-kill-ring buffer." + (interactive) + (quit-window t)) + (defun show-kill-ring () "Show the current contents of the kill ring in a separate buffer. This makes it easy to figure out which prefix to pass to yank." @@ -39,7 +42,7 @@ This makes it easy to figure out which prefix to pass to yank." ;; show each of the items in the kill ring, in order (while temp ;; insert our little divider - (insert (concat "\n" bar item (prin1-to-string count) " " + (insert (concat "\n" bar item (prin1-to-string count) " " (if (< count 10) bar2 bar) "\n")) ;; if this is the yank pointer target, grab it @@ -52,12 +55,16 @@ This makes it easy to figure out which prefix to pass to yank." (setq temp (cdr temp))) ;; show info about yank item - (show-kill-insert-footer yptr ynum) + (show-kill-insert-footer yptr ynum) + + (use-local-map (make-sparse-keymap)) + (local-set-key "q" 'show-kill-ring-exit) ;; show it - (goto-char (point-min)) - (set-buffer-modified-p nil) - (display-buffer buf))) + (goto-char (point-min)) + (setq buffer-read-only t) + (set-buffer-modified-p nil) + (pop-to-buffer buf))) (defun show-kill-insert-item (item) "Insert an ITEM from the kill ring into the current buffer. diff --git a/modules/system-utils.el b/modules/system-utils.el index bab4f01a..f5967520 100644 --- a/modules/system-utils.el +++ b/modules/system-utils.el @@ -18,27 +18,61 @@ (setq nerd-icons-ibuffer-color-icon t) (setq nerd-icons-ibuffer-human-readable-size t)) -;; ------------------------------ Bury Alive List ------------------------------ -;; buries buffers on the 'cj/bury-alive-list' list rather than killing them. The -;; keybinding for kill-buffer is remapped to this function. - -(defvar cj/bury-alive-list '("*dashboard*" "*scratch*" "*Messages*") +;; ------------------------ Killing Buffers And Windows ------------------------ +;; Accidentally killing buffers can lose data. these functions override common +;; buffer killing functions and buries buffers on the 'cj/buffer-bury-alive-list' list +;; rather than killing them. Allows for interactive adding to the +;; 'cj/buffer-bury-alive-list' via 'C-u C-x k' + +;; BUFFER BURY ALIVE LIST +(defvar cj/buffer-bury-alive-list '("*dashboard*" "*scratch*" "*Messages*") "Buffers that shouldn't be killed, but buried instead.") -(defun cj/kill-or-bury-alive (target-buffer) +;; KILL BUFFER AND WINDOW +(defun cj/kill-buffer-and-window () + "Kill current buffer and window. +Buries buffers instead if they are on the cj/buffer-bury-alive-list." + (interactive) + (let ((target-buffer (current-buffer))) + (delete-window) + (cj/kill-buffer-or-bury-alive target-buffer))) +(global-set-key (kbd "M-C") 'cj/kill-buffer-and-window) + +;; KILL OTHER WINDOW +(defun cj/kill-other-window () + "Close the next window and kill any buffer in it. +Buries buffers instead if they are on the cj/buffer-bury-alive-list." + (interactive) + (other-window 1) + (let ((target-buffer (current-buffer))) + (if (not (one-window-p)) (delete-window)) + (cj/kill-buffer-or-bury-alive target-buffer))) +(global-set-key (kbd "M-O") 'cj/kill-other-window) + +;; KILL ALL OTHER BUFFERS AND WINDOWS +(defun cj/kill-all-other-buffers-and-windows () + "Save buffers, then kill all other buffers and windows. +Buries buffers instead if they are on the cj/buffer-bury-alive-list." + (interactive) + (save-some-buffers) + (delete-other-windows) + (mapc 'cj/kill-buffer-or-bury-alive (delq (current-buffer) (buffer-list)))) +(global-set-key (kbd "M-M") 'cj/kill-all-other-buffers-and-windows) + +;; KILL BUFFER OR BURY ALIVE +(defun cj/kill-buffer-or-bury-alive (target-buffer) "Bury buffers on the bury-instead-list rather than killing them. -With a prefix argument, add the TARGET-BUFFER to \='cj/bury-alive-list\='." +With a prefix argument, add the TARGET-BUFFER to \='cj/buffer-bury-alive-list\='." (interactive "bKill or Add to bury (don't kill) buffer list: ") (with-current-buffer target-buffer (if current-prefix-arg (progn - (add-to-list 'cj/bury-alive-list (buffer-name (current-buffer))) + (add-to-list 'cj/buffer-bury-alive-list (buffer-name (current-buffer))) (message "Added %s to bury-alive-list" (buffer-name (current-buffer)))) - (if (member (buffer-name (current-buffer)) cj/bury-alive-list) + (if (member (buffer-name (current-buffer)) cj/buffer-bury-alive-list) (bury-buffer) (kill-buffer (current-buffer)))))) - -(global-set-key [remap kill-buffer] #'cj/kill-or-bury-alive) +(global-set-key [remap kill-buffer] #'cj/kill-buffer-or-bury-alive) ;; --------------------------- Emacs Server Shutdown --------------------------- ;; shuts down the Emacs server. useful with emacsclient. @@ -243,14 +277,16 @@ The function offers the option to open the `macros-file' for editing when called (write-region ";;; -*- lexical-binding: t -*-\n" nil macros-file) (message "Saved macros file not found, so created: %s" macros-file))) -;; ----------------------------- Merge List To List ---------------------------- -;; Convenience method for merging two lists together -;; https://emacs.stackexchange.com/questions/38008/adding-many-items-to-a-list/68048#68048 +;; -------------------------------- Abbrev Mode -------------------------------- +;; word abbreviations mode. used to auto-correct spelling (see flyspell-config) -(defun cj/merge-list-to-list (dst src) - "Merge content of the 2nd list SRC with the 1st one DST." - (set dst - (append (eval dst) src))) +(use-package abbrev-mode + :ensure nil ;; built-in + :defer .5 + :custom + (abbrev-file-name (concat user-emacs-directory "assets/abbrev_defs")) ;; keep project root clean + :config + (abbrev-mode)) ;; use abbrev mode everywhere ;; -------------------------------- Log Silently ------------------------------- ;; utility function to log silently to the Messages buffer (for debugging/warning) diff --git a/modules/test-code.el b/modules/test-code.el index 6c586f03..74179c95 100644 --- a/modules/test-code.el +++ b/modules/test-code.el @@ -118,25 +118,7 @@ otherwise use the default location in `cj/recording-location'." :after xterm-color :load-path ("~/code/emacs-wttrin") :bind - ("C-c w" . wttrin) - :custom - (wttrin-unit-system "u") - (wttrin-default-cities '( - "Albuquerque, New Mexico" - "Berkeley, CA" - "Boston, Massachussetts" - "Chicago, Illinois" - "Huntington Beach, CA" - "Littlestown, PA" - "London, UK" - "New Orleans, LA" - "New York, New York" - "Oakland, California" - "Paris, FR" - "San Francisco, California" - "Santa Fe, New Mexico" - "Yerevan, AM" - ))) + ("M-W" . wttrin)) ;; dependency for wttrin (use-package xterm-color diff --git a/modules/text-config.el b/modules/text-config.el index 2924521d..221ca71b 100644 --- a/modules/text-config.el +++ b/modules/text-config.el @@ -8,7 +8,7 @@ ;; ------------------------------- Text Settings ------------------------------- (defun cj/text-mode-settings () - "Personal settings for \\='text-mode\\='." + "Personal settings for \='text-mode\='." (turn-on-visual-line-mode) ;; wrap text in text modes (additional modes set elsewhere) (setq-default indent-tabs-mode nil) ;; indentation should not insert tabs (setq sentence-end-double-space nil)) ;; in the 21st century, sentences may end w/ a single space diff --git a/modules/ui-navigation.el b/modules/ui-navigation.el index 44e5ae5d..e9f3cdc5 100644 --- a/modules/ui-navigation.el +++ b/modules/ui-navigation.el @@ -95,31 +95,6 @@ This function won't work with more than one split window." ;; SWAP WINDOW POSITIONS (global-set-key (kbd "M-S") 'window-swap-states) -;; ------------------------------ Killing Windows ------------------------------ - -;; KILL THIS WINDOW -(global-set-key (kbd "M-C") 'kill-buffer-and-window) - -;; KILL OTHER WINDOW -(defun cj/kill-other-window () - "Close the next window and kill any buffer in it." - (interactive) - (other-window 1) - (kill-this-buffer) - (if (not (one-window-p)) - (delete-window))) -(global-set-key (kbd "M-O") 'cj/kill-other-window) - - -;; KILL-ALL-OTHER-BUFFERS -(defun cj/kill-all-other-buffers-and-windows () - "Save buffers, then kill all other buffers and windows." - (interactive) - (save-some-buffers) - (delete-other-windows) - (mapc 'kill-buffer (delq (current-buffer) (buffer-list)))) -(global-set-key (kbd "M-M") 'cj/kill-all-other-buffers-and-windows) - ;; ---------------------------- Buffer Manipulation ---------------------------- ;; MOVE BUFFER -- cgit v1.2.3