2025-07-11 04:32:05 +07:00

76 lines
3.1 KiB
EmacsLisp

;;; -*- lexical-binding: t -*-
(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.
'(package-selected-packages
'(anki-editor docker docker-compose-mode docker-tramp ejc-sql))
'(sql-connection-alist
'(("postgres" (sql-product 'postgres) (sql-user "myuser")
(sql-database "mydatabase") (sql-server "localhost") (sql-port 5433)))))
(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.
)
(use-package docker
:ensure t
:bind ("C-c d" . docker))
;;(setq sql-postgres-login-params (append sql-postgres-login-params '(port)))
(setq org-roam-directory (file-truename "~/org-roam/"))
(setq org-roam-node-display-template
(concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
(org-roam-db-autosync-mode)
(setq org-roam-complete-everywhere t)
(map! :map org-mode-map
:leader
(:prefix ("n r" . "roam")
:desc "Completion at point" "c" #'completion-at-point))
(defun insert-org-link-with-prompt ()
"Prompt for description and link, then insert Org-mode style [[link][description]]"
(interactive)
(let ((link (read-string "Link (first []): "))
(desc (read-string "Description (second []): ")))
(insert (format "[[%s][%s]]" link desc))))
(map! :leader
:desc "Insert Org link with prompt"
"i l" #'insert-org-link-with-prompt)
(use-package anki-editor
:after org
:bind (:map org-mode-map
("<f12>" . anki-editor-cloze-region-auto-incr)
("<f11>" . anki-editor-cloze-region-dont-incr)
("<f10>" . anki-editor-reset-cloze-number)
("<f9>" . anki-editor-push-tree))
:hook (org-capture-after-finalize . anki-editor-reset-cloze-number) ; Reset cloze-number after each capture.
:config
(setq anki-editor-create-decks t ;; Allow anki-editor to create a new deck if it doesn't exist
anki-editor-org-tags-as-anki-tags t)
(defun anki-editor-cloze-region-auto-incr (&optional arg)
"Cloze region without hint and increase card number."
(interactive)
(anki-editor-cloze-region my-anki-editor-cloze-number "")
(setq my-anki-editor-cloze-number (1+ my-anki-editor-cloze-number))
(forward-sexp))
(defun anki-editor-cloze-region-dont-incr (&optional arg)
"Cloze region without hint using the previous card number."
(interactive)
(anki-editor-cloze-region (1- my-anki-editor-cloze-number) "")
(forward-sexp))
(defun anki-editor-reset-cloze-number (&optional arg)
"Reset cloze number to ARG or 1"
(interactive)
(setq my-anki-editor-cloze-number (or arg 1)))
(defun anki-editor-push-tree ()
"Push all notes under a tree."
(interactive)
(anki-editor-push-notes '(4))
(anki-editor-reset-cloze-number))
;; Initialize
(anki-editor-reset-cloze-number)
)