Git Product home page Git Product logo

org-projectile's Introduction

https://travis-ci.org/IvanMalison/org-projectile.svg?branch=master https://badges.gitter.im/Join%20Chat.svg http://melpa.org/packages/org-projectile-badge.svg http://stable.melpa.org/packages/org-projectile-badge.svg

org-projectile provides functions for the creation of org-mode TODOs that are associated with projectile projects.

Installation

Install from MELPA with M-x package-install org-projectile. See the melpa repository for details about how to set up MELPA if you have not already done so.

Setup

Before using org-projectile, you must specify the file you would like to use for storing project TODOs, as well as a keybinding for taking a project note with org-capture and a global keybinding for org-projectile-project-todo-completing-read. It is recommended that you start with the following configuration:

(require 'org-projectile)
(setq org-projectile-projects-file
      "/your/path/to/an/org/file/for/storing/project/todos.org")
(push (org-projectile-project-todo-entry) org-capture-templates)
(setq org-agenda-files (append org-agenda-files (org-projectile-todo-files)))
(global-set-key (kbd "C-c c") 'org-capture)
(global-set-key (kbd "C-c n p") 'org-projectile-project-todo-completing-read)

use-package

Here is the same configuration expressed using jwiegley’s excellent use-package:

(use-package org-projectile
  :bind (("C-c n p" . org-projectile-project-todo-completing-read)
         ("C-c c" . org-capture))
  :config
  (progn
    (setq org-projectile-projects-file
          "/your/path/to/an/org/file/for/storing/projects.org")
    (setq org-agenda-files (append org-agenda-files (org-projectile-todo-files)))
    (push (org-projectile-project-todo-entry) org-capture-templates))
  :ensure t)

per-repo todo files

If you would prefer to have an org file for each project that resides in the project directory, add the following elisp to your configuration:

(require 'org-projectile)
(org-projectile-per-project)
(setq org-projectile-per-project-filepath "my_project_todo_filename.org")
(setq org-agenda-files (append org-agenda-files (org-projectile-todo-files)))
(global-set-key (kbd "C-c c") 'org-capture)
(global-set-key (kbd "C-c n p") 'org-projectile-project-todo-completing-read)

Usage

org-projectile-project-todo-completing-read

opens a projectile-completing-read that allows the selection of a project heading under which to store the input that is subsequently captured in an org-capture buffer. Completion candidates for this function are generated using the project list returned from (projectile-relevant-known-projects) and the existing headings in org-projectile-projects-file.

org-projectile-project-todo-entry

is a function that builds an entry that can be added to org-capture-templates in order to use org-capture to make TODOs for the project to which the current buffer belongs. You can access org-capture mode with M-x org-capture, but it is recommended that you bind org-capture to some key.

Both of these functions will create the relevant top level heading in the org-mode file stored in org-projectile-projects-file if it does not exist.

Project headings are links

This means that if you run org-open-at-point when your cursor is over a linked heading, projectile-switch-project-action will be executed, and you will begin working in the relevant project. By default, emacs will prompt you about whether not to execute the elisp associated with the link. To disable this prompt, add

(setq org-confirm-elisp-link-function nil)

to your configuration.

Customization

Author’s Configuration

The author’s configuration can be found here. Check it out for some ideas about how to customize org-projectile.

org-projectile's People

Contributors

colonelpanic8 avatar bookest avatar thebb avatar bbigras avatar jtamagnan avatar leezu avatar mdorman avatar syohex avatar gitter-badger avatar br3athein avatar braham-snyder avatar

Watchers

Tadeusz Kurpiel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.