From b095833f8e499bcc69ccd672bd68a15cb565d8e6 Mon Sep 17 00:00:00 2001 From: Ade Attwood Date: Tue, 24 Sep 2024 20:26:45 +0100 Subject: [PATCH] refactor(emacs): move emacs config to be really minimal Yea thats it, we are bringing back the use of emacs. This is very much the "why choose" way and using the correct tool for the job. I have now gone back to emacs for all the productivity / notes related stuff. Code will still continue to be in neovim. The developer experience nvim brings is really nice, the community around plugins is amazing, you can really get your work done fast. What it does not have is org-mode, this is the feature of emacs and I would like to go back to using it. Emacs has now replaced todoist, obsidian and gmail web client. Singularly, I think these tools are on par if not better sometimes that the emacs replacement. However, together with org-link, this is where the power is. Being able to quickly capture tasks that link back to emails is supper powerful. The org-mode stuff is generally the same. It uses evil mode, so my fingers don't get lost, Doom to make it look good. All the key bindings are the same, it's just ripped out all the code and language support. The only code related package is company so I can get completion on the roam links just like you do in obsidian. Email is powered by notmuch. I said this replaces the gmail web client, however, it's really a couple of other too. The main benefit over have this is you can have one inbox for multiple accounts. Having a single list for your inbox is a grate way to keep track of everything. This will org capture and org links works perfectly with the inbox zero flow, having the ability to file things away not lose track of them is really nice. --- modules/emacs.lua | 26 + site-modules/core/files/emacs/init.el | 500 +++++++++++---- .../core/files/emacs/mbwatch/mbwatch.el | 61 ++ .../core/files/emacs/snippets/README.md | 6 - .../core/files/emacs/snippets/c++-mode/once | 11 - .../core/files/emacs/snippets/c++-mode/pbsd | 10 - .../core/files/emacs/snippets/c-mode/once | 11 - .../core/files/emacs/snippets/c-mode/pbsd | 10 - .../emacs/snippets/csharp-mode/doc-block | 7 - .../emacs/snippets/csharp-mode/inheritedoc | 5 - .../files/emacs/snippets/csharp-mode/pbsd | 13 - .../files/emacs/snippets/csharp-mode/prop | 7 - .../core/files/emacs/snippets/js-mode/import | 6 - .../files/emacs/snippets/markdown-mode/table | 8 - .../files/emacs/snippets/org-mode/org-header | 10 - .../emacs/snippets/php-mode/.yas-setup.el | 15 - .../files/emacs/snippets/php-mode/PHP Tags | 5 - .../core/files/emacs/snippets/php-mode/ai | 6 - .../core/files/emacs/snippets/php-mode/class | 18 - .../core/files/emacs/snippets/php-mode/const | 5 - .../core/files/emacs/snippets/php-mode/dst | 6 - .../core/files/emacs/snippets/php-mode/pbsd | 11 - .../core/files/emacs/snippets/php-mode/phpe | 5 - .../core/files/emacs/snippets/php-mode/phpif | 7 - .../core/files/emacs/snippets/php-mode/pub | 14 - .../core/files/emacs/snippets/php-mode/pubs | 14 - .../core/files/emacs/snippets/php-mode/this | 5 - .../files/emacs/snippets/php-mode/var-doc | 23 - .../emacs/snippets/rjsx-mode/.yas-parents | 1 - .../emacs/snippets/rjsx-mode/.yas-setup.el | 8 - .../core/files/emacs/snippets/rjsx-mode/react | 8 - .../core/files/emacs/snippets/rjsx-mode/rfc | 13 - .../files/emacs/snippets/rjsx-mode/useEfect | 8 - .../files/emacs/snippets/rjsx-mode/useState | 6 - .../core/files/emacs/snippets/sh-mode/pbsd | 9 - .../core/files/emacs/snippets/sh-mode/shebang | 5 - .../core/files/emacs/snippets/text-mode/bc | 6 - .../core/files/emacs/snippets/text-mode/chore | 6 - .../core/files/emacs/snippets/text-mode/ci | 6 - .../core/files/emacs/snippets/text-mode/docs | 6 - .../core/files/emacs/snippets/text-mode/feat | 6 - .../core/files/emacs/snippets/text-mode/fix | 10 - .../core/files/emacs/snippets/text-mode/pref | 6 - .../files/emacs/snippets/text-mode/refactor | 6 - .../core/files/emacs/snippets/text-mode/sec | 6 - .../core/files/emacs/snippets/text-mode/style | 6 - .../core/files/emacs/snippets/text-mode/test | 6 - .../snippets/typescript-mode/.yas-parents | 1 - .../files/emacs/snippets/typescript-mode/it | 7 - .../snippets/typescript-mode/lit-element | 17 - .../snippets/typescript-tsx-mode/.yas-parents | 2 - .../emacs/snippets/typescript-tsx-mode/rc | 17 - .../emacs/snippets/typescript-tsx-mode/react | 6 - .../emacs/snippets/typescript-tsx-mode/rfc | 12 - site-modules/core/files/emacs/spacemacs | 601 ------------------ .../core/files/emacs/src/development.el | 155 ----- site-modules/core/files/emacs/src/evil.el | 56 -- .../core/files/emacs/src/file-operations.el | 40 -- site-modules/core/files/emacs/src/format.el | 111 ---- site-modules/core/files/emacs/src/general.el | 78 --- site-modules/core/files/emacs/src/ivy.el | 40 -- .../core/files/emacs/src/lang/c-sharp.el | 10 - site-modules/core/files/emacs/src/lang/c.el | 11 - .../core/files/emacs/src/lang/docker.el | 14 - site-modules/core/files/emacs/src/lang/go.el | 12 - .../core/files/emacs/src/lang/js-ts.el | 59 -- .../core/files/emacs/src/lang/json.el | 13 - site-modules/core/files/emacs/src/lang/php.el | 18 - .../core/files/emacs/src/lang/shell.el | 21 - site-modules/core/files/emacs/src/lang/web.el | 66 -- .../core/files/emacs/src/lang/yaml.el | 11 - .../core/files/emacs/src/language-tool.el | 15 - site-modules/core/files/emacs/src/notmuch.el | 146 ----- site-modules/core/files/emacs/src/org.el | 148 ----- site-modules/core/files/emacs/src/packages.el | 32 - .../core/files/emacs/src/projectile.el | 118 ---- site-modules/core/files/emacs/src/puppet.el | 11 - site-modules/core/files/emacs/src/term.el | 47 -- site-modules/core/files/emacs/src/treemacs.el | 12 - site-modules/core/files/emacs/src/ui.el | 73 --- site-modules/core/files/emacs/src/zoekt.el | 37 -- .../files/emacs/straight/versions/default.el | 36 ++ .../core/files/oh-my-zsh/custom/emacs.zsh | 6 +- 83 files changed, 503 insertions(+), 2509 deletions(-) create mode 100644 modules/emacs.lua create mode 100644 site-modules/core/files/emacs/mbwatch/mbwatch.el delete mode 100644 site-modules/core/files/emacs/snippets/README.md delete mode 100644 site-modules/core/files/emacs/snippets/c++-mode/once delete mode 100644 site-modules/core/files/emacs/snippets/c++-mode/pbsd delete mode 100644 site-modules/core/files/emacs/snippets/c-mode/once delete mode 100644 site-modules/core/files/emacs/snippets/c-mode/pbsd delete mode 100644 site-modules/core/files/emacs/snippets/csharp-mode/doc-block delete mode 100644 site-modules/core/files/emacs/snippets/csharp-mode/inheritedoc delete mode 100644 site-modules/core/files/emacs/snippets/csharp-mode/pbsd delete mode 100644 site-modules/core/files/emacs/snippets/csharp-mode/prop delete mode 100644 site-modules/core/files/emacs/snippets/js-mode/import delete mode 100644 site-modules/core/files/emacs/snippets/markdown-mode/table delete mode 100644 site-modules/core/files/emacs/snippets/org-mode/org-header delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/.yas-setup.el delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/PHP Tags delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/ai delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/class delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/const delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/dst delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/pbsd delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/phpe delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/phpif delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/pub delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/pubs delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/this delete mode 100644 site-modules/core/files/emacs/snippets/php-mode/var-doc delete mode 100644 site-modules/core/files/emacs/snippets/rjsx-mode/.yas-parents delete mode 100644 site-modules/core/files/emacs/snippets/rjsx-mode/.yas-setup.el delete mode 100644 site-modules/core/files/emacs/snippets/rjsx-mode/react delete mode 100644 site-modules/core/files/emacs/snippets/rjsx-mode/rfc delete mode 100644 site-modules/core/files/emacs/snippets/rjsx-mode/useEfect delete mode 100644 site-modules/core/files/emacs/snippets/rjsx-mode/useState delete mode 100644 site-modules/core/files/emacs/snippets/sh-mode/pbsd delete mode 100644 site-modules/core/files/emacs/snippets/sh-mode/shebang delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/bc delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/chore delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/ci delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/docs delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/feat delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/fix delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/pref delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/refactor delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/sec delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/style delete mode 100644 site-modules/core/files/emacs/snippets/text-mode/test delete mode 100644 site-modules/core/files/emacs/snippets/typescript-mode/.yas-parents delete mode 100644 site-modules/core/files/emacs/snippets/typescript-mode/it delete mode 100644 site-modules/core/files/emacs/snippets/typescript-mode/lit-element delete mode 100644 site-modules/core/files/emacs/snippets/typescript-tsx-mode/.yas-parents delete mode 100644 site-modules/core/files/emacs/snippets/typescript-tsx-mode/rc delete mode 100644 site-modules/core/files/emacs/snippets/typescript-tsx-mode/react delete mode 100644 site-modules/core/files/emacs/snippets/typescript-tsx-mode/rfc delete mode 100644 site-modules/core/files/emacs/spacemacs delete mode 100644 site-modules/core/files/emacs/src/development.el delete mode 100644 site-modules/core/files/emacs/src/evil.el delete mode 100644 site-modules/core/files/emacs/src/file-operations.el delete mode 100644 site-modules/core/files/emacs/src/format.el delete mode 100644 site-modules/core/files/emacs/src/general.el delete mode 100644 site-modules/core/files/emacs/src/ivy.el delete mode 100644 site-modules/core/files/emacs/src/lang/c-sharp.el delete mode 100644 site-modules/core/files/emacs/src/lang/c.el delete mode 100644 site-modules/core/files/emacs/src/lang/docker.el delete mode 100644 site-modules/core/files/emacs/src/lang/go.el delete mode 100644 site-modules/core/files/emacs/src/lang/js-ts.el delete mode 100644 site-modules/core/files/emacs/src/lang/json.el delete mode 100644 site-modules/core/files/emacs/src/lang/php.el delete mode 100644 site-modules/core/files/emacs/src/lang/shell.el delete mode 100644 site-modules/core/files/emacs/src/lang/web.el delete mode 100644 site-modules/core/files/emacs/src/lang/yaml.el delete mode 100644 site-modules/core/files/emacs/src/language-tool.el delete mode 100644 site-modules/core/files/emacs/src/notmuch.el delete mode 100644 site-modules/core/files/emacs/src/org.el delete mode 100644 site-modules/core/files/emacs/src/packages.el delete mode 100644 site-modules/core/files/emacs/src/projectile.el delete mode 100644 site-modules/core/files/emacs/src/puppet.el delete mode 100644 site-modules/core/files/emacs/src/term.el delete mode 100644 site-modules/core/files/emacs/src/treemacs.el delete mode 100644 site-modules/core/files/emacs/src/ui.el delete mode 100644 site-modules/core/files/emacs/src/zoekt.el create mode 100644 site-modules/core/files/emacs/straight/versions/default.el diff --git a/modules/emacs.lua b/modules/emacs.lua new file mode 100644 index 0000000..dd34ce6 --- /dev/null +++ b/modules/emacs.lua @@ -0,0 +1,26 @@ +local git = require "lib.git" + +local emacs_dir = os.getenv "HOME" .. "/.emacs.d" +if not configz.is_directory(emacs_dir .. "/straight") then + configz.directory(emacs_dir .. "/straight") +end + +if not configz.is_file(emacs_dir .. "/init.el") then + configz.link(emacs_dir .. "/init.el", { + source = os.getenv "PWD" .. "/site-modules/core/files/emacs/init.el", + }) +end + +if not configz.is_directory(emacs_dir .. "/mbwatch") then + configz.link(emacs_dir .. "/mbwatch", { + source = os.getenv "PWD" .. "/site-modules/core/files/emacs/mbwatch", + }) +end + +if not configz.is_directory(emacs_dir .. "/straight/versions") then + configz.link(emacs_dir .. "/straight/versions", { + source = os.getenv "PWD" .. "/site-modules/core/files/emacs/straight/versions", + }) +end + + diff --git a/site-modules/core/files/emacs/init.el b/site-modules/core/files/emacs/init.el index b691d46..9d30461 100644 --- a/site-modules/core/files/emacs/init.el +++ b/site-modules/core/files/emacs/init.el @@ -1,146 +1,402 @@ ;;; init.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ -;; ;;; Commentary: -;; -;; The entrypoint to AMACS -;; -;;; Code: -;; (setq user-emacs-directory "~/development/emacs") -;; (customize-set-value 'custom-theme-directory user-emacs-directory) +;;; Package management +(defvar bootstrap-version) +(let ((bootstrap-file + (expand-file-name + "straight/repos/straight.el/bootstrap.el" + (or (bound-and-true-p straight-base-dir) + user-emacs-directory))) + (bootstrap-version 7)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage)) -;; Load package loading with `use-package` this must be the first -;; thing loaded so we can install the packages with `use-package` -(load-file (expand-file-name "src/packages.el" user-emacs-directory)) +(straight-use-package 'use-package) -;; Load the ui tweeks and theme to limit the time we see a big white -;; screen -(load-file (expand-file-name "src/ui.el" user-emacs-directory)) +;;; UI Setup -;; Load the personal config if its available where all of the secrets -;; source is -(let ((personal-init (expand-file-name "init-personal.el" user-emacs-directory))) - (when (file-exists-p personal-init) - (load-file personal-init))) +(tooltip-mode -1) ; Disable tooltips +(menu-bar-mode -1) ; Disable the menu bar +(scroll-bar-mode -1) ; Disable visible scrollbar +(tool-bar-mode -1) ; Disable the toolbar -;; Genral and main configuration -(load-file (expand-file-name "src/general.el" user-emacs-directory)) -(load-file (expand-file-name "src/file-operations.el" user-emacs-directory)) -(load-file (expand-file-name "src/evil.el" user-emacs-directory)) -(load-file (expand-file-name "src/ivy.el" user-emacs-directory)) -(load-file (expand-file-name "src/treemacs.el" user-emacs-directory)) -(load-file (expand-file-name "src/term.el" user-emacs-directory)) -(load-file (expand-file-name "src/language-tool.el" user-emacs-directory)) +(defun aa/set-font (a-font-size) + "Sets the font size for the whole of emacs setting the font faces -;; Set up puppet for editing the dotfiles config -(load-file (expand-file-name "src/puppet.el" user-emacs-directory)) +This is better than the `C-x +` and C-x - because this is global to emacs not +just in in the current buffer." + (interactive "nFont Size: ") -;; Email configuration -(load-file (expand-file-name "src/notmuch.el" user-emacs-directory)) + (setq aa-font "DejaVu Sans Mono") + (setq aa-v-font "Sans Serif") + ;; (setq aa-v-font "Ubuntu") -;; Org mode -(load-file (expand-file-name "src/org.el" user-emacs-directory)) + (set-face-attribute 'default nil :font aa-font :height a-font-size) + (set-face-attribute 'fixed-pitch nil :font aa-font :height a-font-size) + (set-face-attribute 'variable-pitch nil :font aa-v-font :height a-font-size :weight 'regular)) -;; Development configuration -(load-file (expand-file-name "src/format.el" user-emacs-directory)) -(load-file (expand-file-name "src/development.el" user-emacs-directory)) -(load-file (expand-file-name "src/zoekt.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/php.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/c-sharp.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/js-ts.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/yaml.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/json.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/web.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/go.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/docker.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/shell.el" user-emacs-directory)) -(load-file (expand-file-name "src/lang/c.el" user-emacs-directory)) +;; Set the default font size when emacs starts +(aa/set-font 100) -;; Load the projectile module last so we can override compilation errors regexp -;; without other modules affecting it after -(load-file (expand-file-name "src/projectile.el" user-emacs-directory)) +(use-package all-the-icons + :straight t + :if (display-graphic-p)) + +(use-package doom-modeline + :straight t + :init (doom-modeline-mode 1)) + +(use-package doom-themes + :straight t + :config + ;; Global settings (defaults) + (setq doom-themes-enable-bold t ; if nil, bold is universally disabled + doom-themes-enable-italic t) ; if nil, italics is universally disabled + (load-theme 'doom-nord-light t) + + ;; Enable flashing mode-line on errors + (doom-themes-visual-bell-config) + ;; Corrects (and improves) org-mode's native fontification. + (doom-themes-org-config)) + +;;; General Setup + +;; Disable .# lock files. Then sends all directory watch tasks crazy. It also +;; make compiling applications fail when you have unsaved files +(setq create-lockfiles nil) + +;; Make ESC quit prompts +(global-set-key (kbd "") 'keyboard-escape-quit) + +(setq browse-url-browser-function 'browse-url-chrome) + +(use-package which-key + :straight t + :init (which-key-mode) + :diminish which-key-mode + :config + (setq which-key-idle-delay 1)) + +;;; Org + +(straight-use-package 'org) + +(require 'org-habit) +(require 'org-id) +(require 'org-protocol) +(require 'org-tempo) + +(setq org-directory "~/Org" + org-agenda-files (list org-directory) + org-todo-keywords '((sequence "TODO" "WAITING" "REVIEW" "|" "DONE" "ARCHIVED")) + org-hide-emphasis-markers t + org-agenda-window-setup 'current-window + org-export-with-broken-links "mark" + org-export-with-section-numbers nil + org-export-with-sub-superscripts nil + org-export-with-toc nil + org-html-head "") + +(setq org-agenda-custom-commands + '(("d" "Dashboard" + ((agenda "" ((org-deadline-warning-days 7))) + (todo "WAITING" + ((org-agenda-overriding-header "Waiting on External"))) + (todo "TODO" + ((org-agenda-overriding-header "Scheduled") + (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottimestamp)))) + (todo "TODO" + ((org-agenda-overriding-header "Backlog") + (org-agenda-todo-list-sublevels nil) + (org-agenda-skip-function '(org-agenda-skip-entry-if 'timestamp)))))))) + +(setq org-capture-templates + '(("t" "Todo" entry (file+headline "Todo.org" "Inbox") + "* TODO %?\n\n %a"))) + +(add-hook 'org-mode-hook (lambda () + (electric-pair-mode) + (org-indent-mode) + (flyspell-mode))) + +;; Open file links in current window, rather than new ones +;; https://github.com/hlissner/doom-emacs/blob/develop/modules/lang/org/config.el#L632 +(setf (alist-get 'file org-link-frame-setup) #'find-file) + +(use-package org-bullets + :straight t + :after org + :config + (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))) + +(use-package org-roam + :straight t + :custom + (setq org-roam-completion-everywhere t) + (org-roam-directory (concat (file-name-as-directory org-directory) "Roam")) + (org-roam-completion-everywhere t) + :config + (org-roam-db-autosync-mode) + (require 'org-roam-protocol)) + +(use-package org-roam-ui + :straight t + :after org-roam + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start t)) + +(use-package org-download + :straight t + :config + (setq-default org-download-image-dir (concat (file-name-as-directory org-directory) "Attachments") + org-download-heading-lvl nil)) + +;;; Completion + +(use-package company + :straight t + :config + (setq completion-ignore-case t) + (setq company-idle-delay 0.4) + (add-to-list 'company-backends 'company-capf) + (global-company-mode 1)) + +(use-package company-box + :straight t + :hook (company-mode . company-box-mode)) + +(use-package ivy + :straight t + :diminish + :bind (:map ivy-minibuffer-map + ("TAB" . ivy-alt-done) + ("C-l" . ivy-alt-done) + ("C-j" . ivy-next-line) + ("C-k" . ivy-previous-line) + :map ivy-switch-buffer-map + ("C-k" . ivy-previous-line) + ("C-l" . ivy-done) + ("C-d" . ivy-switch-buffer-kill) + :map ivy-reverse-i-search-map + ("C-k" . ivy-previous-line) + ("C-d" . ivy-reverse-i-search-kill)) + :config + (ivy-mode 1)) + +(use-package counsel + :straight t + :config + (counsel-mode 1)) + +;;; Evil + +(use-package evil + :straight t + :init + (setq evil-want-keybinding nil) + (setq evil-want-C-u-scroll t) + (setq evil-want-C-i-jump nil) + :config + (evil-mode 1) + + ;; Set window movement to CTRL hjkl to emulate tmux vim interaction + (global-set-key (kbd "C-h") 'evil-window-left) + (global-set-key (kbd "C-j") 'evil-window-down) + (global-set-key (kbd "C-l") 'evil-window-right) + (global-set-key (kbd "C-k") 'evil-window-up) + + (evil-set-initial-state 'messages-buffer-mode 'normal) + (evil-set-initial-state 'dashboard-mode 'normal)) + +(use-package evil-collection + :straight t + :after evil + :config + (evil-collection-init)) + +(use-package evil-org + :straight t + :after org + :hook (org-mode . (lambda () evil-org-mode)) + :config + (require 'evil-org-agenda) + (evil-org-agenda-set-keys)) + +;;; Email + +(use-package counsel-notmuch + :straight t + :defer t) + +(use-package notmuch + ;; Use the notmuch package that is installed + :load-path "/usr/share/emacs/site-lisp" + :config + (setq notmuch-saved-searches '((:name "inbox" + :key "i" + :query "query:inbox" + :sort-order oldest-first))) + + (evil-define-key 'normal notmuch-search-mode-map + "d" 'aa/notmuch-search-delete) + (evil-define-key 'visual notmuch-search-mode-map + "d" 'aa/notmuch-search-delete)) + +(defun aa/notmuch-search-inbox () + "Helper function to search for the inbox messages (oldest message first). + This query is defined in the notmuch config to make it easier to search for + inbox messages." + (interactive) + (notmuch-search "query:inbox" t)) + +(defun aa/notmuch-search-delete () + "When deleting messages we want to also make them unread. When a new message + comes in the thread notmuch will show you all the messages, this makes it + easier to see what is new." + (interactive) + (notmuch-search-tag (list "+deleted" "-inbox" "-unread")) + (notmuch-tree-next-message)) + +(defun org-notmuch-open (id) + "Visit the notmuch message or thread with id ID." + (notmuch-show id)) + +(defun org-notmuch-store-link () + "Store a link to a notmuch mail message." + (cl-case major-mode + ('notmuch-show-mode + ;; Store link to the current message + (let* ((id (notmuch-show-get-message-id)) + (link (concat "notmuch:" id)) + (description (format "Mail: %s" (notmuch-show-get-subject)))) + (org-store-link-props + :type "notmuch" + :link link + :description description))) + ('notmuch-search-mode + ;; Store link to the thread on the current line + (let* ((id (notmuch-search-find-thread-id)) + (link (concat "notmuch:" id)) + (description (format "Mail: %s" (notmuch-search-find-subject)))) + (org-store-link-props + :type "notmuch" + :link link + :description description))))) + +(org-link-set-parameters + "notmuch" + :follow 'org-notmuch-open + :store 'org-notmuch-store-link) + +(defun aa/notmuch-show-view-as-patch () + "View the the current message as a patch. + + See: https://notmuchmail.org/emacstips" + (interactive) + (let* ((id (notmuch-show-get-message-id)) + (msg (notmuch-show-get-message-properties)) + (part (notmuch-show-get-part-properties)) + (subject (concat "Subject: " (notmuch-show-get-subject) "\n")) + (diff-default-read-only t) + (buf (get-buffer-create (concat "*notmuch-patch-" id "*"))) + (map (make-sparse-keymap))) + (define-key map "q" 'notmuch-bury-or-kill-this-buffer) + (switch-to-buffer buf) + (let ((inhibit-read-only t)) + (erase-buffer) + (insert subject) + (insert (notmuch-get-bodypart-text msg part nil))) + (set-buffer-modified-p nil) + (diff-mode) + (lexical-let ((new-ro-bind (cons 'buffer-read-only map))) + (add-to-list 'minor-mode-overriding-map-alist new-ro-bind)) + (goto-char (point-min)))) + +(use-package mbwatch + :load-path "~/.emacs.d/mbwatch" + :after notmuch + :config + (mbwatch-mode 1) + (add-hook 'mbwatch-output-hook + (lambda (account mailbox) + (message "[mbwatch] new messages for account %s in mailbox %s" account mailbox) + (notmuch-command-to-string "new")))) + +;;; Sending email +(use-package org-mime + :straight t) + +;; sendmail-program +(setq send-mail-function 'sendmail-send-it + sendmail-program "mailsend") + +;;; Keybindings (use-package general + :straight t :config - (general-create-definer efs/leader-keys + (general-create-definer aa/leader-keys :keymaps '(normal insert visual emacs) :prefix "SPC" :global-prefix "C-SPC") - (efs/leader-keys + (aa/leader-keys ;; Global bindings - "/" '(counsel-projectile-ag :which-key "Search Project") - "TAB" '(evil-switch-to-windows-last-buffer :which-key "Last Buffer") - "SPC" '(counsel-M-x :which-key "M-x") - "a" '(projectile-toggle-between-implementation-and-test :which-key "Toggle test and implementation") - ";" '(evil-commentary-line :which-key "Comment") - ;; Docker - "d" '(:ignore t :which-key "Docker") - "dd" 'docker - "di" 'docker-images - "dc" 'docker-containers + "/" '(counsel-projectile-ag :which-key "Search Project") + "TAB" '(evil-switch-to-windows-last-buffer :which-key "Last Buffer") + "SPC" '(counsel-M-x :which-key "M-x") + ;; Jumping in a buffer - "j" '(:ignore t :which-key "Jumps") - "jj" 'evil-avy-goto-char-timer - "jl" 'evil-avy-goto-line + "j" '(:ignore t :which-key "Jumps") + "jj" 'evil-avy-goto-char-timer + "jl" 'evil-avy-goto-line + ;; Searching - "s" '(:ignore t :which-key "Searching") - "ss" 'swiper - "sS" 'swiper-thing-at-point - "sb" 'swiper-all - "sB" 'swiper-all-thing-at-point + "s" '(:ignore t :which-key "Searching") + "ss" 'swiper + "sS" 'swiper-thing-at-point + "sb" 'swiper-all + "sB" 'swiper-all-thing-at-point + ;; Windows. Just rebind all of the evil window bindings to "SPC w" ;; so we dont have to keep hitting "CTRL-w" - "w" '(evil-window-map :which-key "Windows") - "wd" 'evil-window-delete - ;; Org Mode - "o" '(evil-window-map :which-key "Org Mode") - "oa" 'org-agenda - "oc" 'org-capture - ;; Git - "g" '(:ignore t :which-key "Git") - "gs" 'magit-status - "gd" 'magit-diff - "gl" 'magit-log - "gb" 'browse-at-remote - ;; Email - "e" '(:ignore t :which-key "Email") - "ei" 'aa/notmuch-search-inbox - "eu" 'aa/notmuch-search-inbox-unread - "es" 'counsel-notmuch - "en" 'notmuch - "ej" 'notmuch-jump-search - ;; Files - "f" '(:ignore t :which-key "Files") - "fs" 'save-buffer - "ff" 'counsel-find-file - ;; Buffers - "b" '(:ignore t :which-key "Buffers") - "bd" 'kill-this-buffer - "bb" 'counsel-switch-buffer - ;; LSP actions - "l" '(:ignore t :which-key "LSP") - "lr" 'lsp-workspace-restart - "la" 'lsp-execute-code-action - ;; Projects - "p" '(:ignore t :which-key "Projects") - "p SPC" 'counsel-projectile - "pb" 'counsel-projectile-switch-to-buffer - "pd" 'counsel-projectile-find-dir - "pp" 'counsel-projectile-switch-project - "pf" 'counsel-projectile-find-file - "pt" 'neotree-projectile-action - "ps" 'projectile-run-vterm - ;; Toggles - "t" '(:ignore t :which-key "Toggles") - "tt" '(counsel-load-theme :which-key "choose theme"))) + "w" '(evil-window-map :which-key "Windows") + "wd" 'evil-window-delete -(require 'server) -(unless (server-running-p) - (message "Starting a server...") - (server-start)) + ;; Org Mode + "o" '(evil-window-map :which-key "Org Mode") + "oa" 'org-agenda + "oc" 'org-capture + "ot" 'org-roam-dailies-goto-today + "of" 'org-roam-node-find + "or" 'org-refile + "ol" 'org-roam-link-replace-all + + ;; Files + "f" '(:ignore t :which-key "Files") + "fs" 'save-buffer + "ff" 'counsel-find-file + + ;; Buffers + "b" '(:ignore t :which-key "Buffers") + "bd" 'kill-this-buffer + "bb" 'counsel-switch-buffer + + "e" '(:ignore t :which-key "Email") + "ee" 'notmuch + "ei" 'aa/notmuch-search-inbox + "ej" 'notmuch-jump-search + "es" 'counsel-notmuch + + ;; Toggles + "t" '(:ignore t :which-key "Toggles") + "tt" '(counsel-load-theme :which-key "choose theme"))) diff --git a/site-modules/core/files/emacs/mbwatch/mbwatch.el b/site-modules/core/files/emacs/mbwatch/mbwatch.el new file mode 100644 index 0000000..865555c --- /dev/null +++ b/site-modules/core/files/emacs/mbwatch/mbwatch.el @@ -0,0 +1,61 @@ +;; mbwatch-mode.el --- Run mbwatch and handle its output -*- lexical-binding: t; -*- + +(defvar mbwatch-process nil + "The process object for the mbwatch command.") + +(defvar mbwatch-output-hook nil + "Hook run when new output is received from the mbwatch process. Each function + in this hook is called with a single argument, the new output.") + +(defun mbwatch-start () + "Start the mbwatch process." + (let ((process-buffer (get-buffer-create "*mbwatch*"))) + (with-current-buffer process-buffer + (read-only-mode -1) + (erase-buffer) + (read-only-mode 1)) + + (setq mbwatch-process + (start-process-shell-command + "mbwatch" process-buffer "mbwatch")) + + (set-process-filter + mbwatch-process + 'mbwatch-process-filter) + (message "mbwatch process started."))) + +(defun mbwatch-stop () + "Stop the mbwatch process." + (interactive) + (when (and mbwatch-process (process-live-p mbwatch-process)) + (kill-process mbwatch-process) + (setq mbwatch-process nil))) + + +(defun mbwatch-process-filter (proc output) + "Filter function for mbwatch process output. +PROC is the process. OUTPUT is the new output." + (with-current-buffer (process-buffer proc) + (let ((inhibit-read-only t)) + (goto-char (point-max)) + (insert output)) + (mbwatch-handle-output output))) + +(defun mbwatch-handle-output (output) + "Handle new OUTPUT from the mbwatch process." + (when (string-match "Synced changes for \\(.*?\\) in mailbox \\(.*?\\)$" output) + (let ((account (match-string 1 output)) + (mailbox (match-string 2 output))) + (run-hook-with-args 'mbwatch-output-hook account mailbox)))) + +(define-minor-mode mbwatch-mode + "Minor mode to run mbwatch command and handle its output." + :lighter " mbwatch" + :global t + (if mbwatch-mode + (mbwatch-start) + (mbwatch-stop))) + +(provide 'mbwatch) + +;;; mbwatch-mode.el ends here diff --git a/site-modules/core/files/emacs/snippets/README.md b/site-modules/core/files/emacs/snippets/README.md deleted file mode 100644 index 4ea002c..0000000 --- a/site-modules/core/files/emacs/snippets/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Private directory for Yasnippets snippets - -The content of this directory is ignored by Git. This is the default place where -to store your private yasnippets. - -This path will be loaded automatically and used whenever Yasnippets loads. diff --git a/site-modules/core/files/emacs/snippets/c++-mode/once b/site-modules/core/files/emacs/snippets/c++-mode/once deleted file mode 100644 index b982970..0000000 --- a/site-modules/core/files/emacs/snippets/c++-mode/once +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: #ifndef XXX; #define XXX; #endif -# key: once -# uuid: once -# -- -#ifndef ${1:`(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`_H} -#define $1 - -$0 - -#endif /* $1 */ \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/c++-mode/pbsd b/site-modules/core/files/emacs/snippets/c++-mode/pbsd deleted file mode 100644 index 895a917..0000000 --- a/site-modules/core/files/emacs/snippets/c++-mode/pbsd +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: Practically BSD licence -# key: pbsd -# -- -// Copyright 2021 Practically.io All rights reserved -// -// Use of this source is governed by a BSD-style -// licence that can be found in the LICENCE file or at -// https://www.practically.io/copyright/ -$0 \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/c-mode/once b/site-modules/core/files/emacs/snippets/c-mode/once deleted file mode 100644 index b982970..0000000 --- a/site-modules/core/files/emacs/snippets/c-mode/once +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: #ifndef XXX; #define XXX; #endif -# key: once -# uuid: once -# -- -#ifndef ${1:`(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`_H} -#define $1 - -$0 - -#endif /* $1 */ \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/c-mode/pbsd b/site-modules/core/files/emacs/snippets/c-mode/pbsd deleted file mode 100644 index 895a917..0000000 --- a/site-modules/core/files/emacs/snippets/c-mode/pbsd +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: Practically BSD licence -# key: pbsd -# -- -// Copyright 2021 Practically.io All rights reserved -// -// Use of this source is governed by a BSD-style -// licence that can be found in the LICENCE file or at -// https://www.practically.io/copyright/ -$0 \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/csharp-mode/doc-block b/site-modules/core/files/emacs/snippets/csharp-mode/doc-block deleted file mode 100644 index 8fe3bbe..0000000 --- a/site-modules/core/files/emacs/snippets/csharp-mode/doc-block +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: /// ... -# key: /// -# -- -/// -/// $0 -/// \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/csharp-mode/inheritedoc b/site-modules/core/files/emacs/snippets/csharp-mode/inheritedoc deleted file mode 100644 index 33124a1..0000000 --- a/site-modules/core/files/emacs/snippets/csharp-mode/inheritedoc +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: /// -# key: ///i -# -- -/// $0 \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/csharp-mode/pbsd b/site-modules/core/files/emacs/snippets/csharp-mode/pbsd deleted file mode 100644 index dd5fcea..0000000 --- a/site-modules/core/files/emacs/snippets/csharp-mode/pbsd +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: Practically BSD licence -# key: pbsd -# contributor: Ade Attwood -# uuid: pbsd -# -- -/// -/// Copyright `(format-time-string "%Y")` Practically.io All rights reserved -/// -/// Use of this source is governed by a BSD-style -/// licence that can be found in the LICENCE file or at -/// https://www.practically.io/copyright/ -/// diff --git a/site-modules/core/files/emacs/snippets/csharp-mode/prop b/site-modules/core/files/emacs/snippets/csharp-mode/prop deleted file mode 100644 index f8605d4..0000000 --- a/site-modules/core/files/emacs/snippets/csharp-mode/prop +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: Class property -# contributor: Ade Attwood -# key: prop -# uuid: prop -# -- -public ${1:int} ${2:Name} { get; set; }${3: = ${4:"Default"}}$0 \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/js-mode/import b/site-modules/core/files/emacs/snippets/js-mode/import deleted file mode 100644 index 3220abd..0000000 --- a/site-modules/core/files/emacs/snippets/js-mode/import +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: ES Import -# key: import -# contributor: Ade Attwood -# -- -import {${2:Import}} from '$1'; diff --git a/site-modules/core/files/emacs/snippets/markdown-mode/table b/site-modules/core/files/emacs/snippets/markdown-mode/table deleted file mode 100644 index 3c135c4..0000000 --- a/site-modules/core/files/emacs/snippets/markdown-mode/table +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: Table -# key: table -# contributor: Ade Attwood -# -- -| One | Two | -| --- | --- | -| 1 | 2 | diff --git a/site-modules/core/files/emacs/snippets/org-mode/org-header b/site-modules/core/files/emacs/snippets/org-mode/org-header deleted file mode 100644 index 5d0aebb..0000000 --- a/site-modules/core/files/emacs/snippets/org-mode/org-header +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: Org Mode Header -# key: org-header -# -- -#+TITLE: ${1:Title} -#+AUTHOR: Ade Attwood -#+EMAIL: hello@adeattwood.co.uk -#+DATE: `(format-time-string "%Y-%m-%d")` -#+FILETAGS: -#+SETUPFILE: ../common/setup.org \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/php-mode/.yas-setup.el b/site-modules/core/files/emacs/snippets/php-mode/.yas-setup.el deleted file mode 100644 index 70b071a..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/.yas-setup.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; .yas-setup.el --- Yasnippet helper functions for PHP snippets - -;;; Commentary: - -;;; Code: -(require 'yasnippet) - -(defun yas-php-get-class-name-by-file-name () - "Return name of class-like construct by `file-name'. -\"class-like\" contains class, trait and interface." - (file-name-nondirectory - (file-name-sans-extension (or (buffer-file-name) - (buffer-name (current-buffer)))))) - -;;; .yas-setup.el ends here diff --git a/site-modules/core/files/emacs/snippets/php-mode/PHP Tags b/site-modules/core/files/emacs/snippets/php-mode/PHP Tags deleted file mode 100644 index 1bcb2c1..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/PHP Tags +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: PHP Tags -# key: php -# -- - \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/php-mode/ai b/site-modules/core/files/emacs/snippets/php-mode/ai deleted file mode 100644 index 9982e91..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/ai +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Array item -# key: ai -# contributor: Ade Attwood -# -- -'$1' => $0 \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/php-mode/class b/site-modules/core/files/emacs/snippets/php-mode/class deleted file mode 100644 index 1416ed2..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/class +++ /dev/null @@ -1,18 +0,0 @@ -# -*- mode: snippet -*- -# name: Class definition -# key: class -# contributor: Ade Attwood -# -- - -# -- -declare(strict_types = 1); diff --git a/site-modules/core/files/emacs/snippets/php-mode/pbsd b/site-modules/core/files/emacs/snippets/php-mode/pbsd deleted file mode 100644 index 6e0048d..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/pbsd +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: Practically BSD licence -# key: pbsd -# -- -/** - * Copyright 2021 Practically.io All rights reserved - * - * Use of this source is governed by a BSD-style - * licence that can be found in the LICENCE file or at - * https://www.practically.io/copyright/ - */ \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/php-mode/phpe b/site-modules/core/files/emacs/snippets/php-mode/phpe deleted file mode 100644 index 67a6f89..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/phpe +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: PHP Echo tags -# key: phpe -# -- - \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/php-mode/phpif b/site-modules/core/files/emacs/snippets/php-mode/phpif deleted file mode 100644 index 3972b0c..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/phpif +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: PHP if statment in view -# key: phpif -# -- - - $0 - diff --git a/site-modules/core/files/emacs/snippets/php-mode/pub b/site-modules/core/files/emacs/snippets/php-mode/pub deleted file mode 100644 index 2d20c07..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/pub +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: Public function -# key: pub -# contributor: Ade Attwood -# -- -/** - * Undocumented function - * - * @return $4 - */ -public function ${1:name}(${2:params})${3::${4:returns}} -{ - $0 -} diff --git a/site-modules/core/files/emacs/snippets/php-mode/pubs b/site-modules/core/files/emacs/snippets/php-mode/pubs deleted file mode 100644 index d208849..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/pubs +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: Public static function -# key: pubs -# contributor: Ade Attwood -# -- -/** - * Undocumented function - * - * @return $4 - */ -public static function ${1:name}(${2:params})${3::${4:returns}} -{ - $0 -} diff --git a/site-modules/core/files/emacs/snippets/php-mode/this b/site-modules/core/files/emacs/snippets/php-mode/this deleted file mode 100644 index bec7592..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/this +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: This -# key: this -# -- -$this->$0 \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/php-mode/var-doc b/site-modules/core/files/emacs/snippets/php-mode/var-doc deleted file mode 100644 index fd24636..0000000 --- a/site-modules/core/files/emacs/snippets/php-mode/var-doc +++ /dev/null @@ -1,23 +0,0 @@ -# -*- mode: snippet -*- -# name: Var doc for php view files -# key: var-doc -# -- -echo '
';
-echo '/**'.PHP_EOL;
-echo ' *'.PHP_EOL;
-$_type = gettype($this) == 'object' ? get_class($this) : gettype($this);
-echo " * @var $_type \\$this\n";
-foreach(get_defined_vars() as $name => $var) {
-    if (substr($name, 0, strlen('_')) !== '_' && $name !== 'this') {
-        if (is_array($var) && isset($var[0]) && gettype($var[0]) == 'object') {
-            $type = get_class($var[0]);
-            echo " * @var {$type}[] \\$$name\n";
-            continue;
-        }
-        $type = gettype($var) == 'object' ? get_class($var) : gettype($var);
-        echo " * @var $type \\$$name\n";
-    }
-}
-echo ' */'.PHP_EOL;
-echo "
"; -die; diff --git a/site-modules/core/files/emacs/snippets/rjsx-mode/.yas-parents b/site-modules/core/files/emacs/snippets/rjsx-mode/.yas-parents deleted file mode 100644 index 6d4bce1..0000000 --- a/site-modules/core/files/emacs/snippets/rjsx-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -js-mode \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/rjsx-mode/.yas-setup.el b/site-modules/core/files/emacs/snippets/rjsx-mode/.yas-setup.el deleted file mode 100644 index b3c2680..0000000 --- a/site-modules/core/files/emacs/snippets/rjsx-mode/.yas-setup.el +++ /dev/null @@ -1,8 +0,0 @@ - -;; Capitalise the first letter in a string -(defun aa/yas/rjsx/capitalize-first-cha (&optional string) - "Capitalise only the first character of the input STRING." - (when (and string (> (length string) 0)) - (let ((first-char (substring string nil 1)) - (rest-str (substring string 1))) - (concat (capitalize first-char) rest-str)))) diff --git a/site-modules/core/files/emacs/snippets/rjsx-mode/react b/site-modules/core/files/emacs/snippets/rjsx-mode/react deleted file mode 100644 index 1432d12..0000000 --- a/site-modules/core/files/emacs/snippets/rjsx-mode/react +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: React import -# key: react -# condition: (eq major-mode 'rjsx-mode) -# contributor: Ade Attwood -# -- -import React from 'react'; -import PropTypes from 'prop-types'; diff --git a/site-modules/core/files/emacs/snippets/rjsx-mode/rfc b/site-modules/core/files/emacs/snippets/rjsx-mode/rfc deleted file mode 100644 index 17f0d92..0000000 --- a/site-modules/core/files/emacs/snippets/rjsx-mode/rfc +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: React functional component -# key: rfc -# condition: (eq major-mode 'rjsx-mode) -# contributor: Ade Attwood -# -- -export const ${1:Component} = (${2:props}) => { - return ( - ${0:
Content
} - ); -}; - -$1.propTypes = {}; \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/rjsx-mode/useEfect b/site-modules/core/files/emacs/snippets/rjsx-mode/useEfect deleted file mode 100644 index 17bd0f6..0000000 --- a/site-modules/core/files/emacs/snippets/rjsx-mode/useEfect +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet; require-final-newline: nil -*- -# name: React useEffect hook -# key: useEffec -# contributor: Ade Attwood -# -- -React.useEffect(() => { - `yas-selected-text`$0 -}, [${1:dependcides}]); \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/rjsx-mode/useState b/site-modules/core/files/emacs/snippets/rjsx-mode/useState deleted file mode 100644 index ef5a319..0000000 --- a/site-modules/core/files/emacs/snippets/rjsx-mode/useState +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet; require-final-newline: nil -*- -# name: React useState -# key: useState -# contributor: Ade Attwood -# -- -const [${1:state}, set${1:$(aa/yas/rjsx/capitalize-first-cha yas-text)}] = React.useState(${2:initialState}); \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/sh-mode/pbsd b/site-modules/core/files/emacs/snippets/sh-mode/pbsd deleted file mode 100644 index 6664689..0000000 --- a/site-modules/core/files/emacs/snippets/sh-mode/pbsd +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: Practically BDS licence -# key: pbsd -# -- -# Copyright 2021 Practically.io All rights reserved -# -# Use of this source is governed by a BSD-style -# licence that can be found in the LICENCE file or at -# https://www.practically.io/copyright/ \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/sh-mode/shebang b/site-modules/core/files/emacs/snippets/sh-mode/shebang deleted file mode 100644 index f80b5e5..0000000 --- a/site-modules/core/files/emacs/snippets/sh-mode/shebang +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: shebang -# key: #! -# -- -#!/usr/bin/env bash \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/bc b/site-modules/core/files/emacs/snippets/text-mode/bc deleted file mode 100644 index aa1145f..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/bc +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Breaking change block in commit message -# key: bc -# contributor: Ade Attwood -# -- -BREAKING CHANGE: ${0:Description} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/chore b/site-modules/core/files/emacs/snippets/text-mode/chore deleted file mode 100644 index 20da17e..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/chore +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Chore commit message -# key: chore -# contributor: Ade Attwood -# -- -chore(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/ci b/site-modules/core/files/emacs/snippets/text-mode/ci deleted file mode 100644 index 5a69676..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/ci +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Continuous intergration commit message -# key: ci -# contributor: Ade Attwood -# -- -ci(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/docs b/site-modules/core/files/emacs/snippets/text-mode/docs deleted file mode 100644 index 8abd6b4..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/docs +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Documentation commit message -# key: docs -# contributor: Ade Attwood -# -- -docs(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/feat b/site-modules/core/files/emacs/snippets/text-mode/feat deleted file mode 100644 index 18639d5..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/feat +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Feature commit message -# key: feat -# contributor: Ade Attwood -# -- -feat(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/fix b/site-modules/core/files/emacs/snippets/text-mode/fix deleted file mode 100644 index 49f072a..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/fix +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: Bug fix commit message -# key: fix -# contributor: Ade Attwood -# -- -fix(${1:scope}): ${2:title} - -${3:discription} - -fixes issue ${3:issue number} diff --git a/site-modules/core/files/emacs/snippets/text-mode/pref b/site-modules/core/files/emacs/snippets/text-mode/pref deleted file mode 100644 index 7386682..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/pref +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Performance commit message -# key: pref -# contributor: Ade Attwood -# -- -pref(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/refactor b/site-modules/core/files/emacs/snippets/text-mode/refactor deleted file mode 100644 index c426c81..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/refactor +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Refactor commit message -# key: refactor -# contributor: Ade Attwood -# -- -refactor(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/sec b/site-modules/core/files/emacs/snippets/text-mode/sec deleted file mode 100644 index 9414a43..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/sec +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Security footer in a commit message -# key: sec -# contributor: Ade Attwood -# -- -SECURITY: ${0:Description} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/style b/site-modules/core/files/emacs/snippets/text-mode/style deleted file mode 100644 index c9c4a28..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/style +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Code styling commit message -# key: style -# contributor: Ade Attwood -# -- -style(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/text-mode/test b/site-modules/core/files/emacs/snippets/text-mode/test deleted file mode 100644 index 8c3fd5a..0000000 --- a/site-modules/core/files/emacs/snippets/text-mode/test +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: Test commit message -# key: test -# contributor: Ade Attwood -# -- -test(${1:scope}): ${2:title} \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/typescript-mode/.yas-parents b/site-modules/core/files/emacs/snippets/typescript-mode/.yas-parents deleted file mode 100644 index 6d4bce1..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -js-mode \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/typescript-mode/it b/site-modules/core/files/emacs/snippets/typescript-mode/it deleted file mode 100644 index 8279d18..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-mode/it +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: It testing helper function -# key: it -# -- -it('${1: description}', async () => { - $0 -}); diff --git a/site-modules/core/files/emacs/snippets/typescript-mode/lit-element b/site-modules/core/files/emacs/snippets/typescript-mode/lit-element deleted file mode 100644 index 2527dcd..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-mode/lit-element +++ /dev/null @@ -1,17 +0,0 @@ -# -*- mode: snippet -*- -# name: LitElement -# key: lit-element -# -- -import { LitElement, html, css } from 'lit-element'; -import { customElement, property } from 'lit-element/decorators.js'; - -@customElement('${1:x-component}') -export class Component extends LitElement { - static get styles() { - return css\`:host {}\`; - } - - render() { - return html\`
Content
\`; - } -} diff --git a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/.yas-parents b/site-modules/core/files/emacs/snippets/typescript-tsx-mode/.yas-parents deleted file mode 100644 index c694fb4..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/.yas-parents +++ /dev/null @@ -1,2 +0,0 @@ -rjsx-mode -typescript-mode \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/rc b/site-modules/core/files/emacs/snippets/typescript-tsx-mode/rc deleted file mode 100644 index 1e0794e..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/rc +++ /dev/null @@ -1,17 +0,0 @@ -# -*- mode: snippet -*- -# name: React class component -# key: rc -# contributor: Ade Attwood -# -- -export interface $1State {}; -export interface $1Props {}; - -export class ${1:Name} extends React.Component<$1Props, $1State> { - public state: $1State = {} - - public render(): JSX.Element { - return ( - ${0:
Component
} - ); - } -} diff --git a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/react b/site-modules/core/files/emacs/snippets/typescript-tsx-mode/react deleted file mode 100644 index dce6075..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/react +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: React import -# key: react -# contributor: Ade Attwood -# -- -import React from 'react'; \ No newline at end of file diff --git a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/rfc b/site-modules/core/files/emacs/snippets/typescript-tsx-mode/rfc deleted file mode 100644 index d9d182d..0000000 --- a/site-modules/core/files/emacs/snippets/typescript-tsx-mode/rfc +++ /dev/null @@ -1,12 +0,0 @@ -# -*- mode: snippet -*- -# name: React functional component -# key: rfc -# contributor: Ade Attwood -# -- -export interface $1Props {}; - -export const ${1:Name}:React.FC<$1Props> = (${2:props}) => { - return ( - ${0:
Component
} - ); -}; diff --git a/site-modules/core/files/emacs/spacemacs b/site-modules/core/files/emacs/spacemacs deleted file mode 100644 index 2ed722f..0000000 --- a/site-modules/core/files/emacs/spacemacs +++ /dev/null @@ -1,601 +0,0 @@ -;; -*- mode: emacs-lisp; lexical-binding: t -*- -;; This file is loaded by Spacemacs at startup. -;; It must be stored in your home directory. - -(defun dotspacemacs/layers () - "Layer configuration: -This function should only modify configuration layer settings." - (setq-default - ;; Base distribution to use. This is a layer contained in the directory - ;; `+distribution'. For now available distributions are `spacemacs-base' - ;; or `spacemacs'. (default 'spacemacs) - dotspacemacs-distribution 'spacemacs - - ;; Lazy installation of layers (i.e. layers are installed only when a file - ;; with a supported type is opened). Possible values are `all', `unused' - ;; and `nil'. `unused' will lazy install only unused layers (i.e. layers - ;; not listed in variable `dotspacemacs-configuration-layers'), `all' will - ;; lazy install any layer that support lazy installation even the layers - ;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy - ;; installation feature and you have to explicitly list a layer in the - ;; variable `dotspacemacs-configuration-layers' to install it. - ;; (default 'unused) - dotspacemacs-enable-lazy-installation 'unused - - ;; If non-nil then Spacemacs will ask for confirmation before installing - ;; a layer lazily. (default t) - dotspacemacs-ask-for-lazy-installation t - - ;; List of additional paths where to look for configuration layers. - ;; Paths must have a trailing slash (i.e. `~/.mycontribs/') - dotspacemacs-configuration-layer-path '() - - ;; List of configuration layers to load. - dotspacemacs-configuration-layers '( - ;; Custom Layers - private - - ;; Base Layers - git puppet version-control helm markdown docker spell-checking notmuch - (treemacs :variables treemacs-use-all-the-icons-theme t) - (lsp :variables lsp-enable-file-watchers nil lsp-headerline-breadcrumb-enable nil) - (org :variables org-enable-reveal-js-support t) - (shell :variables - terminal-here-terminal-command (list "alacritty") - shell-default-height 40 - shell-default-position 'bottom) - (unicode-fonts :variables - unicode-fonts-enable-ligatures t - unicode-fonts-ligature-modes '(prog-mode)) - (auto-completion :variables - auto-completion-enable-snippets-in-popup t - auto-completion-minimum-prefix-length 1 - auto-completion-enable-help-tooltip t - auto-completion-use-company-box t - auto-completion-enable-sort-by-usage t) - - ;; Work Layers - react prettier yaml - (typescript :variables typescript-backend 'lsp typescript-fmt-tool 'prettier typescript-linter 'eslint) - (javascript :variables javascript-backend 'lsp javascript-fmt-tool 'prettier) - (html :variables css-enable-lsp t html-enable-lsp t) - (php :variables php-backend 'lsp) - (csharp :variables csharp-backend 'lsp) - - ;; Play Layers - emacs-lisp chrome - (go :variables go-backend 'lsp go-tab-width 4 go-format-before-save t) - ;;(dart :variables dart-backend 'lsp lsp-dart-sdk-dir "~/snap/flutter/common/flutter/bin/cache/dart-sdk/") - (elfeed :variables - elfeed-feeds '(("https://www.php.net/feed.atom" dev php) - ("https://feeds.feedburner.com/d0od" blog dev) - ("https://protesilaos.com/news.xml" blog updates) - ("https://protesilaos.com/codelog.xml" blog dev emacs) - ("https://linuxscoop.com/feed" blog linux) - ("https://cestlaz.github.io/rss.xml" blog dev emacs) - ("https://changelog.com/feed" blog dev) - ("https://fedoramagazine.org/feed/" blog dev)))) - - ;; List of additional packages that will be installed without being - ;; wrapped in a layer. If you need some configuration for these - ;; packages, then consider creating a layer. You can also put the - ;; configuration in `dotspacemacs/user-config'. - ;; To use a local version of a package, use the `:location' property: - ;; '(your-package :location "~/path/to/your-package/") - ;; Also include the dependencies as they will not be resolved automatically. - dotspacemacs-additional-packages '(base16-theme doom-themes) - - ;; A list of packages that cannot be updated. - dotspacemacs-frozen-packages '() - - ;; A list of packages that will not be installed and loaded. - dotspacemacs-excluded-packages '() - - ;; Defines the behaviour of Spacemacs when installing packages. - ;; Possible values are `used-only', `used-but-keep-unused' and `all'. - ;; `used-only' installs only explicitly used packages and deletes any unused - ;; packages as well as their unused dependencies. `used-but-keep-unused' - ;; installs only the used packages but won't delete unused ones. `all' - ;; installs *all* packages supported by Spacemacs and never uninstalls them. - ;; (default is `used-only') - dotspacemacs-install-packages 'used-only)) - -(defun dotspacemacs/init () - "Initialization: -This function is called at the very beginning of Spacemacs startup, -before layer configuration. -It should only modify the values of Spacemacs settings." - ;; This setq-default sexp is an exhaustive list of all the supported - ;; spacemacs settings. - (setq-default - ;; If non-nil then enable support for the portable dumper. You'll need - ;; to compile Emacs 27 from source following the instructions in file - ;; EXPERIMENTAL.org at to root of the git repository. - ;; (default nil) - dotspacemacs-enable-emacs-pdumper nil - - ;; Name of executable file pointing to emacs 27+. This executable must be - ;; in your PATH. - ;; (default "emacs") - dotspacemacs-emacs-pdumper-executable-file "emacs" - - ;; Name of the Spacemacs dump file. This is the file will be created by the - ;; portable dumper in the cache directory under dumps sub-directory. - ;; To load it when starting Emacs add the parameter `--dump-file' - ;; when invoking Emacs 27.1 executable on the command line, for instance: - ;; ./emacs --dump-file=$HOME/.emacs.d/.cache/dumps/spacemacs-27.1.pdmp - ;; (default spacemacs-27.1.pdmp) - dotspacemacs-emacs-dumper-dump-file (format "spacemacs-%s.pdmp" emacs-version) - - ;; If non-nil ELPA repositories are contacted via HTTPS whenever it's - ;; possible. Set it to nil if you have no way to use HTTPS in your - ;; environment, otherwise it is strongly recommended to let it set to t. - ;; This variable has no effect if Emacs is launched with the parameter - ;; `--insecure' which forces the value of this variable to nil. - ;; (default t) - dotspacemacs-elpa-https t - - ;; Maximum allowed time in seconds to contact an ELPA repository. - ;; (default 5) - dotspacemacs-elpa-timeout 5 - - ;; Set `gc-cons-threshold' and `gc-cons-percentage' when startup finishes. - ;; This is an advanced option and should not be changed unless you suspect - ;; performance issues due to garbage collection operations. - ;; (default '(100000000 0.1)) - dotspacemacs-gc-cons '(100000000 0.1) - - ;; Set `read-process-output-max' when startup finishes. - ;; This defines how much data is read from a foreign process. - ;; Setting this >= 1 MB should increase performance for lsp servers - ;; in emacs 27. - ;; (default (* 1024 1024)) - dotspacemacs-read-process-output-max (* 1024 1024) - - ;; If non-nil then Spacelpa repository is the primary source to install - ;; a locked version of packages. If nil then Spacemacs will install the - ;; latest version of packages from MELPA. (default nil) - dotspacemacs-use-spacelpa nil - - ;; If non-nil then verify the signature for downloaded Spacelpa archives. - ;; (default t) - dotspacemacs-verify-spacelpa-archives t - - ;; If non-nil then spacemacs will check for updates at startup - ;; when the current branch is not `develop'. Note that checking for - ;; new versions works via git commands, thus it calls GitHub services - ;; whenever you start Emacs. (default nil) - dotspacemacs-check-for-update nil - - ;; If non-nil, a form that evaluates to a package directory. For example, to - ;; use different package directories for different Emacs versions, set this - ;; to `emacs-version'. (default 'emacs-version) - dotspacemacs-elpa-subdirectory 'emacs-version - - ;; One of `vim', `emacs' or `hybrid'. - ;; `hybrid' is like `vim' except that `insert state' is replaced by the - ;; `hybrid state' with `emacs' key bindings. The value can also be a list - ;; with `:variables' keyword (similar to layers). Check the editing styles - ;; section of the documentation for details on available variables. - ;; (default 'vim) - dotspacemacs-editing-style 'vim - - ;; If non-nil show the version string in the Spacemacs buffer. It will - ;; appear as (spacemacs version)@(emacs version) - ;; (default t) - dotspacemacs-startup-buffer-show-version t - - ;; Specify the startup banner. Default value is `official', it displays - ;; the official spacemacs logo. An integer value is the index of text - ;; banner, `random' chooses a random text banner in `core/banners' - ;; directory. A string value must be a path to an image format supported - ;; by your Emacs build. - ;; If the value is nil then no banner is displayed. (default 'official) - dotspacemacs-startup-banner 'official - - ;; List of items to show in startup buffer or an association list of - ;; the form `(list-type . list-size)`. If nil then it is disabled. - ;; Possible values for list-type are: - ;; `recents' `bookmarks' `projects' `agenda' `todos'. - ;; List sizes may be nil, in which case - ;; `spacemacs-buffer-startup-lists-length' takes effect. - dotspacemacs-startup-lists '((recents . 5) - (projects . 7)) - - ;; True if the home buffer should respond to resize events. (default t) - dotspacemacs-startup-buffer-responsive t - - ;; Default major mode for a new empty buffer. Possible values are mode - ;; names such as `text-mode'; and `nil' to use Fundamental mode. - ;; (default `text-mode') - dotspacemacs-new-empty-buffer-major-mode 'text-mode - - ;; Default major mode of the scratch buffer (default `text-mode') - dotspacemacs-scratch-mode 'text-mode - - ;; Initial message in the scratch buffer, such as "Welcome to Spacemacs!" - ;; (default nil) - dotspacemacs-initial-scratch-message nil - - ;; List of themes, the first of the list is loaded when spacemacs starts. - ;; Press `SPC T n' to cycle to the next theme in the list (works great - ;; with 2 themes variants, one dark and one light) - dotspacemacs-themes '(base16-ocean - base16-tomorrow-night - spacemacs-dark) - - ;; Set the theme for the Spaceline. Supported themes are `spacemacs', - ;; `all-the-icons', `custom', `doom', `vim-powerline' and `vanilla'. The - ;; first three are spaceline themes. `doom' is the doom-emacs mode-line. - ;; `vanilla' is default Emacs mode-line. `custom' is a user defined themes, - ;; refer to the DOCUMENTATION.org for more info on how to create your own - ;; spaceline theme. Value can be a symbol or list with additional properties. - ;; (default '(spacemacs :separator wave :separator-scale 1.5)) - dotspacemacs-mode-line-theme '(doom :separator nil :separator-scale 1.5) - - ;; If non-nil the cursor color matches the state color in GUI Emacs. - ;; (default t) - dotspacemacs-colorize-cursor-according-to-state t - - ;; Default font or prioritized list of fonts. - ;;dotspacemacs-default-font '("Fira Code" :size 10.0) - ;; dotspacemacs-default-font '("LigaFreeMono" :size 12.0) - dotspacemacs-default-font '("Hasklig" :size 12.0) - - ;; The leader key (default "SPC") - dotspacemacs-leader-key "SPC" - - ;; The key used for Emacs commands `M-x' (after pressing on the leader key). - ;; (default "SPC") - dotspacemacs-emacs-command-key "SPC" - - ;; The key used for Vim Ex commands (default ":") - dotspacemacs-ex-command-key ":" - - ;; The leader key accessible in `emacs state' and `insert state' - ;; (default "M-m") - dotspacemacs-emacs-leader-key "M-m" - - ;; Major mode leader key is a shortcut key which is the equivalent of - ;; pressing ` m`. Set it to `nil` to disable it. (default ",") - dotspacemacs-major-mode-leader-key "," - - ;; Major mode leader key accessible in `emacs state' and `insert state'. - ;; (default "C-M-m" for terminal mode, "" for GUI mode). - ;; Thus M-RET should work as leader key in both GUI and terminal modes. - ;; C-M-m also should work in terminal mode, but not in GUI mode. - dotspacemacs-major-mode-emacs-leader-key (if window-system "" "C-M-m") - - ;; These variables control whether separate commands are bound in the GUI to - ;; the key pairs `C-i', `TAB' and `C-m', `RET'. - ;; Setting it to a non-nil value, allows for separate commands under `C-i' - ;; and TAB or `C-m' and `RET'. - ;; In the terminal, these pairs are generally indistinguishable, so this only - ;; works in the GUI. (default nil) - dotspacemacs-distinguish-gui-tab nil - - ;; Name of the default layout (default "Default") - dotspacemacs-default-layout-name "Default" - - ;; If non-nil the default layout name is displayed in the mode-line. - ;; (default nil) - dotspacemacs-display-default-layout nil - - ;; If non-nil then the last auto saved layouts are resumed automatically upon - ;; start. (default nil) - dotspacemacs-auto-resume-layouts nil - - ;; If non-nil, auto-generate layout name when creating new layouts. Only has - ;; effect when using the "jump to layout by number" commands. (default nil) - dotspacemacs-auto-generate-layout-names nil - - ;; Size (in MB) above which spacemacs will prompt to open the large file - ;; literally to avoid performance issues. Opening a file literally means that - ;; no major mode or minor modes are active. (default is 1) - dotspacemacs-large-file-size 1 - - ;; Location where to auto-save files. Possible values are `original' to - ;; auto-save the file in-place, `cache' to auto-save the file to another - ;; file stored in the cache directory and `nil' to disable auto-saving. - ;; (default 'cache) - dotspacemacs-auto-save-file-location nil - - ;; Maximum number of rollback slots to keep in the cache. (default 5) - dotspacemacs-max-rollback-slots 0 - - ;; If non-nil, the paste transient-state is enabled. While enabled, after you - ;; paste something, pressing `C-j' and `C-k' several times cycles through the - ;; elements in the `kill-ring'. (default nil) - dotspacemacs-enable-paste-transient-state nil - - ;; Which-key delay in seconds. The which-key buffer is the popup listing - ;; the commands bound to the current keystroke sequence. (default 0.4) - dotspacemacs-which-key-delay 0.4 - - ;; Which-key frame position. Possible values are `right', `bottom' and - ;; `right-then-bottom'. right-then-bottom tries to display the frame to the - ;; right; if there is insufficient space it displays it at the bottom. - ;; (default 'bottom) - dotspacemacs-which-key-position 'bottom - - ;; Control where `switch-to-buffer' displays the buffer. If nil, - ;; `switch-to-buffer' displays the buffer in the current window even if - ;; another same-purpose window is available. If non-nil, `switch-to-buffer' - ;; displays the buffer in a same-purpose window even if the buffer can be - ;; displayed in the current window. (default nil) - dotspacemacs-switch-to-buffer-prefers-purpose nil - - ;; If non-nil a progress bar is displayed when spacemacs is loading. This - ;; may increase the boot time on some systems and emacs builds, set it to - ;; nil to boost the loading time. (default t) - dotspacemacs-loading-progress-bar t - - ;; If non-nil the frame is fullscreen when Emacs starts up. (default nil) - ;; (Emacs 24.4+ only) - dotspacemacs-fullscreen-at-startup nil - - ;; If non-nil `spacemacs/toggle-fullscreen' will not use native fullscreen. - ;; Use to disable fullscreen animations in OSX. (default nil) - dotspacemacs-fullscreen-use-non-native nil - - ;; If non-nil the frame is maximized when Emacs starts up. - ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil. - ;; (default nil) (Emacs 24.4+ only) - dotspacemacs-maximized-at-startup nil - - ;; If non-nil the frame is undecorated when Emacs starts up. Combine this - ;; variable with `dotspacemacs-maximized-at-startup' in OSX to obtain - ;; borderless fullscreen. (default nil) - dotspacemacs-undecorated-at-startup nil - - ;; A value from the range (0..100), in increasing opacity, which describes - ;; the transparency level of a frame when it's active or selected. - ;; Transparency can be toggled through `toggle-transparency'. (default 90) - dotspacemacs-active-transparency 90 - - ;; A value from the range (0..100), in increasing opacity, which describes - ;; the transparency level of a frame when it's inactive or deselected. - ;; Transparency can be toggled through `toggle-transparency'. (default 90) - dotspacemacs-inactive-transparency 90 - - ;; If non-nil show the titles of transient states. (default t) - dotspacemacs-show-transient-state-title t - - ;; If non-nil show the color guide hint for transient state keys. (default t) - dotspacemacs-show-transient-state-color-guide t - - ;; If non-nil unicode symbols are displayed in the mode line. - ;; If you use Emacs as a daemon and wants unicode characters only in GUI set - ;; the value to quoted `display-graphic-p'. (default t) - dotspacemacs-mode-line-unicode-symbols t - - ;; If non-nil smooth scrolling (native-scrolling) is enabled. Smooth - ;; scrolling overrides the default behavior of Emacs which recenters point - ;; when it reaches the top or bottom of the screen. (default t) - dotspacemacs-smooth-scrolling t - - ;; Control line numbers activation. - ;; If set to `t', `relative' or `visual' then line numbers are enabled in all - ;; `prog-mode' and `text-mode' derivatives. If set to `relative', line - ;; numbers are relative. If set to `visual', line numbers are also relative, - ;; but lines are only visual lines are counted. For example, folded lines - ;; will not be counted and wrapped lines are counted as multiple lines. - ;; This variable can also be set to a property list for finer control: - ;; '(:relative nil - ;; :visual nil - ;; :disabled-for-modes dired-mode - ;; doc-view-mode - ;; markdown-mode - ;; org-mode - ;; pdf-view-mode - ;; text-mode - ;; :size-limit-kb 1000) - ;; When used in a plist, `visual' takes precedence over `relative'. - ;; (default nil) - dotspacemacs-line-numbers nil - - ;; Code folding method. Possible values are `evil' and `origami'. - ;; (default 'evil) - dotspacemacs-folding-method 'evil - - ;; If non-nil `smartparens-strict-mode' will be enabled in programming modes. - ;; (default nil) - dotspacemacs-smartparens-strict-mode nil - - ;; If non-nil pressing the closing parenthesis `)' key in insert mode passes - ;; over any automatically added closing parenthesis, bracket, quote, etc... - ;; This can be temporary disabled by pressing `C-q' before `)'. (default nil) - dotspacemacs-smart-closing-parenthesis nil - - ;; Select a scope to highlight delimiters. Possible values are `any', - ;; `current', `all' or `nil'. Default is `all' (highlight any scope and - ;; emphasis the current one). (default 'all) - dotspacemacs-highlight-delimiters 'all - - ;; If non-nil, start an Emacs server if one is not already running. - ;; (default nil) - dotspacemacs-enable-server t - - ;; Set the emacs server socket location. - ;; If nil, uses whatever the Emacs default is, otherwise a directory path - ;; like \"~/.emacs.d/server\". It has no effect if - ;; `dotspacemacs-enable-server' is nil. - ;; (default nil) - dotspacemacs-server-socket-dir nil - - ;; If non-nil, advise quit functions to keep server open when quitting. - ;; (default nil) - dotspacemacs-persistent-server nil - - ;; List of search tool executable names. Spacemacs uses the first installed - ;; tool of the list. Supported tools are `rg', `ag', `pt', `ack' and `grep'. - ;; (default '("rg" "ag" "pt" "ack" "grep")) - dotspacemacs-search-tools '("ag" "rg" "pt" "ack" "grep") - - ;; Format specification for setting the frame title. - ;; %a - the `abbreviated-file-name', or `buffer-name' - ;; %t - `projectile-project-name' - ;; %I - `invocation-name' - ;; %S - `system-name' - ;; %U - contents of $USER - ;; %b - buffer name - ;; %f - visited file name - ;; %F - frame name - ;; %s - process status - ;; %p - percent of buffer above top of window, or Top, Bot or All - ;; %P - percent of buffer above bottom of window, perhaps plus Top, or Bot or All - ;; %m - mode name - ;; %n - Narrow if appropriate - ;; %z - mnemonics of buffer, terminal, and keyboard coding systems - ;; %Z - like %z, but including the end-of-line format - ;; (default "%I@%S") - dotspacemacs-frame-title-format '"%I@%S" - - ;; Format specification for setting the icon title format - ;; (default nil - same as frame-title-format) - dotspacemacs-icon-title-format nil - - ;; Delete whitespace while saving buffer. Possible values are `all' - ;; to aggressively delete empty line and long sequences of whitespace, - ;; `trailing' to delete only the whitespace at end of lines, `changed' to - ;; delete only whitespace for changed lines or `nil' to disable cleanup. - ;; (default nil) - dotspacemacs-whitespace-cleanup t - - ;; If non nil activate `clean-aindent-mode' which tries to correct - ;; virtual indentation of simple modes. This can interfer with mode specific - ;; indent handling like has been reported for `go-mode'. - ;; If it does deactivate it here. - ;; (default t) - dotspacemacs-use-clean-aindent-mode t - - ;; Either nil or a number of seconds. If non-nil zone out after the specified - ;; number of seconds. (default nil) - dotspacemacs-zone-out-when-idle nil - - ;; Run `spacemacs/prettify-org-buffer' when - ;; visiting README.org files of Spacemacs. - ;; (default nil) - dotspacemacs-pretty-docs nil)) - -;; (with-eval-after-load 'org -;; (setq org-directory "~/Nextcloud/org")) - -(defun dotspacemacs/user-env () - "Environment variables setup. -This function defines the environment variables for your Emacs session. By -default it calls `spacemacs/load-spacemacs-env' which loads the environment -variables declared in `~/.spacemacs.env' or `~/.spacemacs.d/.spacemacs.env'. -See the header of this file for more information." - (spacemacs/load-spacemacs-env)) - -(defun dotspacemacs/user-init () - "Initialization for user code: -This function is called immediately after `dotspacemacs/init', before layer -configuration. -It is mostly for variables that should be set before packages are loaded. -If you are unsure, try setting them in `dotspacemacs/user-config' first." - - ;; Fix terminal color theme for base16 - ;; See: https://github.com/belak/base16-emacs#terminal-colors - ;; See: https://github.com/belak/base16-emacs/issues/73#issuecomment-721942335 - (setq base16-theme-256-color-source 'base16-shell) - (setq base16-distinct-fringe-background nil) - - ;; doom modeline config - (setq doom-modeline-icon t) - - ;; Force magit status to go full screen - (setq-default git-magit-status-fullscreen t)) - -(defun dotspacemacs/user-load () - "Library to load while dumping. -This function is called only while dumping Spacemacs configuration. You can -`require' or `load' the libraries of your choice that will be included in the -dump." - ) - -(defun dotspacemacs/user-config () - "Configuration for user code: - This function is called at the very end of Spacemacs startup, after layer - configuration. - Put your configuration code here, except for variables that should be set - before packages are loaded." - - ;; Enable company auto completion globally - (global-company-mode) - - ;; Disable lock files to it dose not create .#file.txt when editing a file. - ;; This causes webpack and react dev server to crash - (setq create-lockfiles nil) - - ;; Set scroll offset to emulate vims `scrolloff` - (setq scroll-margin 30) - - ;; Disable line wraping - (add-hook 'hack-local-variables-hook (lambda () (setq truncate-lines t))) - - ;; Set window movement to CTRL hjkl to emulate tmux vim interaction - (global-set-key (kbd "C-h") 'evil-window-left) - (global-set-key (kbd "C-j") 'evil-window-down) - (global-set-key (kbd "C-l") 'evil-window-right) - (global-set-key (kbd "C-k") 'evil-window-up) - - ;; Allow CTRL-r to search back in the terminal - (defun aa/setup-term-mode () - (evil-local-set-key 'insert (kbd "C-r") 'aa/send-C-r)) - - (defun aa/send-C-r () - (interactive) - (term-send-raw-string "\C-r")) - - (add-hook 'vterm-mode-hook 'aa/setup-term-mode) - (add-hook 'term-mode-hook 'aa/setup-term-mode) - - ;; Sort out line numbers - ;; https://stackoverflow.com/a/23857738 - (defadvice server-visit-files (before parse-numbers-in-lines (files proc &optional nowait) activate) - "looks for filenames like file:line or file:line:position and reparses name in such manner that position in file" - (ad-set-arg 0 - (mapcar (lambda (fn) - (let ((name (car fn))) - (if (string-match "^\\(.*?\\):\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?$" name) - (cons - (match-string 1 name) - (cons (string-to-number (match-string 2 name)) - (string-to-number (or (match-string 3 name) ""))) - ) - fn))) files)) - ) - ;; Define a kanban style set of stages for todo tasks - (with-eval-after-load 'org - (setq org-todo-keywords - '((sequence "TODO" "WAITING" "REVIEW" "|" "DONE" "ARCHIVED")))) - - ;; Set indent guide to be set recursive when enabled. It is not on by default - ;; you must call `spacemacs/toggle-indent-guide-globally-on` to enable the - ;; indent guides - (setq indent-guide-recursive t)) - -;; Do not write anything past this comment. This is where Emacs will -;; auto-generate custom variable definitions. -(defun dotspacemacs/emacs-custom-settings () - "Emacs custom settings. -This is an auto-generated function, do not modify its content directly, use -Emacs customize menu instead. -This function is called at the very end of Spacemacs initialization." -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(evil-want-Y-yank-to-eol nil) - '(package-selected-packages - '(flycheck-psalm ox-json nginx-mode lsp-dart dap-mode posframe bui flutter dart-server dart-mode helm-gtags ggtags counsel-gtags counsel swiper ivy company-lua lua-mode yasnippet-snippets yaml-mode xterm-color ws-butler writeroom-mode winum which-key web-mode web-beautify vterm volatile-highlights vi-tilde-fringe uuidgen use-package treemacs-projectile treemacs-persp treemacs-magit treemacs-icons-dired treemacs-evil toc-org tide terminal-here tagedit symon symbol-overlay string-inflection spaceline-all-the-icons smeargle slim-mode shell-pop scss-mode sass-mode rjsx-mode restart-emacs rainbow-delimiters pug-mode prettier-js popwin phpunit phpcbf php-extras php-auto-yasnippets pcre2el password-generator paradox overseer orgit org-superstar org-projectile org-present org-pomodoro org-mime org-download org-cliplink org-brain open-junk-file nodejs-repl nameless multi-term move-text mmm-mode markdown-toc magit-svn magit-section magit-gitflow macrostep lsp-ui lsp-treemacs lorem-ipsum livid-mode link-hint json-navigator js2-refactor js-doc indent-guide impatient-mode hybrid-mode hungry-delete hl-todo highlight-parentheses highlight-numbers highlight-indentation helm-xref helm-themes helm-swoop helm-purpose helm-projectile helm-org-rifle helm-org helm-notmuch helm-mode-manager helm-make helm-lsp helm-ls-git helm-gitignore helm-git-grep helm-flx helm-descbinds helm-css-scss helm-company helm-c-yasnippet helm-ag google-translate golden-ratio gnuplot gmail-message-mode gitignore-templates gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link git-gutter-fringe+ gh-md fuzzy font-lock+ flyspell-correct-helm flymd flycheck-pos-tip flycheck-package flycheck-elsa flx-ido fill-column-indicator fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-textobj-line evil-surround evil-org evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-magit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-escape evil-ediff evil-cleverparens evil-args evil-anzu eval-sexp-fu eshell-z eshell-prompt-extras esh-help emr emmet-mode elisp-slime-nav editorconfig edit-server dumb-jump drupal-mode dotenv-mode dockerfile-mode docker diminish devdocs define-word company-web company-statistics company-quickhelp column-enforce-mode clean-aindent-mode centered-cursor-mode browse-at-remote base16-theme auto-yasnippet auto-highlight-symbol auto-dictionary auto-compile aggressive-indent ace-link ace-jump-helm-line ac-ispell))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) -) diff --git a/site-modules/core/files/emacs/src/development.el b/site-modules/core/files/emacs/src/development.el deleted file mode 100644 index 7bf46ce..0000000 --- a/site-modules/core/files/emacs/src/development.el +++ /dev/null @@ -1,155 +0,0 @@ -;;; development.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ -;; -;; The main development configuration common development packages -;; like lsp and flycheck - -(use-package lsp-mode - :commands (lsp lsp-deferred) - :config - (setq-default - lsp-intelephense-completion-trigger-parameter-hints nil - lsp-clients-clangd-args '("--clang-tidy" "--header-insertion-decorators=0") - lsp-auto-guess-root t - lsp-headerline-breadcrumb-enable nil - lsp-enable-file-watchers nil - lsp-keep-workspace-alive nil - lsp-modeline-diagnostics-scope :project)) - -(advice-add 'lsp :before (lambda (&rest _args) (eval '(setf (lsp-session-server-id->folders (lsp-session)) (ht))))) - -(use-package lsp-ui - :hook (lsp-mode . lsp-ui-mode)) - -(use-package lsp-ivy) - -(defun do-yas-expand () - (let ((yas/fallback-behavior 'return-nil)) - (yas/expand))) - -(defun aa/expand () - (interactive) - (if (or (not yas/minor-mode) - (null (do-yas-expand))) - (if (string-empty-p (thing-at-point 'word 'no-properties)) - (indent-for-tab-command) - (if (fboundp 'emmet-expand-yas) - (emmet-expand-yas))))) - -(define-key evil-insert-state-map (kbd "C-e") 'aa/expand) - -(use-package company - :after lsp-mode - :bind - (:map company-active-map - ("RET" . company-complete) - ("C-l" . yas-next-field-or-maybe-expand) - ("" . aa/expand) - ("TAB" . aa/expand)) - :config - (setq company-idle-delay 0) - (setq company-echo-delay 0) - (setq company-minimum-prefix-length 1) - (setq company-tooltip-limit 15) - ;; (setq company-dabbrev-downcase nil) - ;; (setq-default company-backends - ;; '((company-capf - ;; :with - ;; company-yasnippet - ;; company-files))) - (global-company-mode) - :hook (lsp-mode . company-mode)) - -(use-package company-box - :hook (company-mode . company-box-mode) - :config - (setq - company-box-backends-colors nil - company-box-icons-alist 'company-box-icons-all-the-icons)) - -(use-package flycheck - :init (global-flycheck-mode) - :config - (setq flycheck-check-syntax-automatically '(mode-enabled save)) - (setq flycheck-phpcs-standard "PSR2") - (setq flycheck-disabled-checkers '(emacs-lisp-checkdoc))) - -;; Define local checkers so we can add next checkers per mode. LSP mode takes -;; priority and we can define the next checker in the mode hooks. Each language -;; will define there checkers if needed. -;; -;; Example usage for adding the php checker for php-mode -;; (setq flycheck-local-checkers '((lsp . ((next-checkers . (php)))))) -(defvar-local flycheck-local-checkers nil) -(defun +flycheck-checker-get(fn checker property) - (or (alist-get property (alist-get checker flycheck-local-checkers)) - (funcall fn checker property))) -(advice-add 'flycheck-checker-get :around '+flycheck-checker-get) - -;; Set the default column width to 80. The default in emacs is 70 that is too small for me -(setq-default fill-column 80) -(setq-default display-fill-column-indicator-column 80) - -(setq compilation-scroll-output 'first-error) - -;; Set the default line number style to relative so when they are turned on I -;; dont need to worry about that -(setq display-line-numbers-type 'relative) -(add-hook 'prog-mode-hook 'display-line-numbers-mode) - -(use-package tree-sitter) -(use-package tree-sitter-langs) - -(use-package magit - :init - ;; Force magit status to go full screen - (setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)) - -(use-package magit-todos - :init - (magit-todos-mode 1) - (global-hl-todo-mode)) - -(use-package smartparens - :config - (require 'smartparens-config) - :init - (smartparens-global-mode)) - -;; To set different remote tyeps see https://github.com/rmuslimov/browse-at-remote#remote-types -(use-package browse-at-remote :defer t) - -(use-package string-inflection :defer t) - -(define-minor-mode aa-tab-mode - "Tab mode by me" - :lighter " aa-tab" - :global nil - (define-key prog-mode-map (kbd "") 'aa/expand) - (define-key prog-mode-map (kbd "TAB") 'aa/expand)) - -(define-globalized-minor-mode global-aa-tab-mode aa-tab-mode - (lambda () (aa-tab-mode 1))) - -(global-aa-tab-mode) - -;; https://people.gnome.org/~federico/blog/compilation-notifications-in-emacs.html -;; (setq compilation-finish-functions -;; (append compilation-finish-functions -;; '(fmq-compilation-finish))) - -(setq compilation-finish-functions - '(fmq-compilation-finish)) - -(defun fmq-compilation-finish (buffer status) - (print status) - (call-process "notify-send" nil nil nil - "-t" "30000" ;; Display notification for 30 seconds - "-i" (if (string-match "^finished" status) "dialog-ok" "dialog-no") - "Compilation finished in Emacs" - status)) diff --git a/site-modules/core/files/emacs/src/evil.el b/site-modules/core/files/emacs/src/evil.el deleted file mode 100644 index 9923b88..0000000 --- a/site-modules/core/files/emacs/src/evil.el +++ /dev/null @@ -1,56 +0,0 @@ -;;; evil.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(defun aa/semicolon-at-end-of-line () - (interactive) - (end-of-line) - (insert ";")) - -(use-package evil - :init - (setq evil-want-integration t) - (setq evil-want-keybinding nil) - (setq evil-want-C-u-scroll t) - (setq evil-want-C-i-jump nil) - :config - (evil-mode 1) - ;; Set window movement to CTRL hjkl to emulate tmux vim interaction - (global-set-key (kbd "C-h") 'evil-window-left) - (global-set-key (kbd "C-j") 'evil-window-down) - (global-set-key (kbd "C-l") 'evil-window-right) - (global-set-key (kbd "C-k") 'evil-window-up) - - (evil-set-initial-state 'messages-buffer-mode 'normal) - (evil-set-initial-state 'dashboard-mode 'normal) - - (define-key evil-insert-state-map (kbd "C-;") 'aa/semicolon-at-end-of-line)) - -(use-package evil-collection - :after evil - :config - (evil-collection-init)) - -(use-package evil-commentary - :init - (evil-commentary-mode)) - -(use-package evil-surround - :after evil - :init - ;; `s' for surround instead of `substitute' - ;; see motivation here: - ;; https://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org#the-vim-surround-case - (evil-define-key 'visual evil-surround-mode-map "s" 'evil-surround-region) - (evil-define-key 'visual evil-surround-mode-map "S" 'evil-substitute) - :config - (global-evil-surround-mode 1)) - -(use-package evil-multiedit - :after evil-collection - :config - (evil-multiedit-default-keybinds)) diff --git a/site-modules/core/files/emacs/src/file-operations.el b/site-modules/core/files/emacs/src/file-operations.el deleted file mode 100644 index 9410a3b..0000000 --- a/site-modules/core/files/emacs/src/file-operations.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; file-operations.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(defun rename-current-file (new-name) - "Renames both current buffer and file it's visiting to NEW-NAME." - (interactive "FNew name: ") - (let ((name (buffer-name)) - (filename (buffer-file-name))) - (if (not filename) - (message "Buffer '%s' is not visiting a file!" name) - (if (get-buffer new-name) - (message "A buffer named '%s' already exists!" new-name) - (progn - (make-directory (file-name-directory new-name) t) - (rename-file filename new-name 1) - (rename-buffer new-name) - (set-visited-file-name new-name) - (set-buffer-modified-p nil)))))) - -(defun copy-current-file (new-name) - "Copies both current buffer and file it's visiting to NEW-NAME." - (interactive "FNew name: ") - (let ((name (buffer-name)) - (filename (buffer-file-name))) - (if (not filename) - (message "Buffer '%s' is not visiting a file!" name) - (if (get-buffer new-name) - (message "A buffer named '%s' already exists!" new-name) - (progn - (make-directory (file-name-directory new-name) t) - (copy-file filename new-name 1) - (find-file new-name) - (set-visited-file-name new-name) - (set-buffer-modified-p nil)))))) - diff --git a/site-modules/core/files/emacs/src/format.el b/site-modules/core/files/emacs/src/format.el deleted file mode 100644 index 506ac19..0000000 --- a/site-modules/core/files/emacs/src/format.el +++ /dev/null @@ -1,111 +0,0 @@ -;;; format.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ -;; -;;; Commentary: -;; -;;; Code: - -;; Ensure the reformatter package is installed -(quelpa '(reformatter :fetcher git :url "https://github.com/purcell/emacs-reformatter")) -(require 'reformatter) -(require 'projectile) - -(defun fmt--find-prettier () - "Find the 'prittier' executable. -This will be found from the project node_modules with a fall back to the -globally installed package" - (let ((project-prittier (concat (projectile-project-root) "node_modules/.bin/prettier"))) - (message project-prittier) - (if (file-exists-p project-prittier) - project-prittier - "prettier"))) - -(defun fmt--find-phpcbf () - "Find the phpcbf executable. -It will look first in the locally installed version in your vendor folder, if -that cant be fond then it will try and use the globally installed executable" - (let ((project-prittier (concat (projectile-project-root) "vendor/bin/phpcbf"))) - (message project-prittier) - (if (file-exists-p project-prittier) - project-prittier - "phpcbf"))) - -(defun fmt--find-php-ruleset () - "Find the phpcs ruleset for the current project. -If there is a 'ruleset.xml' file in your project root that will be used, if not -then the 'psr2' ruleset will be used" - (let ((project-prittier (concat (projectile-project-root) "ruleset.xml"))) - (message project-prittier) - (if (file-exists-p project-prittier) - project-prittier - "psr2"))) - -(reformatter-define prettier-fmt - :program (fmt--find-prettier) - :args (list "--stdin-filepath" (buffer-file-name)) - :group 'fmt - :lighter " PrettierFMT") - -(reformatter-define phpcbf-fmt - :program (fmt--find-phpcbf) - :args (list (format "--standard=%s" (fmt--find-php-ruleset)) "-") - :group 'fmt - :exit-code-success-p (lambda (number) (= 1 number)) - :lighter " PhpCbfFMT") - -(reformatter-define clang-fmt - :program "clang-format" - :args (list "--assume-filename" (buffer-file-name)) - :group 'fmt - :lighter " ClangFMT") - -;; Define our own jsonnet formatter. This is way faster then the -;; 'jsonnet-reformat-buffer command that comes with jsonnet-mode -(reformatter-define jsonnet-fmt - :program "jsonnetfmt" - :args (list "-") - :group 'fmt - :lighter " JsonnetFMT") - -;; Set the gofmt command to be goimports we can use the built in functions in -;; go-mode they work just fine -(setq gofmt-command "goimports") - -(defun fmt-buffer () - "Format the current buffer." - (interactive) - (cond - ((eq major-mode 'c++-mode) (clang-fmt)) - ((eq major-mode 'css-mode) (prettier-fmt)) - ((eq major-mode 'go-mode) (gofmt)) - ((eq major-mode 'js2-mode) (prettier-fmt)) - ((eq major-mode 'jsonnet-mode) (jsonnet-fmt)) - ((eq major-mode 'markdown-mode) (prettier-fmt)) - ((eq major-mode 'php-mode) (phpcbf-fmt)) - ((eq major-mode 'scss-mode) (prettier-fmt)) - ((eq major-mode 'typescript-mode) (prettier-fmt)) - ((eq major-mode 'typescript-tsx-mode) (prettier-fmt)) - ((eq major-mode 'web-mode) (prettier-fmt)) - ((eq major-mode 'yaml-mode) (prettier-fmt)) - ((eq 1 1) (message "No formatter found")))) - -;;;###autoload -(define-minor-mode fmt-mode - "Run fmt on file save when this mode is turned on." - :lighter " fmt" - :global nil - (if fmt-mode - (add-hook 'before-save-hook 'fmt-buffer nil 'local) - (remove-hook 'before-save-hook 'fmt-buffer 'local))) - -(define-globalized-minor-mode global-fmt-mode fmt-mode - (lambda () (fmt-mode 1))) - -(provide 'format) -;;; format.el ends here - diff --git a/site-modules/core/files/emacs/src/general.el b/site-modules/core/files/emacs/src/general.el deleted file mode 100644 index 443fa44..0000000 --- a/site-modules/core/files/emacs/src/general.el +++ /dev/null @@ -1,78 +0,0 @@ -;;; general.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -;; no-littering doesn't set this by default so we must place -;; auto save files in the same path as it uses for sessions -(use-package no-littering) -(setq auto-save-file-name-transforms - `((".*" ,(no-littering-expand-var-file-name "auto-save/") t))) - -;; Disable .# lock files. Then sends all directory watch tasks crazy. It also -;; make compiling applications fail when you have unsaved files -(setq create-lockfiles nil) - -;; Don't wrap lines -(set-default 'truncate-lines t) - -;; Set the default tab width to 4 from the default 8. This is only -;; really used in go and makefiles and 8 if just silly -(set-default 'tab-width 4) - -;; Make ESC quit prompts -(global-set-key (kbd "") 'keyboard-escape-quit) - -(use-package which-key - :init (which-key-mode) - :diminish which-key-mode - :config - (setq which-key-idle-delay 1)) - -(use-package flyspell-correct-ivy - :bind ("C-M-;" . flyspell-correct-next) - :init - (add-hook 'text-mode-hook 'flyspell-mode) - (add-hook 'org-mode-hook 'flyspell-mode) - (add-hook 'prog-mode-hook 'flyspell-prog-mode) - (setq flyspell-correct-interface #'flyspell-correct-ivy) - (setq ispell-dictionary "british")) - -(use-package yasnippet - :config - (yas-global-mode) - :init - (setq yas-snippet-dirs '("~/.emacs.d/snippets"))) - -;; Sort out line numbers -;; https://stackoverflow.com/a/23857738 -(defadvice server-visit-files (before parse-numbers-in-lines (files proc &optional nowait) activate) - "looks for filenames like file:line or file:line:position and reparses name in such manner that position in file" - (ad-set-arg 0 - (mapcar (lambda (fn) - (let ((name (car fn))) - (if (string-match "^\\(.*?\\):\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?$" name) - (cons - (match-string 1 name) - (cons (string-to-number (match-string 2 name)) - (string-to-number (or (match-string 3 name) ""))) - ) - fn))) files))) - -;; Move the custom variables that are auto generated by emacs into -;; there own file. This will then prevent them from cluttering the -;; init.el and messing put git -(setq custom-file (concat user-emacs-directory "custom.el")) -(load custom-file 'noerror) - -(use-package edit-server - :commands edit-server-start - :init (if after-init-time - (edit-server-start) - (add-hook 'after-init-hook - #'(lambda() (edit-server-start))))) - -(add-hook 'edit-server-start-hook 'markdown-mode) diff --git a/site-modules/core/files/emacs/src/ivy.el b/site-modules/core/files/emacs/src/ivy.el deleted file mode 100644 index 455bf11..0000000 --- a/site-modules/core/files/emacs/src/ivy.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; ivy.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package ivy - :diminish - :bind (:map ivy-minibuffer-map - ("TAB" . ivy-alt-done) - ("C-l" . ivy-alt-done) - ("C-j" . ivy-next-line) - ("C-k" . ivy-previous-line) - :map ivy-switch-buffer-map - ("C-k" . ivy-previous-line) - ("C-l" . ivy-done) - ("C-d" . ivy-switch-buffer-kill) - :map ivy-reverse-i-search-map - ("C-k" . ivy-previous-line) - ("C-d" . ivy-reverse-i-search-kill)) - :config - (ivy-mode 1)) - -(use-package counsel - :bind (:map minibuffer-local-map - ("C-r" . 'counsel-minibuffer-history)) - :custom - (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only) - :config - (counsel-mode 1)) - -(use-package ivy-prescient - :after counsel - :custom - (ivy-prescient-enable-filtering nil) - :config - (prescient-persist-mode 1) - (ivy-prescient-mode 1)) diff --git a/site-modules/core/files/emacs/src/lang/c-sharp.el b/site-modules/core/files/emacs/src/lang/c-sharp.el deleted file mode 100644 index f95a545..0000000 --- a/site-modules/core/files/emacs/src/lang/c-sharp.el +++ /dev/null @@ -1,10 +0,0 @@ -;;; c-sharp.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package csharp-mode - :hook (csharp-mode . lsp-deferred)) diff --git a/site-modules/core/files/emacs/src/lang/c.el b/site-modules/core/files/emacs/src/lang/c.el deleted file mode 100644 index aeb0202..0000000 --- a/site-modules/core/files/emacs/src/lang/c.el +++ /dev/null @@ -1,11 +0,0 @@ -;;; c.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(add-hook 'c-mode-hook 'lsp) -(add-hook 'c++-mode-hook 'lsp) -(use-package cmake-mode) diff --git a/site-modules/core/files/emacs/src/lang/docker.el b/site-modules/core/files/emacs/src/lang/docker.el deleted file mode 100644 index 801db1c..0000000 --- a/site-modules/core/files/emacs/src/lang/docker.el +++ /dev/null @@ -1,14 +0,0 @@ -;;; docker.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package docker - :bind ("C-c d" . docker)) - -(use-package dockerfile-mode - :hook (dockerfile-mode . lsp-deferred) - :mode "\\Dockerfile\\'") diff --git a/site-modules/core/files/emacs/src/lang/go.el b/site-modules/core/files/emacs/src/lang/go.el deleted file mode 100644 index ba58804..0000000 --- a/site-modules/core/files/emacs/src/lang/go.el +++ /dev/null @@ -1,12 +0,0 @@ -;;; go.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(setenv "PATH" (concat (getenv "PATH") ":" (getenv "HOME") "/.local/share/go/bin")) -(use-package go-mode - :hook (go-mode . lsp-deferred) - :mode "\\.go\\'") diff --git a/site-modules/core/files/emacs/src/lang/js-ts.el b/site-modules/core/files/emacs/src/lang/js-ts.el deleted file mode 100644 index 540b54a..0000000 --- a/site-modules/core/files/emacs/src/lang/js-ts.el +++ /dev/null @@ -1,59 +0,0 @@ -;;; ts-js.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package js2-mode - :mode "\\.m?js\\'" - :interpreter "node" - :hook ((js2-mode . tree-sitter-hl-mode) - (js2-mode . lsp-deferred)) - :commands js2-line-break - :config - (setq js-chain-indent t - ;; Don't mishighlight shebang lines - js2-skip-preprocessor-directives t - ;; let flycheck handle this - js2-mode-show-parse-errors nil - js2-mode-show-strict-warnings nil - ;; Flycheck provides these features, so disable them: conflicting with - ;; the eslint settings. - js2-strict-trailing-comma-warning nil - js2-strict-missing-semi-warning nil - ;; maximum fontification - js2-highlight-level 3 - js2-highlight-external-variables t - js2-idle-timer-delay 0.1)) - -(use-package rjsx-mode - :mode - (("components/.+\\.js$" . rjsx-mode)) - :hook ((rjsx-mode . tree-sitter-hl-mode) - (rjsx-mode . lsp-deferred)) - :init - (defun +javascript-jsx-file-p () - "Detect React or preact imports early in the file." - (and buffer-file-name - (string= (file-name-extension buffer-file-name) "js") - (re-search-forward "\\(^\\s-*import +React\\|\\( from \\|require(\\)[\"']p?react\\)" - magic-mode-regexp-match-limit t) - (progn (goto-char (match-beginning 1)) - (not (sp-point-in-string-or-comment))))) - - (add-to-list 'magic-mode-alist '(+javascript-jsx-file-p . rjsx-mode)) - (setq-local emmet-expand-jsx-className? t)) - -(use-package typescript-mode - :hook (typescript-mode . lsp-deferred) - :mode (("\\.ts\\'" . typescript-mode))) - -(progn - (define-derived-mode typescript-tsx-mode web-mode "TypeScript-tsx") - (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-tsx-mode)) - (add-hook 'typescript-tsx-mode-hook 'tree-sitter-hl-mode) - (add-hook 'typescript-tsx-mode-hook 'lsp-deferred)) - -(use-package vue-mode) diff --git a/site-modules/core/files/emacs/src/lang/json.el b/site-modules/core/files/emacs/src/lang/json.el deleted file mode 100644 index d6b3d35..0000000 --- a/site-modules/core/files/emacs/src/lang/json.el +++ /dev/null @@ -1,13 +0,0 @@ -;;; json.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package json-mode - :hook (json-mode . lsp-deferred) - :mode "\\.json\\'") - -(use-package jsonnet-mode) diff --git a/site-modules/core/files/emacs/src/lang/php.el b/site-modules/core/files/emacs/src/lang/php.el deleted file mode 100644 index cac95e7..0000000 --- a/site-modules/core/files/emacs/src/lang/php.el +++ /dev/null @@ -1,18 +0,0 @@ -;;; php.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - - -(use-package php-mode - :hook ((php-mode . (lambda() (setq flycheck-local-checkers '((lsp . ((next-checkers . (php)))))))) - (php-mode . lsp-deferred) - (php-mode . tree-sitter-hl-mode)) - :mode - (("\\.php\\'" . php-mode) - ("\\.phpstub\\'" . php-mode))) - -(use-package flycheck-psalm) diff --git a/site-modules/core/files/emacs/src/lang/shell.el b/site-modules/core/files/emacs/src/lang/shell.el deleted file mode 100644 index d4441d0..0000000 --- a/site-modules/core/files/emacs/src/lang/shell.el +++ /dev/null @@ -1,21 +0,0 @@ -;;; shell.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -;; sh-mode is already installed just need to enable lsp in that mode -(add-hook 'sh-mode-hook 'lsp) - -;; Add .env file to be highlighted with the sh-mode syntax -(add-to-list 'auto-mode-alist '("\\.env\\'" . sh-mode)) -(add-to-list 'auto-mode-alist '("\\.env\\.example\\'" . sh-mode)) - -(use-package flymake-shellcheck - :commands flymake-shellcheck-load - :init - (add-hook 'sh-mode-hook 'flymake-shellcheck-load)) - -(use-package bats-mode); diff --git a/site-modules/core/files/emacs/src/lang/web.el b/site-modules/core/files/emacs/src/lang/web.el deleted file mode 100644 index 497222f..0000000 --- a/site-modules/core/files/emacs/src/lang/web.el +++ /dev/null @@ -1,66 +0,0 @@ -;;; web.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package web-mode - :defer t - :hook (web-mode . lsp-deferred) - :config - (setq web-mode-enable-auto-quoting nil) - :mode - (("\\.phtml\\'" . web-mode) - ("\\.tpl\\.php\\'" . web-mode) - ("\\.twig\\'" . web-mode) - ("\\.xml\\'" . web-mode) - ("\\.html\\'" . web-mode) - ("\\.htm\\'" . web-mode) - ("\\.[gj]sp\\'" . web-mode) - ("\\.as[cp]x?\\'" . web-mode) - ("\\.eex\\'" . web-mode) - ("\\.erb\\'" . web-mode) - ("\\.mustache\\'" . web-mode) - ("\\.handlebars\\'" . web-mode) - ("\\.hbs\\'" . web-mode) - ("\\.eco\\'" . web-mode) - ("\\.ejs\\'" . web-mode) - ("\\.svelte\\'" . web-mode) - ("\\.ctp\\'" . web-mode) - ("\\.djhtml\\'" . web-mode))) - -(use-package sass-mode - :defer t - :hook (sass-mode . lsp-deferred) - :mode ("\\.sass\\'" . sass-mode)) - -(use-package scss-mode - :defer t - :hook (scss-mode . lsp-deferred) - :mode ("\\.scss\\'" . scss-mode)) - -(use-package css-mode - :defer t - :hook (css-mode . lsp-deferred) - :mode ("\\.css\\'" . css-mode)) - -(use-package less-css-mode - :defer t - :hook (less-css-mode . lsp-deferred) - :mode ("\\.less\\'" . less-css-mode)) - -(use-package emmet-mode - :defer t - :hook ((web-mode . emmet-mode) - (css-mode . emmet-mode) - (sass-mode . emmet-mode) - (js2-mode . emmet-mode) - (rjsx-mode . (lambda () - (emmet-mode) - (setq-local emmet-expand-jsx-className? t))) - (typescript-tsx-mode . (lambda () - (emmet-mode) - (setq-local emmet-expand-jsx-className? t))))) - diff --git a/site-modules/core/files/emacs/src/lang/yaml.el b/site-modules/core/files/emacs/src/lang/yaml.el deleted file mode 100644 index 4693dae..0000000 --- a/site-modules/core/files/emacs/src/lang/yaml.el +++ /dev/null @@ -1,11 +0,0 @@ -;;; yaml.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package yaml-mode - :hook (yaml-mode . lsp-deferred) - :mode "\\.\\(yml\\|yaml\\)\\'") diff --git a/site-modules/core/files/emacs/src/language-tool.el b/site-modules/core/files/emacs/src/language-tool.el deleted file mode 100644 index 9fdf4e2..0000000 --- a/site-modules/core/files/emacs/src/language-tool.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; language-tool.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package languagetool - :commands (languagetool-check languagetool-server-start) - :init - (setq languagetool-correction-language "en-GB") - :config - (setq languagetool-server-command "~/.local/share/LanguageTool/LanguageTool-5.6/languagetool-server.jar") - (setq languagetool-console-command "~/.local/share/LanguageTool/LanguageTool-5.6/languagetool-commandline.jar")) diff --git a/site-modules/core/files/emacs/src/notmuch.el b/site-modules/core/files/emacs/src/notmuch.el deleted file mode 100644 index bbaf1b3..0000000 --- a/site-modules/core/files/emacs/src/notmuch.el +++ /dev/null @@ -1,146 +0,0 @@ -;;; notmuch.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(require 'cl) - -(defvar notmuch-message-deleted-tags '("+deleted" "-inbox" "-unread")) - -(defun spacemacs/notmuch-search-archive-thread-down () - "Search thread up." - (interactive) - (notmuch-search-archive-thread)) - -(defun spacemacs/notmuch-search-archive-thread-up () - "Search thread down." - (interactive) - (notmuch-search-archive-thread) - (notmuch-search-previous-thread) - (notmuch-search-previous-thread)) - -(defun spacemacs//notmuch-message-delete (go-next) - "Delete message and select GO-NEXT message." - (notmuch-search-tag notmuch-message-deleted-tags) - (if (eq 'up go-next) - (notmuch-search-previous-thread) - (notmuch-search-next-thread))) - -(defun spacemacs/notmuch-message-delete-down () - "Delete a message and select the next message." - (interactive) - (spacemacs//notmuch-message-delete 'down)) - -(defun spacemacs/notmuch-message-delete-up () - "Delete a message and select the previous message." - (interactive) - (spacemacs//notmuch-message-delete 'up)) - -(defun aa/notmuch-search-inbox () - "Search the notmuch inbox." - (interactive) - (notmuch-search "tag:inbox")) - -(defun aa/notmuch-search-inbox-unread () - "Search the notmuch unread messages in the inbox." - (interactive) - (notmuch-search "tag:inbox and tag:unread")) - - -(quelpa - '(notmuch :fetcher git - :url "https://git.notmuchmail.org/git/notmuch" - :commit "a59ef7d02cb229c2ec3569024918024003568aea" - :files ("emacs/*.el" "emacs/*.png")) - - (setq notmuch-saved-searches '((:name "inbox" - :key "i" - :query "tag:inbox" - :sort-order newest-first) - (:name "inbox-unread" - :key "iu" - :query "tag:inbox and tag:unread" - :sort-order newest-first) - (:name "unread" - :key "u" - :query "tag:unread" - :sort-order newest-first) - (:name "all" - :key "a" - :query "*" - :sort-order newest-first))) - ;; key bindings - (evil-define-key 'normal notmuch-search-mode-map - "=" 'notmuch-refresh-this-buffer - "?" 'notmuch-help - "*" 'notmuch-search-tag-all - "-" 'notmuch-search-remove-tag - "+" 'notmuch-search-add-tag - "J" 'notmuch-jump-search - "m" 'notmuch-mua-new-mail - "s" 'notmuch-search - "a" 'spacemacs/notmuch-search-archive-thread-down - "A" 'spacemacs/notmuch-search-archive-thread-up - "d" 'spacemacs/notmuch-message-delete-down - "D" 'spacemacs/notmuch-message-delete-up) - (evil-define-key 'normal notmuch-show-mode-map - "B" 'notmuch-show-browse-urls) - (evil-define-key 'visual notmuch-search-mode-map - "-" 'notmuch-search-remove-tag - "+" 'notmuch-search-add-tag - "d" 'spacemacs/notmuch-message-delete-down)) - -(use-package counsel-notmuch :defer t) - -(defun org-notmuch-open (id) - "Visit the notmuch message or thread with id ID." - (notmuch-show id)) - -(defun org-notmuch-store-link () - "Store a link to a notmuch mail message." - (cl-case major-mode - ('notmuch-show-mode - ;; Store link to the current message - (let* ((id (notmuch-show-get-message-id)) - (link (concat "notmuch:" id)) - (description (format "Mail: %s" (notmuch-show-get-subject)))) - (org-store-link-props - :type "notmuch" - :link link - :description description))) - ('notmuch-search-mode - ;; Store link to the thread on the current line - (let* ((id (notmuch-search-find-thread-id)) - (link (concat "notmuch:" id)) - (description (format "Mail: %s" (notmuch-search-find-subject)))) - (org-store-link-props - :type "notmuch" - :link link - :description description))))) - -;; https://notmuchmail.org/emacstips -;; Viewing diffs in notmuch -(defun aa/notmuch-show-view-as-patch () - "View the the current message as a patch." - (interactive) - (let* ((id (notmuch-show-get-message-id)) - (msg (notmuch-show-get-message-properties)) - (part (notmuch-show-get-part-properties)) - (subject (concat "Subject: " (notmuch-show-get-subject) "\n")) - (diff-default-read-only t) - (buf (get-buffer-create (concat "*notmuch-patch-" id "*"))) - (map (make-sparse-keymap))) - (define-key map "q" 'notmuch-bury-or-kill-this-buffer) - (switch-to-buffer buf) - (let ((inhibit-read-only t)) - (erase-buffer) - (insert subject) - (insert (notmuch-get-bodypart-text msg part nil))) - (set-buffer-modified-p nil) - (diff-mode) - (lexical-let ((new-ro-bind (cons 'buffer-read-only map))) - (add-to-list 'minor-mode-overriding-map-alist new-ro-bind)) - (goto-char (point-min)))) diff --git a/site-modules/core/files/emacs/src/org.el b/site-modules/core/files/emacs/src/org.el deleted file mode 100644 index d1c27c9..0000000 --- a/site-modules/core/files/emacs/src/org.el +++ /dev/null @@ -1,148 +0,0 @@ -;;; org.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(defun efs/org-mode-setup () - (org-indent-mode) - (visual-line-mode 1)) - -(use-package org - :pin org - :hook (org-mode . efs/org-mode-setup) - :config - (setq org-ellipsis " ▾") - - ;; Don't fold headers when opening files I find it better to see all of the - ;; files and navigate between the headers - (setq org-startup-folded nil) - - ;;(setq org-agenda-start-with-log-mode t) - ;;(setq org-log-done 'time) - (setq org-agenda-window-setup 'current-window) - - ;; Open file links in current window, rather than new ones - ;; https://github.com/hlissner/doom-emacs/blob/develop/modules/lang/org/config.el#L632 - (setf (alist-get 'file org-link-frame-setup) #'find-file) - - (setq org-refile-targets '(("Archive.org" :maxlevel . 1))) - (setq org-agenda-files '("~/Nextcloud/org/workbook" - "~/Nextcloud/org/notes" - "~/Nextcloud/org/wiki")) - (setq org-directory "~/Nextcloud/org") - - ;; Add notmuch link capture mainly for org-capture - (org-link-set-parameters "notmuch" - :follow 'org-notmuch-open - :store 'org-notmuch-store-link) - - ;; Define a kanban style set of stages for todo tasks - (setq org-todo-keywords - '((sequence "TODO" "WAITING" "REVIEW" "|" "DONE" "ARCHIVED"))) - - (require 'org-protocol) - (require 'org-id) - (require 'org-habit) - - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (shell . t))) - - ;; Configure custom agenda views - (setq org-agenda-custom-commands - '(("d" "Dashboard" - ((agenda "" ((org-deadline-warning-days 7))) - (todo "WAITING" - ((org-agenda-overriding-header "Waiting on External"))) - (todo "TODO" - ((org-agenda-overriding-header "Scheduled") - (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottimestamp)))) - (todo "TODO" - ((org-agenda-overriding-header "Backlog") - (org-agenda-todo-list-sublevels nil) - (org-agenda-skip-function '(org-agenda-skip-entry-if 'timestamp)))))) - - ("w" "Workflow Status" - ((todo "WAITING" - ((org-agenda-overriding-header "Waiting on External") - (org-agenda-files org-agenda-files))) - (todo "TODO" - ((org-agenda-overriding-header "Todo") - (org-agenda-files org-agenda-files))) - (todo "REVIEW" - ((org-agenda-overriding-header "In Review") - (org-agenda-files org-agenda-files))))))) - - (setq org-capture-templates - `(("t" "Task" entry (file aa/create-workbook-file) "\n\n* TODO %?\n %U\n %a\n %i\n\n") - ("c" "Task Clock In" entry (file aa/create-workbook-file) "\n\n* TODO %?\n:LOGBOOK:\nCLOCK: %U\n:END:\n %U\n %a\n %i\n\n") - ("n" "New Note" entry (file aa/create-notes-file) "* Content") - - - ("p" "Protocol" entry (file aa/create-workbook-file) "* %^{Title}\nSource: %u, %c\n #+BEGIN_QUOTE\n%i\n#+END_QUOTE\n\n\n%?") - ("L" "Protocol Link" entry (file aa/create-workbook-file) "* TODO %? [[%:link][%:description]] \nCaptured On: %U")))) - -(defun org-wiki-search () - "Search the whole wiki for a pattern" - (interactive) - (let ((default-directory "~/Nextcloud/org")) - (counsel-ag))) - -(defun org-wiki-search-title () - "Search the though all of the wiki titles for a pattern" - (interactive) - (let ((default-directory "~/Nextcloud/org")) - (counsel-ag "title: "))) - -(defun org-wiki-search-heading () - "Search the though all of the wiki headings for a pattern" - (interactive) - (let ((default-directory "~/Nextcloud/org")) - (counsel-ag "^\\* "))) - -(defun aa/create-notes-file () - "Create an org file in ~/notes/." - (expand-file-name (format "%s-%s.org" - (format-time-string "%Y-%m-%d") - (string-trim (shell-command-to-string "uuidgen"))) - "~/Nextcloud/org/notes/")) - -(defun aa/create-workbook-file () - "Create an org file in ~/workbook/." - (expand-file-name (format "%s.org" - (format-time-string "%Y-%m")) - "~/Nextcloud/org/workbook/")) - -(defun workbook-current () - "Create an org file in ~/notes/." - (interactive) - (find-file - (expand-file-name (format "%s.org" - (format-time-string "%Y-%m")) - "~/Nextcloud/org/workbook/"))) - -(use-package org-bullets - :after org - :hook (org-mode . org-bullets-mode) - :custom - (org-bullets-bullet-list '("◉" "○" "●" "○" "●" "○" "●"))) - -(use-package org-re-reveal - :after org) - -(use-package evil-org - :after org - :hook (org-mode . (lambda () evil-org-mode)) - :config - (require 'evil-org-agenda) - (evil-org-agenda-set-keys)) - -;; This is needed as of Org 9.2 -(require 'org-tempo) -(add-to-list 'org-structure-template-alist '("sh" . "src shell")) -(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) -(add-to-list 'org-structure-template-alist '("php" . "src php")) diff --git a/site-modules/core/files/emacs/src/packages.el b/site-modules/core/files/emacs/src/packages.el deleted file mode 100644 index d53ec00..0000000 --- a/site-modules/core/files/emacs/src/packages.el +++ /dev/null @@ -1,32 +0,0 @@ -;;; packages.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(require 'package) -(setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("org" . "https://orgmode.org/elpa/") - ("elpa" . "https://elpa.gnu.org/packages/"))) - -(package-initialize) -(unless package-archive-contents - (package-refresh-contents)) - -;; Initialize use-package on non-Linux platforms -(unless (package-installed-p 'use-package) - (package-install 'use-package)) - -(require 'use-package) -(setq use-package-always-ensure t) - -(use-package quelpa) -(setq use-package-ensure-function 'quelpa) - -(quelpa - '(quelpa-use-package - :fetcher git - :url "https://github.com/quelpa/quelpa-use-package.git")) -(require 'quelpa-use-package) diff --git a/site-modules/core/files/emacs/src/projectile.el b/site-modules/core/files/emacs/src/projectile.el deleted file mode 100644 index 73dcfe7..0000000 --- a/site-modules/core/files/emacs/src/projectile.el +++ /dev/null @@ -1,118 +0,0 @@ -;;; projectile.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package projectile - :diminish projectile-mode - :config (projectile-mode) - :custom ((projectile-completion-system 'ivy)) - :bind-keymap - ("C-c p" . projectile-command-map) - :init - ;; NOTE: Set this to the folder where you keep your Git repos! - (when (file-directory-p "~/Code/src") - (setq projectile-project-search-path '("~/Code/src"))) - (setq projectile-switch-project-action #'projectile-dired)) - -(use-package counsel-projectile - :config (counsel-projectile-mode)) - -(defun projectile--get-php-test-command () - "Get the correct test command for the PHP project. -This will find the test configuration file and work out the correct command to -run from the configuration file" - (cond - ((file-exists-p (concat (projectile-project-root) "vendor/bin/codecept")) "vendor/bin/codecept run --no-ansi") - ((file-exists-p (concat (projectile-project-root) "vendor/bin/simple-phpunit")) "vendor/bin/simple-phpunit --colors=never") - ((file-exists-p (concat (projectile-project-root) "vendor/bin/phpunit")) "vendor/bin/phpunit"))) - -(defun projectile--get-php-test-file-command (file) - "Get the correct command for testing a PHP FILE. -For more details on getting the test command see -`projectile--get-php-test-command`" - (cond - ((file-exists-p (concat (projectile-project-root) "vendor/bin/codecept")) (format "vendor/bin/codecept run --no-ansi %s" file)) - ((file-exists-p (concat (projectile-project-root) "vendor/bin/simple-phpunit")) (format "vendor/bin/simple-phpunit --colors=never %s" file)) - ((file-exists-p (concat (projectile-project-root) "vendor/bin/phpunit")) (format "vendor/bin/phpunit %s" file)))) - -(defun projectile-test-php () - "Test the PHP project." - (interactive) - (let ((default-directory (projectile-project-root))) - (compile (projectile--get-php-test-command)))) - -(defun projectile-test-php-file () - "Test the current file with the PHP command. -If you are in a test file then the 'alternate' file will be run with the test -function for your project" - (interactive) - (let ((default-directory (projectile-project-root))) - (compile (projectile--get-php-test-file-command (projectile-find-matching-test (buffer-file-name)))))) - -(defun projectile--get-js-test-command () - "Test the project with JS command. -The correct test command will be found baised on what configuration you have in -your project" - (cond - ((file-exists-p (concat (projectile-project-root) "jest.config.js")) "jest --no-colors"))) - -(defun projectile--get-js-test-file-command (file) - "Test a FILE with the JS command." - (cond - ((file-exists-p (concat (projectile-project-root) "jest.config.js")) (format "jest --no-colors %s" file)))) - -(defun projectile-test-js () - "Test the current project with JS." - (interactive) - (let ((default-directory (projectile-project-root))) - (compile (projectile--get-js-test-command)))) - -(defun projectile-test-js-file () - "Test the current file with the JS command. -If you are not on a test file then the 'alternate' file will be tested" - (interactive) - (let ((default-directory (projectile-project-root))) - (compile (projectile--get-js-test-file-command (projectile-find-matching-test (buffer-file-name)))))) - -(defun projectile-test-file () - "Test the current file with the project test command. -The command will be found based on the current file extension and the -configuration in the project" - (interactive) - (let ((file-extention (file-name-extension (buffer-file-name)))) - (cond ((string= file-extention "js") (projectile-test-js-file)) - ((string= file-extention "jsx") (projectile-test-js-file)) - ((string= file-extention "tsx") (projectile-test-js-file)) - ((string= file-extention "ts") (projectile-test-js-file)) - ((string= file-extention "php") (projectile-test-php-file))))) - -(setq practically-make/related-files - (list - (projectile-related-files-fn-test-with-suffix "js" ".test") - (projectile-related-files-fn-test-with-suffix "jsx" ".test") - (projectile-related-files-fn-test-with-suffix "ts" ".test") - (projectile-related-files-fn-test-with-suffix "tsx" ".test") - (projectile-related-files-fn-test-with-prefix "php" "Test") - (projectile-related-files-fn-test-with-suffix "php" "Test") - (projectile-related-files-fn-test-with-suffix "php" "Cest"))) - -(projectile-register-project-type 'practically-make '("Makefile" ".ctrc.yml") - :project-file "Makefile" - :configure "make init" - :install "make install" - :test "make test" - :related-files-fn practically-make/related-files) - -;; Add jest errors to the -(add-to-list 'compilation-error-regexp-alist 'jest-erorrs) -(add-to-list 'compilation-error-regexp-alist-alist - '(jest-erorrs "^[ ]*at .* (\\([^:]+\\):\\([0-9]+\\):\\([0-9]+\\))" 1 2)) - -;; Add psalm errors so the compilation can pick them up -(add-to-list 'compilation-error-regexp-alist 'psalm-erorrs) -(add-to-list 'compilation-error-regexp-alist-alist - '(psalm-erorrs "^ERROR: .* - \\([^:]+\\):\\([0-9]+\\):\\([0-9]+\\)" 1 2)) diff --git a/site-modules/core/files/emacs/src/puppet.el b/site-modules/core/files/emacs/src/puppet.el deleted file mode 100644 index 4dc46ff..0000000 --- a/site-modules/core/files/emacs/src/puppet.el +++ /dev/null @@ -1,11 +0,0 @@ -;;; puppet.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package puppet-mode - :defer - :mode "\\.pp\\'") diff --git a/site-modules/core/files/emacs/src/term.el b/site-modules/core/files/emacs/src/term.el deleted file mode 100644 index 7df75e1..0000000 --- a/site-modules/core/files/emacs/src/term.el +++ /dev/null @@ -1,47 +0,0 @@ -;;; term.el --- AMACS -*- lexical-binding: t; -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(defun aa/term-init () - ;; Hide the mode line in the terminal - (hide-mode-line-mode) - (evil-emacs-state) - (goto-address-mode) - (setq cursor-type 'bar)) - -(use-package vterm - :quelpa (vterm :fetcher github :repo "akermu/emacs-libvterm") - :commands (vterm) - :bind (:map vterm-mode-map - ("C-o" . previous-buffer)) - :hook (vterm-mode . aa/term-init) - :init - (defvar vterm-install t) - :config - ;; Set the custom term prompt the oh-my-zsh "pygmalion" theme - (setq term-prompt-regexp "⇒ ") - ;; Once vterm is dead, the vterm buffer is useless. Why keep it around? We can - ;; spawn another if want one. - (setq vterm-kill-buffer-on-exit t)) - -;; TODO(ade): Add the face into the base16 theme fork -(use-package auto-dim-other-buffers - :config (auto-dim-other-buffers-mode) - :custom-face - ;;(auto-dim-other-buffers-face ((t (:background "#e0e0e0"))))) ;; For light theme - (auto-dim-other-buffers-face ((t (:background "#282828"))))) ;; For dark theme - -(unless (display-graphic-p) - (use-package tmux-pane - :config (tmux-pane-mode)) - (use-package evil-terminal-cursor-changer - :config (evil-terminal-cursor-changer-activate)) - - (use-package xclip - :config (xclip-mode)) - - (xterm-mouse-mode)) diff --git a/site-modules/core/files/emacs/src/treemacs.el b/site-modules/core/files/emacs/src/treemacs.el deleted file mode 100644 index 2f510c7..0000000 --- a/site-modules/core/files/emacs/src/treemacs.el +++ /dev/null @@ -1,12 +0,0 @@ -;;; treemacs.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(use-package neotree - :config - (setq neo-theme 'icons) - (setq neo-show-hidden-files t)) diff --git a/site-modules/core/files/emacs/src/ui.el b/site-modules/core/files/emacs/src/ui.el deleted file mode 100644 index 8f1cb91..0000000 --- a/site-modules/core/files/emacs/src/ui.el +++ /dev/null @@ -1,73 +0,0 @@ -;;; ui.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ - -(tooltip-mode -1) ; Disable tooltips -(menu-bar-mode -1) ; Disable the menu bar -(scroll-bar-mode -1) ; Disable visible scrollbar -(tool-bar-mode -1) ; Disable the toolbar - -;; Display the line column in the modeline not just the line number -(column-number-mode) - -;; Set up the visible bell -(setq visible-bell t) - -(defun aa/set-font (a-font-size) - "Sets the font size for the whole of emacs setting the font faces - -This is better than the `C-x +` and C-x - because this is global to emacs not -just in in the current buffer." - (interactive "nFont Size: ") - (setq a-font "Rec Mono Casual") - ;; (setq a-font "LigaFreeMono") - - (set-face-attribute 'default nil :font a-font :height a-font-size) - (set-face-attribute 'fixed-pitch nil :font a-font :height a-font-size) - (set-face-attribute 'variable-pitch nil :font a-font :height a-font-size :weight 'regular)) - -;; Set the default font size when emacs starts -(aa/set-font 120) - -(use-package base16-theme - :quelpa (aa-base16-theme :fetcher github :repo "AdeAttwood/base16-emacs") - :init - ;; Fix terminal color theme for base16 - ;; See: https://github.com/belak/base16-emacs#terminal-colors - ;; See: https://github.com/belak/base16-emacs/issues/73#issuecomment-721942335 - (setq base16-theme-256-color-source 'base16-shell) - (setq base16-distinct-fringe-background nil) - (load-theme 'base16-tomorrow-night t t) - (enable-theme 'base16-tomorrow-night)) - -(use-package all-the-icons) - -(use-package doom-modeline - :init (doom-modeline-mode 1) - :custom ((doom-modeline-height 15))) - -(use-package hide-mode-line) - -(use-package ligature - :quelpa (ligature :fetcher github :repo "mickeynp/ligature.el") - :config - (ligature-set-ligatures 'prog-mode '("|||>" "<|||" "<==>" "" "---" "-<<" - "<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" - "<--" "<-<" "<<=" "<<-" "<<<" "<+>" "" "###" "#_(" "..<" - "..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~=" - "~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|" - "[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:" - ">=" ">>" ">-" "-~" "-|" "->" "-<" "<~" "<*" "<|" "<:" "<$" - "<=" "<>" "<-" "<<" "<+" "" "++" "?:" "?=" - "?." "??" ";;" "/*" "/**" "/=" "/>" "__" "~~" "(*" "*)" - "://" "true" "false")) - ;; Enables ligature checks globally in all buffers. You can also do it - ;; per mode with `ligature-mode'. - (global-ligature-mode t)) diff --git a/site-modules/core/files/emacs/src/zoekt.el b/site-modules/core/files/emacs/src/zoekt.el deleted file mode 100644 index 35ccade..0000000 --- a/site-modules/core/files/emacs/src/zoekt.el +++ /dev/null @@ -1,37 +0,0 @@ -;;; zoekt.el --- AMACS -*- lexical-binding: t -*- -;; -;; Copyright 2021 Practically.io All rights reserved -;; -;; Use of this source is governed by a BSD-style -;; licence that can be found in the LICENCE file or at -;; https://www.practically.io/copyright/ -;; -;; Zoekt code search integration. Allows you to search the zoekt index with a -;; search term and display the results in ivy. This will work the same as -;; `counsel-ag` but over the -;; -;; See: https://github.com/google/zoekt - -(defun zoekt--function (query) - "The internal search function that will be run by `ivy-read`" - (or - (let ((ivy-text query)) - (ivy-more-chars)) - (progn - (counsel--async-command - (concat "zoekt -r " (shell-quote-argument query) " 2> /dev/null")) - '("" "Searching...")))) - -(defun zoekt (&optional initial-input) - "Zoekt code search integration. Allows you to search the zoekt index with a -search term and display the results in ivy. This will work the same as -`counsel-ag` but over the zoeket index" - (interactive) - (let ((default-directory "~/Code/src")) - (ivy-read "zoekt: " #'zoekt--function - :initial-input initial-input - :dynamic-collection t - :keymap counsel-ag-map - :action #'counsel-git-grep-action - :caller 'zoekt - :require-match t))) diff --git a/site-modules/core/files/emacs/straight/versions/default.el b/site-modules/core/files/emacs/straight/versions/default.el new file mode 100644 index 0000000..9a8771a --- /dev/null +++ b/site-modules/core/files/emacs/straight/versions/default.el @@ -0,0 +1,36 @@ +(("annalist.el" . "e1ef5dad75fa502d761f70d9ddf1aeb1c423f41d") + ("company-box" . "c4f2e243fba03c11e46b1600b124e036f2be7691") + ("company-mode" . "8d2ca28a161f8b912889684412bb1d7fb07d035c") + ("compat" . "cf8e98d80e867a53753815f7cdc88cb8378f089e") + ("dash.el" . "1de9dcb83eacfb162b6d9a118a4770b1281bcd84") + ("doom-modeline" . "1505c13564b83e44d3187611e326a48b742cad3a") + ("el-get" . "c0713e8d8e8ad987fe1283d76b9c637a10f048ef") + ("emacs-web-server" . "3982c55e9061475038a3ccd61aecb2de3d407cec") + ("emacs-websocket" . "40c208eaab99999d7c1e4bea883648da24c03be3") + ("emacs-which-key" . "38d4308d1143b61e4004b6e7a940686784e51500") + ("emacsmirror-mirror" . "53908dfcbacb10b386955227c0d962333ca336fd") + ("emacsql" . "efddd69c5e69214dbbe921fbf90f938501414894") + ("evil" . "1a5ddab958982b6bf5e21bc7cb0f77a64415479d") + ("evil-collection" . "acb056b1d0d3aad2f32b1ca9c019a9a2e976f03e") + ("evil-org-mode" . "b1f309726b1326e1a103742524ec331789f2bf94") + ("f.el" . "1e7020dc0d4c52d3da9bd610d431cab13aa02d8c") + ("frame-local" . "7ee1106c3bcd4022f48421f8cb1ef4f995da816e") + ("general.el" . "826bf2b97a0fb4a34c5eb96ec2b172d682fd548f") + ("gnu-elpa-mirror" . "6d810b719138701a90072fae326562c8c35f8fe9") + ("goto-chg" . "72f556524b88e9d30dc7fc5b0dc32078c166fda7") + ("magit" . "9d1f8db507e080e032943a3ed1445bd8d9aaa9fc") + ("melpa" . "b32886c36b1953c1448cee2d0c9536b2ebfdacaa") + ("nerd-icons.el" . "4322290303f2e12efd5685a0d22d76ed76ec7349") + ("nongnu-elpa" . "28fde34f7d8c24a0ac07876e53e7f0c4b1d5e32d") + ("org" . "50e34dde10ba6d88615b2892e2b33ac7a02e1366") + ("org-bullets" . "767f55feb58b840a5a04eabfc3fbbf0d257c4792") + ("org-roam" . "8e6938a39d33bdb204b731be7b89aac1226af75f") + ("org-roam-ui" . "5ac74960231db0bf7783c2ba7a19a60f582e91ab") + ("s.el" . "dda84d38fffdaf0c9b12837b504b402af910d01d") + ("seq" . "99cdd0515670372bc039e22862e2ba4c195d9d15") + ("shrink-path.el" . "c14882c8599aec79a6e8ef2d06454254bb3e1e41") + ("straight.el" . "b3760f5829dba37e855add7323304561eb57a3d4") + ("swiper" . "2a25a6fb5b081cb141c5eccac8ee58ab1feeb747") + ("themes" . "188ab05eefe2bdc46b4464aadb4a52ff9cb42f7f") + ("use-package" . "a6e856418d2ebd053b34e0ab2fda328abeba731c")) +:gamma diff --git a/site-modules/core/files/oh-my-zsh/custom/emacs.zsh b/site-modules/core/files/oh-my-zsh/custom/emacs.zsh index 560d993..8e26700 100644 --- a/site-modules/core/files/oh-my-zsh/custom/emacs.zsh +++ b/site-modules/core/files/oh-my-zsh/custom/emacs.zsh @@ -1,8 +1,6 @@ -# export EMCAS_BINARY="/usr/bin/emacs" -# export EMACS_CLIENT="/usr/bin/emacsclient" -export EMACS_BINARY="$HOME/Code/src/github.com/emacs-mirror/emacs/src/emacs" -export EMACS_CLIENT="$HOME/Code/src/github.com/emacs-mirror/emacs/lib-src/emacsclient" +export EMCAS_BINARY="/usr/bin/emacs" +export EMACS_CLIENT="/usr/bin/emacsclient" export EMACS_PLUGIN_LAUNCHER="$EMACS_CLIENT --alternate-editor '$EMACS_BINARY --daemon && $EMACS_CLIENT'"