diff options
author | Marc Ihm <marc.ihm@schufa.de> | 2015-12-31 11:06:54 +0100 |
---|---|---|
committer | Marc Ihm <marc.ihm@schufa.de> | 2015-12-31 11:06:54 +0100 |
commit | 5752da02a6e5ea2ec4485ff85d23c354c81832d3 (patch) | |
tree | 0b2d858ec0593163f4844ad00ebc74288f7f5560 | |
parent | 51194312e4b79ce5dc069fb8cf934c9810bfe2b0 (diff) | |
download | org-mode-5752da02a6e5ea2ec4485ff85d23c354c81832d3.tar.gz |
With link to Screencast
-rw-r--r-- | contrib/lisp/org-index.el | 69 |
1 files changed, 21 insertions, 48 deletions
diff --git a/contrib/lisp/org-index.el b/contrib/lisp/org-index.el index 54388af..5c447b0 100644 --- a/contrib/lisp/org-index.el +++ b/contrib/lisp/org-index.el @@ -1,9 +1,9 @@ -;;; org-index.el --- A personal adaptive index for org +;;; org-index.el --- A personal index for org ;; Copyright (C) 2011-2015 Free Software Foundation, Inc. ;; Author: Marc Ihm <org-index@2484.de> -;; Version: 5.0.1 +;; Version: 5.0.2 ;; Keywords: outlines index ;; This file is not part of GNU Emacs. @@ -27,7 +27,7 @@ ;; Purpose: ;; -;; Fast index search for selected org nodes and things outside of org. +;; Fast search for selected org nodes and things outside of org. ;; ;; org-index creates and updates an index table with keywords; each line ;; either points to a heading in org, references something outside or @@ -49,6 +49,9 @@ ;; ;; Setup: ;; +;; - Place this file in a directory from your load-path, +;; e.g. org-mode/contrib/lisp. +;; ;; - Add these lines to your .emacs: ;; ;; (require 'org-index) @@ -63,21 +66,23 @@ ;; group org-index). ;; ;; -;; Further reading: +;; Further information: +;; +;; - Watch the screencast at http://2484.de/org-index.html. ;; -;; See the documentation of `org-index', which can also be read -;; by invoking `org-index' and choosing the help-command. +;; - See the documentation of `org-index', which can also be read +;; by invoking `org-index' and choosing the help-command. ;; ;; ;; Updates: ;; ;; The latest published version of this file can always be found at: ;; -;; http://orgmode.org/w/org-mode.git?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-index.el;hb=HEAD +;; http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-index.el;hb=HEAD ;;; Change Log: -;; [2015-12-25 Fr] Version 5.0.1 +;; [2015-12-29 Tu] Version 5.0.2 ;; - New commands yank, column and edit ;; - New column tags ;; - All columns are now required @@ -85,6 +90,7 @@ ;; - Subcommand enter has been renamed to index ;; - Subcommands kill and edit can be invoked from an occur buffer ;; - Many Bugfixes +;; - Added link to screencast ;; ;; [2015-08-20 Th] Version 4.3.0 ;; - Configuration is done now via standard customize @@ -151,7 +157,7 @@ (require 'widget) ;; Version of this package -(defvar org-index-version "5.0.1" "Version of `org-index', format is major.minor.bugfix, where \"major\" are incompatible changes and \"minor\" are new features.") +(defvar org-index-version "5.0.2" "Version of `org-index', format is major.minor.bugfix, where \"major\" are incompatible changes and \"minor\" are new features.") ;; customizable options (defgroup org-index nil @@ -177,6 +183,7 @@ mixed First, show all index entries, which have been :set (lambda (s v) (set-default s v) (if (and org-index-id + org-index--buffer (functionp 'org-index--sort-silent)) (org-index--sort-silent))) :initialize 'custom-initialize-default @@ -331,7 +338,7 @@ for its index table. To start building up your index, use subcommands 'add', 'ref' and 'yank' to create entries and use 'occur' to find them. -This is version 5.0.1 of org-index.el. +This is version 5.0.2 of org-index.el. The function `org-index' is the only interactive function of this @@ -1115,7 +1122,7 @@ Argument COLUMN and VALUE specify line to get." "Special input routine for command index." ;; Accept single char commands or switch to reading a sequence of digits - (let (char prompt search-ref search-id) + (let (char prompt search-ref search-id search-fingerprint) ;; start with short prompt but give more help on next iteration (setq prompt "Please specify, where to go in index (0-9.,space,backspace,return or ? for help): ") @@ -1491,41 +1498,6 @@ Argument COLUMN and VALUE specify line to get." org-index--valid-headings)) -(defun org-index--parse-list-item () - "Parse a list item into an assoc array (indent, checkbox, text, value)." - - ;; matche full list-item, maybe with checkbox and double-colon - (if (looking-at org-list-full-item-re) - - ;; retrieve interesting parts of list item from match data - (let (indent checkbox text value next-line) - - (setq indent - (- (save-excursion (goto-char (match-beginning 1)) (current-column)) ; first column - (save-match-data (org-current-level)) ; indent-level - 1)) - (setq checkbox (match-string 3)) - (setq text (match-string 4)) - (set (if text 'value 'text) (buffer-substring (match-end 0) (line-end-position))) ; regexp did not capture this - - ;; peek ahead, if item continues on next line - (forward-line 1) - (if (looking-at org-list-full-item-re) - (forward-line -1) ; already at next item; go back - (setq next-line (buffer-substring (line-beginning-position) (line-end-position)))) - - ;; clean up strings - (mapc (lambda (x) - (if (stringp (symbol-value x)) - (set x (org-trim (substring-no-properties (symbol-value x)))))) - '(text value next-line)) - - (if next-line (setq text (concat text " " next-line))) ; append next line if - - (list (cons :indent indent) (cons :text text) (cons :value value) (cons :sym (intern text)))) - nil)) - - (defun org-index--create-missing-index (&rest reasons) "Create a new empty index table with detailed explanation. Argument REASONS explains why." @@ -2381,9 +2353,10 @@ If OTHER in separate window." (org-show-entry) (recenter) (unless (string= (org-id-get) id) - (error "Could not find node with id %s" id)) + (setq message "Could not go to node with id %s (narrowed ?)" id)) (setq message "Found headline")) - (setq message (format "Did not find headline %s" ref))))) + (setq message (format "Did not find node with %s" id))) + message)) (defun org-index--do-occur () |