소스 검색

With link to Screencast

Marc Ihm 9 년 전
부모
커밋
5752da02a6
1개의 변경된 파일21개의 추가작업 그리고 48개의 파일을 삭제
  1. 21 48
      contrib/lisp/org-index.el

+ 21 - 48
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 ()