syohex / project-tasks

Efficient task management for your project.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

project-tasks.el - Efficient task management for your project

Concept

Formed during work on projects, I need to:

  • run docker-compose up
  • access the database shell of the db service in docker-compose
  • run mitmproxy
  • run a new shell

Using org-babel of org-mode is a great solution (Literate Devops with Org-Mode).

Therefore, this package provides a convenient interface for accessing those tasks instead of accessing org-mode files and executing org-babel code blocks.

Features

  • M-x project-tasks
Find-file `project-tasks-file` org file
  -> get all src-blocks by `(org-babel-src-block-names)`
    -> display src-blocks to user
      -> user select and run `(org-babel-execute-src-block)`
  • M-x project-tasks-capture
Let `org-default-notes-file` to `current_project/project-tasks-file`
  -> `(org-capture)`
  • M-x project-tasks-jump
Find-file `current_project/project-tasks-file`

Usage

(use-package project-tasks
  :ensure t :defer t

  :straight
  ( :host github
    :repo "TxGVNN/project-tasks"
    :files ("*.el"))

  :after (project)
  :commands (project-tasks)

  :init
  ;; Show project-tasks when switching projects
  (add-to-list 'project-switch-commands '(project-tasks "tasks") t)
  ;; Add action to embark-file map
  (with-eval-after-load 'embark
    (define-key embark-file-map (kbd "P") #'project-tasks-in-dir))

  :custom
  ;; Set the default filename in project
  (project-tasks-file "tasks.org")
  ;; Set the function to get current project dir
  (project-tasks-root-func #'project-tasks-project-root)

  ;; Bind project-tasks to project keymap
  :bind
  (:map project-prefix-map
        ("P" . project-tasks)
        ("o" . project-tasks-capture)
        ("O" . project-tasks-jump))
  )

Notice

You need to ensure that your code blocks work as intended. This package serves as an interface for interacting with Org files but does not affect your Org configuration.

About

Efficient task management for your project.


Languages

Language:Emacs Lisp 100.0%