feat: Project management
I might switch back to Projectile later. }:\
This commit is contained in:
11
README.org
11
README.org
@@ -166,7 +166,8 @@ Disassemble project-ideas.org and reading-list.org into a individual roam nodes.
|
||||
|
||||
**** TODO Capture templates
|
||||
|
||||
*** TODO project.el
|
||||
*** DONE project.el
|
||||
CLOSED: [2025-01-16 Thu 18:19]
|
||||
|
||||
*** TODO Workspaces
|
||||
|
||||
@@ -204,6 +205,12 @@ Disassemble project-ideas.org and reading-list.org into a individual roam nodes.
|
||||
|
||||
*** TODO Vertico repeat
|
||||
|
||||
*** TODO so-long-mode
|
||||
|
||||
*** TODO Consult icons
|
||||
|
||||
**** TODO compile-multi-all-the-icons
|
||||
|
||||
*** Language support
|
||||
|
||||
**** TODO Clojure
|
||||
@@ -216,6 +223,8 @@ Disassemble project-ideas.org and reading-list.org into a individual roam nodes.
|
||||
|
||||
**** TODO Elisp
|
||||
|
||||
*** IDEA Email?
|
||||
|
||||
*** IDEA =map!= macro
|
||||
|
||||
*** IDEA Module system?
|
||||
|
||||
@@ -5,6 +5,7 @@ in {
|
||||
home.file."org".source =
|
||||
mutableSymlink "~/Dropbox/org";
|
||||
|
||||
# TODO: Move to programs/age.nix.
|
||||
xdg.configFile."sops/age/keys.txt".source =
|
||||
mutableSymlink "/persist/vault/${config.home.username}/keys/melbourne";
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
(require 'syd-evil)
|
||||
(require 'syd-keybinds)
|
||||
(require 'syd-org)
|
||||
(require 'syd-projects)
|
||||
(require 'syd-scratch)
|
||||
(require 'syd-smartparens)
|
||||
(require 'syd-ui)
|
||||
|
||||
@@ -56,7 +56,7 @@ are active.")
|
||||
(defun syd-keybinds-initialise ()
|
||||
(syd--initialise-leader)
|
||||
|
||||
;;; Buffer
|
||||
;; Buffer
|
||||
(require 'syd-buffers)
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-buffer-map
|
||||
@@ -70,13 +70,13 @@ are active.")
|
||||
"u" `("Save buffer as root" . ,#'syd/save-buffer-as-root)
|
||||
"r" `("Revert buffer" . ,#'revert-buffer))
|
||||
|
||||
;;; Search
|
||||
;; Search
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-search-map
|
||||
"i" `("IMenu" . ,#'consult-imenu)
|
||||
"b" `("Search buffer" . ,#'syd/search-buffer))
|
||||
|
||||
;;; File
|
||||
;; File
|
||||
(require 'syd-file)
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-file-map
|
||||
@@ -90,7 +90,7 @@ are active.")
|
||||
"U" `("Open this file as root" . ,#'syd/open-this-file-as-root)
|
||||
"y" `("Yank buffer path" . ,#'syd/yank-buffer-path))
|
||||
|
||||
;;; Window
|
||||
;; Window
|
||||
(require 'syd-window)
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-window-maximise-map
|
||||
@@ -116,12 +116,19 @@ are active.")
|
||||
"C-r" `("Redo window change" . ,#'winner-redo)
|
||||
"m" `("Maximise" . ,syd-leader-window-maximise-map))
|
||||
|
||||
;;; Leader
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-project-map
|
||||
"C" `("Compile project" . ,#'project-compile))
|
||||
|
||||
;; Leader
|
||||
(general-def
|
||||
:keymaps 'syd-leader-map
|
||||
"." #'find-file
|
||||
"SPC" `("Find file in project" . ,#'project-find-file)
|
||||
"x" `("Open scratch buffer" . ,#'scratch-buffer)
|
||||
"u" `("Universal argument" . ,#'universal-argument)
|
||||
"b" `("Buffer" . ,syd-leader-buffer-map)
|
||||
"p" `("Project" . ,syd-leader-project-map)
|
||||
"w" `("Window" . ,syd-leader-window-map)
|
||||
"f" `("File" . ,syd-leader-file-map)
|
||||
"s" `("Search" . ,syd-leader-search-map)
|
||||
|
||||
31
users/crumb/programs/emacs/modules/syd-projects.el
Normal file
31
users/crumb/programs/emacs/modules/syd-projects.el
Normal file
@@ -0,0 +1,31 @@
|
||||
;;; syd-projects.el -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'syd-constants)
|
||||
|
||||
(use-package project
|
||||
:custom ((project-list-file (file-name-concat syd-cache-dir
|
||||
"known-projects"))))
|
||||
|
||||
;; Projection provides a Projectile-like project management library atop
|
||||
;; Emacs built-in project.el. It's more lightweight, while still featureful.
|
||||
(use-package projection
|
||||
;; Enable the `projection-hook' feature.
|
||||
:hook (after-init . global-projection-hook-mode)
|
||||
;; Require projections immediately after project.el.
|
||||
:config
|
||||
(with-eval-after-load 'project
|
||||
(require 'projection)))
|
||||
|
||||
;; Allow interactively selecting available compilation targets from the
|
||||
;; current project type.
|
||||
(use-package projection-multi
|
||||
:after projection)
|
||||
|
||||
;; Embark integration for projection-multi.
|
||||
(use-package projection-multi-embark
|
||||
:after (embark projection-multi)
|
||||
;; Add the projection set-command bindings to
|
||||
;; `compile-multi-embark-command-map'.
|
||||
:config (projection-multi-embark-setup-command-map))
|
||||
|
||||
(provide 'syd-projects)
|
||||
Reference in New Issue
Block a user