summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mercouris <john@mercouris.email>2017-09-21 00:16:05 -0500
committerJohn Mercouris <john@mercouris.email>2017-09-21 00:16:05 -0500
commit2ddc12558e0c53414d10607857852ef62c02e9a2 (patch)
treedad946b56dc18fdb01cc0a83f97c966ad067c9b4
parentb12c9bb2770f31466d7c67284464a3449835c973 (diff)
version 0.02 complete, tree history and navigation implemented0.02
-rw-r--r--next/README.org18
-rw-r--r--next/lisp/document-mode.lisp19
2 files changed, 28 insertions, 9 deletions
diff --git a/next/README.org b/next/README.org
index 711fd8bb6..8dd76e1a0 100644
--- a/next/README.org
+++ b/next/README.org
@@ -192,7 +192,13 @@ release 1.20, and 2.20 are one major release away from each other. Minor
releases are issued by incrementing by 0.01. That is, 1.01, and 1.02 are
two minor releases following major release 1.0.
-** 0.03
+** TODO 0.03
+*** TODO Improve in Code Documentation & Architecture
+- Create much clearer picture of how everything functions together,
+ make cleaner architecture diagrams showing how everything links
+ together
+- Clean up classes, use defmethods instead of generic functions
+- Create Page class with meta information about page
*** TODO Window System
- Emacs like window system
*** TODO Bookmarks
@@ -216,11 +222,8 @@ two minor releases following major release 1.0.
- Use install_name_tool to update the now copied frameworks in
`next.app/Contents/Frameworks`
- For more info please see: http://doc.qt.io/qt-5/osx-deployment.html
-** TODO 0.02
-*** TODO Improve in Code Documentation
-- Create much clearer picture of how everything functions together,
- make cleaner architecture diagrams showing how everything links
- together
+** DONE 0.02
+CLOSED: [2017-09-21 Thu 00:15]
*** DONE History Tree Mode
CLOSED: [2017-09-20 Wed 22:42]
- Create a mode that allows traversal of the tree created in the
@@ -238,7 +241,8 @@ CLOSED: [2017-09-20 Wed 19:32]
- using the key binding M-f, and M-b for forward and backward
respectively
- should only work if there is one child
-**** TODO Forward navigation with more than one child prompts mini-buffer selection
+**** DONE Forward navigation with more than one child prompts mini-buffer selection
+CLOSED: [2017-09-21 Thu 00:15]
- If a user tries to navigate forward but there is more than one
possible destination available, show the possibilities as an
auto-completable list in the minibuffer
diff --git a/next/lisp/document-mode.lisp b/next/lisp/document-mode.lisp
index 508d07417..c8b5295ad 100644
--- a/next/lisp/document-mode.lisp
+++ b/next/lisp/document-mode.lisp
@@ -22,11 +22,23 @@
(set-url (node-data parent)))))
(defun history-forwards ()
- ;; move forwards the history selecting the first child
+ ;; move forwards in history selecting the first child
(let ((children (node-children (mode-history-active-node (buffer-mode *active-buffer*)))))
(if children
(set-url (node-data (nth 0 children))))))
+(defun history-forwards-query (input)
+ ;; move forwards in history querying if more than one child
+ (let ((children (node-children (mode-history-active-node (buffer-mode *active-buffer*)))))
+ (loop for child in children do
+ (if (equalp (node-data child) input)
+ (set-url (node-data child))))))
+
+(defun history-fowards-query-complete (input)
+ (let ((children (node-children (mode-history-active-node (buffer-mode *minibuffer-callback-buffer*)))))
+ (when children
+ (fuzzy-match input (mapcar #'node-data children)))))
+
(defun history-tree-show ()
(update-tree-model (mode-history-tree-root-node (buffer-mode *active-buffer*)))
(set-visible-active-buffer *history-tree*))
@@ -92,8 +104,11 @@
mode))
(define-key document-mode-map (kbd "S-t") #'history-tree-show)
-(define-key document-mode-map (kbd "S-f") #'history-forwards)
+(define-key document-mode-map (kbd "S-f")
+ (:input-complete history-forwards-query history-fowards-query-complete))
(define-key document-mode-map (kbd "S-b") #'history-backwards)
+(define-key document-mode-map (kbd "C-f") #'history-forwards)
+(define-key document-mode-map (kbd "C-b") #'history-backwards)
(define-key document-mode-map (kbd "C-p") #'scroll-up)
(define-key document-mode-map (kbd "C-n") #'scroll-down)
(define-key document-mode-map (kbd "C-l") (:input set-url))