Hi, all Today, I've added xtla-read.el to my archive. It includes the new name reading engine.
If it becomes stable and the developers are approved, I will replace the old engine with the new one; and move the code in xtla-read.el to core. The reason I have added the file to my archive is that I'd like you to hear your comments. I believe the new engine is better than old one. However, the impact on the user interface is not small. One of the weakness of the new engine is that the number of completions appeared during reading is much more. The old reading engine reads archive,category,... step by step. In each step, the number of completions is not so much. However the new one try to read archive,category,... at once. As the result the number of completions is much more. After loading xtla, load xtla-read.el to try. Here is the examples: To read an archive from the all archives, eval (tla--read-name nil 'archive nil "Example") To read a category from the specified archive, eval (tla--read-name "[EMAIL PROTECTED]" 'category nil "Example") To read a branch from the specified archive, eval (tla--read-name "[EMAIL PROTECTED]" 'branch nil "Example") To read a branch from the specified archive/category, eval (tla--read-name "[EMAIL PROTECTED]" 'branch nil "Example") If you cannot find good completions during reading, just type "return". Then the completions table is rebuild again. Masatake YAMATO ;; ;; New name reading engine ;; ;; Goal: Better interaction ;; ;; 1. If `tla--archive-tree' is hot enough, an user can give name in one ;; interaction. ;; In old implementation, the user have to give archive, category, ;; branch, version and revision separated interactions. ;; ;; 2. If `tla--archive-tree' is not hot enough(or empty), an user can choose ;; follwoing action: ;; 2.1 don't use completion. Use the user's memory. ;; 2.2 build the subtree of `tla--archive-tree' for the next completion. ;; ;; 3. Providing more customizable prompt. ;; ;; Interface for users: ;; ;; Completions are given from the current `tla--archive-tree'. ;; If you cannot find what you want to input in the completions, choose follwoing actions. ;; Action 1. just type `return'. Subtree for `tla--archive-tree' is built from the current ;; input. As the result the completions are updated. You will find good candidates ;; in new completions. ;; Action 2. continue to input without relying completions. If you cannot remember what you want ;; to input, take the action 1 anytime. ;; ;; Interface for developers: ;; BASE and TARGET are used to build completions. ;; BASE is the root node for a subtree of `tla--archive-tree'. ;; A String or split list is acceptable. e.g. "[EMAIL PROTECTED]". ;; TARGET specifies the component you want to read. A symbol, archive, category, ;; branch, version or revision is acceptable. ;; DEFAULT is used as the initial input. DEFAULT fills the minibuffer at the ;; first interaction. ;; PROMPT is a string used as the prefix for the prompt. ;; ;; Examples: ;; ;; (tla--read-name nil 'archive nil "Example") ;; (tla--read-name nil 'category nil "Example") ;; (tla--read-name nil 'category "[EMAIL PROTECTED]" "Example") ;; (tla--read-name "[EMAIL PROTECTED]" 'branch "xtla" "Example") ;; (tla--read-name "[EMAIL PROTECTED]" 'version "xtla" "Example") ;;
