aboutsummaryrefslogtreecommitdiffstats
path: root/doom-emacs/.config/doom/config.el
blob: 1925650d70940662d3acefeed37873e0f6ffb2d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
(setq
 doom-font (font-spec :family "Fira Code" :size 14)
 doom-big-font (font-spec :family "Fira Code" :size 24)
 doom-variable-pitch-font (font-spec :family "Fira Code" :size 16))

(use-package! paper-theme)
(use-package! modus-operandi-theme)
(use-package! modus-vivendi-theme)

(setq projectile-project-search-path '("~/code"))

(setq display-line-numbers-type 'relative)

(add-hook 'org-mode-hook #'auto-fill-mode)

(after! org
  (map! :map org-mode-map
        :n "M-j" #'org-metadown
        :n "M-k" #'org-metaup
        ))

(after! org
  (defvar org-capture-todo-file "~/org/todo.org" )
  (setq org-capture-templates '(("t" "Personal todo" entry
    (file+headline org-capture-todo-file "Inbox")
    "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)
   ("n" "Personal notes" entry
    (file+headline +org-capture-notes-file "Inbox")
    "* %u %?\n%i\n%a" :prepend t :kill-buffer t)
   ("p" "Templates for projects")
   ("pt" "Project todo" entry
    (file+headline org-capture-project-todo-file "Inbox")
    "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)
   ("pn" "Project notes" entry
    (file+headline +org-capture-project-notes-file "Inbox")
    "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)
   ("pc" "Project changelog" entry
    (file+headline +org-capture-project-notes-file "Unreleased")
    "* TODO %?\n%i\n%a" :prepend t :kill-buffer t))))

(use-package! org-super-agenda
  :after org-agenda
  :init
  (setq org-super-agenda-groups '((:name "Today"
                                         :time-grid t
                                         :scheduled today)
                                  (:name "Due today"
                                         :deadline today)
                                  (:name "Important"
                                         :priority "A")
                                  (:name "Overdue"
                                         :deadline past)
                                  (:name "Due soon"
                                         :deadline future)
                                  (:name "Big Outcomes"
                                         :tag "bo")))
  :config
  (org-super-agenda-mode)
)

(setq imenu-anywhere-delimiter ": ")

(add-hook 'imenu-after-jump-hook #'better-jumper-set-jump)

(after! imenu-list
  (setq imenu-list-idle-update-delay 0.5)

  (set-popup-rule! "^\\*Ilist"
    :side 'right :size 35 :quit nil :select nil :ttl 0))

(setf tramp-shell-prompt-pattern "\\(?:^\\|^M\\)[^]#$%>\n]*#?[]#$%>].* *\\(^[\\[[0-9;]*[a-zA-Z] *\\)*")

;;(map! :leader
;;      (:prefix-map ("/" . "search"))
;;      (:when (featurep! :ui workspaces)
;;      (:prefix-map ("TAB" . "workspace")))
;;      (:prefix-map ("b" . "buffer"))
;;      (:prefix-map ("c" . "code"))
;;      (:prefix-map ("f" . "file"))
;;      (:prefix-map ("g" . "git"))
;;      (:prefix-map ("i" . "insert"))
;;      (:prefix-map ("n" . "notes"))
;;      (:prefix-map ("o" . "open")
;;      (:prefix-map ("p" . "project"))
;;      (:prefix-map ("q" . "session"))
;;      (:when (featurep! :editor upload)
;;        (:prefix-map ("r" . "remote")))
;;      (:when (featurep! :editor snipets)
;;        (:prefix-map ("s" . "snippets")))
;;      (:prefix-map ("t" . "toggle")
;;        :desc "Toggle imenu-list" "m" #'imenu-list-smart-toggle)))

(setq dired-dwim-target t)

(use-package! cmake-ide
  :after rtags
  :config
  (require 'rtags)
  (cmake-ide-setup))

(use-package! eglot
  :config
  (add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd"))
  (add-hook! (c++-mode c-mode) 'eglot-ensure))

;; (after! eglot
  ;; (defconst my-eclipse-jdt-home "/home/peter/.emacs.d/.cache/lsp/eclipse.jdt.ls/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar")
  ;; (defun my-eglot-eclipse-jdt-contact (interactive)
    ;; "contact with the jdt server input INETRACTIVE."
    ;; (let ((cp (getenv "CLASSPATH")))
      ;; (setenv "CLASSPATH" (concat my-eclipse-jdt-home ":" cp))
      ;; (unwind-protect (eglot--eclipse-jdt-contact nil)
        ;; (setenv "CLASSPATH" cp))))
  ;; (setcdr (assq 'java-mode eglot-server-programs) #'my-eglot-eclipse-jdt-contact)
  ;; (add-hook 'java-mode-hook 'eglot-ensure))

(setq ledger-default-date-format "%Y-%m-%d")