summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Ihm <marc.ihm@schufa.de>2015-12-31 11:06:54 +0100
committerMarc Ihm <marc.ihm@schufa.de>2015-12-31 11:06:54 +0100
commit5752da02a6e5ea2ec4485ff85d23c354c81832d3 (patch)
tree0b2d858ec0593163f4844ad00ebc74288f7f5560
parent51194312e4b79ce5dc069fb8cf934c9810bfe2b0 (diff)
downloadorg-mode-5752da02a6e5ea2ec4485ff85d23c354c81832d3.tar.gz
With link to Screencast
-rw-r--r--contrib/lisp/org-index.el69
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 ()