From 1b828968c11a0f8ae10993ce80ed5b5ff89ec069 Mon Sep 17 00:00:00 2001 From: paul-loedige Date: Tue, 9 Jan 2024 17:07:28 +0100 Subject: [PATCH] added debug capability to Doom Emacs and python debug config --- emacs/.config/doom/config.org | 67 +++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/emacs/.config/doom/config.org b/emacs/.config/doom/config.org index 69bd74a..fdb1d14 100644 --- a/emacs/.config/doom/config.org +++ b/emacs/.config/doom/config.org @@ -28,11 +28,13 @@ - [[#org-mode][Org Mode]] - [[#default-location][Default Location]] - [[#visual][Visual]] - - [[#org-agenda-setup][Org Agenda Setup]] - [[#caldav-sync][CalDAV Sync]] + - [[#org-agenda-setup][Org Agenda Setup]] - [[#org-roam][Org Roam]] - [[#org-transclusion][Org Transclusion]] - [[#bibliography][Bibliography]] +- [[#python][Python]] + - [[#set-debugger-to-debugpy][Set Debugger to debugpy]] * Config File Headers We start by simply defining the standard headers used by the three files. These headers come from the initial files generated by =doom install=, and contain either some Emacs-LISP relevant indicators like =lexical-binding=, or instructions about the contents of the file. @@ -260,7 +262,7 @@ We start by simply defining the standard headers used by the three files. These ;;ansible biblio ; Writes a PhD for you (citation needed) ;;collab ; buffers with friends - ;;debugger ; FIXME stepping through code, to help you add bugs + (debugger +lsp) ; FIXME stepping through code, to help you add bugs ;;direnv ;;docker ;;editorconfig ; let someone else argue about tabs vs spaces @@ -278,7 +280,7 @@ We start by simply defining the standard headers used by the three files. These ;;taskrunner ; taskrunner for all your projects ;;terraform ; infrastructure as code ;;tmux ; an API for interacting with tmux - ;;tree-sitter ; syntax and parsing, sitting in a tree... + tree-sitter ; syntax and parsing, sitting in a tree... ;;upload ; map local to remote projects via ssh/ftp :os @@ -330,7 +332,7 @@ We start by simply defining the standard headers used by the three files. These ;;php ; perl's insecure younger brother ;;plantuml ; diagrams for confusing people more ;;purescript ; javascript, but functional - python ; beautiful is better than ugly + (python +conda +lsp +pyright +pyenv +tree-sitter) ; beautiful is better than ugly ;;qt ; the 'cutest' gui framework ever ;;racket ; a DSL for DSLs ;;raku ; the artist formerly known as perl6 @@ -367,6 +369,8 @@ We start by simply defining the standard headers used by the three files. These (default +bindings +smartparens)) #+end_src +#+RESULTS: + * General Configuration ** User Information #+begin_src emacs-lisp :tangle config.el @@ -461,26 +465,6 @@ This function could also become useful if we ever want to extend the compile com (setq org-startup-latex-with-latex-preview t)) #+end_src -** Org Agenda Setup -*** Progress States -To get a more nuanced overview of my current TODOs I add more progress states. -| | TODO | BLOCKED | IN_PROGRESS | REVIEW | TESTING | | DONE | DELEGATED | CANCELED | -|------------+------+---------+-------------+--------+---------+---+------+-----------+----------| -| Access Key | t | b | i | r | t | | d | | c | -| Log Type | time | note | time | note | note | | time | note | note | -#+begin_src emacs-lisp :tangle config.el -(after! org - (setq org-todo-keywords - '((sequence "TODO(t!)" "IN_PROGRESS(i!)" "BLOCKED(b@)" "REVIEW(r@)" "TESTING(t@)" "|" "DONE(d!)" "DELEGATED(!)" "CANCELED(c@)")))) -#+end_src -*** Add "~/org" to Agenda -#+begin_src emacs-lisp :tangle config.el -(after! org - (setq org-agenda-files (f-files "~/org" - (lambda (f) - (string= (f-ext f) "org")) - 'recursive))) -#+end_src ** CalDAV Sync [[https://github.com/dengste/org-caldav][org-caldav]] provides a tool for syncing with a CalDAV server (in my case Nextcloud). A lot of the config is also taken from [[https://www.reddit.com/r/orgmode/comments/8rl8ep/comment/e0sb5j0/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button][this]] reddit post. @@ -492,10 +476,8 @@ A lot of the config is also taken from [[https://www.reddit.com/r/orgmode/commen #+begin_src emacs-lisp :tangle config.el (after! org-caldav (setq org-icalendar-include-todo 'all - org-caldav-todo-percent-states '((0 "TODO") (1 "IN_PROGRESS") (2 "BLOCKED") (90 "REVIEW") (90 "TESTING") (100 "DONE") (100 "DELEGATED") (100 "CANCELED")) org-caldav-sync-todo t)) #+end_src - *** Configure Sync add the calendars to the org-caldav config #+begin_src emacs-lisp :tangle config.el @@ -505,6 +487,31 @@ add the calendars to the org-caldav config (setq org-caldav-calendars '((:calendar-id "todo" :files ("~/org/todo.org"))))) #+end_src +** Org Agenda Setup +*** Progress States +To get a more nuanced overview of my current TODOs I add more progress states. +| | TODO | BLOCKED | IN_PROGRESS | REVIEW | TESTING | | DONE | DELEGATED | CANCELED | +|------------+------+---------+-------------+--------+---------+---+------+-----------+----------| +| Access Key | t | b | i | r | t | | d | | c | +| Log Type | time | note | time | note | note | | time | note | note | +#+begin_src emacs-lisp :tangle config.el +(after! org + (setq org-todo-keywords + '((sequence "INACTIVE(i!)" "TODO(t!)" "IN_PROGRESS(p!)" "BLOCKED(b@)" "REVIEW(r@)" "TESTING(e@)" "|" "DONE(d!)" "DELEGATED(x@)" "CANCELED(c@)")))) +#+end_src +Also set the percent states for [[*CalDAV Sync][CalDAV Sync]] +#+begin_src emacs-lisp :tangle config.el +(after! org-caldav + (setq org-caldav-todo-percent-states '((0 "INACTIVE") (1 "TODO") (2 "IN_PROGRESS") (3 "BLOCKED") (90 "REVIEW") (90 "TESTING") (100 "DONE") (100 "DELEGATED") (100 "CANCELED")))) +#+end_src +*** Add "~/org" to Agenda +#+begin_src emacs-lisp :tangle config.el +(after! org + (setq org-agenda-files (f-files "~/org" + (lambda (f) + (string= (f-ext f) "org")) + 'recursive))) +#+end_src ** Org Roam *** set base directory Both the org files themselves and the database should be located in the same directory to enable syncing via Nextcloud @@ -585,3 +592,11 @@ In [[https://www.riccardopinosio.com/blog/posts/zotero_notes_article.html#citar] (after! citar (add-to-list 'citar-file-open-functions '("pdf" . citar-file-open-external))) #+end_src + +* Python +** Set Debugger to debugpy +as per the [[https://github.com/doomemacs/doomemacs/tree/master/modules/tools/debugger#dap-python][Doom Emacs Documentation]] it is recommended to set the debugger used for python debugging to debugpy +#+begin_src emacs-lisp :tangle config.el +(after! dap-mode + (setq dap-python-debugger 'debugpy)) +#+end_src