summaryrefslogtreecommitdiff
path: root/suffix tree
diff options
context:
space:
mode:
Diffstat (limited to 'suffix tree')
-rw-r--r--suffix tree/LCS.el314
-rw-r--r--suffix tree/ST.cpp131
-rw-r--r--suffix tree/generalized-suffix-tree.el398
-rw-r--r--suffix tree/gst test ground.txt12291
-rw-r--r--suffix tree/lcs test ground.txt180
-rw-r--r--suffix tree/suffiex-tree.txt168
-rw-r--r--suffix tree/suffix tree test ground.txt145
-rw-r--r--suffix tree/suffix-tree files.zipbin0 -> 14879 bytes
-rw-r--r--suffix tree/suffix-tree.el397
9 files changed, 14024 insertions, 0 deletions
diff --git a/suffix tree/LCS.el b/suffix tree/LCS.el
new file mode 100644
index 0000000..989c25e
--- /dev/null
+++ b/suffix tree/LCS.el
@@ -0,0 +1,314 @@
+;;; LCS.el --- Longest Common Substrings of multiple strings -*- lexical-binding: t; -*-
+
+;;; Author: Durand
+;;; Version: 0.0.1
+
+;;; Commentary:
+
+;; First generate a generalized suffix tree of the strings, then
+;; traverses the tree in a depth-first manner to find the nodes under
+;; which there are suffixes from each and every string in question.
+;; Finally collect and return the list of all substrings which are
+;; common to all input strings and which have the longest length.
+
+;;; Code:
+
+;;; Our building block
+(require 'generalized-suffix-tree)
+
+;;;###autoload
+(defun lcs-string (strs)
+ "Return the longest common substring of STRS."
+ (lcs-interpret (lcs strs) strs))
+
+;;;###autoload
+(defun lcs-edge-length (node str-lens)
+ "Return the length of the edge going into NODE.
+Unlike `gst-edge-length', this does not need to know about POSITION
+and NUM, since it is assumed that the tree is already built
+before calling this function."
+ (let ((start (car (cdr node)))
+ (end (cond
+ ((eq (car (cdr (cdr node))) 'infty)
+ (nth (car node) str-lens))
+ (t (car (cdr (cdr node)))))))
+ (- end start)))
+
+;;;###autoload
+(defun lcs-get-parent-length (parents)
+ "Return the length of the parent strings PARENTS."
+ (let* ((ls parents)
+ (result 0))
+ (while (consp ls)
+ (setq result (+ result (- (caddr (car ls))
+ (cadr (car ls)))))
+ (setq ls (cdr ls)))
+ result))
+
+;;;###autoload
+(defun lcs-get-env (node str-lens)
+ "Return the information we want to keep on the stack."
+ (let ((num (car node))
+ (start (car (cdr node)))
+ (end (cond
+ ((eq (car (cdr (cdr node))) 'infty)
+ (nth (car node) str-lens))
+ (t (car (cdr (cdr node))))))
+ (children (car (nthcdr 4 node))))
+ (list num start end children)))
+
+;;; For debug purposes
+
+;;;###autoload
+(defmacro lcs-debug (&rest vars)
+ "Print the names and the values of VARS."
+ `(insert
+ (mapconcat 'identity
+ (list
+ ,@(mapcar
+ (lambda (var)
+ `(format "%s: %S"
+ ,(symbol-name var)
+ ,var))
+ vars))
+ "\n")
+ "\n"))
+
+;;;###autoload
+(defun lcs-pretty-stack-element (element)
+ "Return a pretty representation of ELEMENT."
+ (concat
+ "("
+ (mapconcat
+ (lambda (slot)
+ (format "%S"
+ (cond
+ ((hash-table-p slot)
+ (gst-pretty-hash-table slot))
+ ((consp slot)
+ (mapconcat #'lcs-pretty-stack-element slot ", "))
+ (t slot))))
+ element ", ")
+ ")"))
+
+;;;###autoload
+(defun lcs-pretty-stack (stack)
+ "Prettify a stack."
+ (concat
+ "[ "
+ (mapconcat #'lcs-pretty-stack-element
+ stack
+ ",")
+ " ]"
+ "\n"))
+
+;;;###autoload
+(defun lcs-prepare-env (long-env)
+ "Take the first three elements out of LONG-ENV."
+ (cons (car long-env)
+ (cons (cadr long-env)
+ (cons (caddr long-env)
+ nil))))
+
+;;; Interpreting the result
+
+;;;###autoload
+(defun lcs-interpret (result strs &optional just-length)
+ "Since the raw RESULT of `lcs' is not human-readable, we interpret it.
+If JUST-LENGTH is non-nil, then this only returns the length of
+the longest common substrings. Otherwise, it returns the longest
+common substrings themselves.
+
+Of course, without STRS, we don't even know what our strings are."
+ (cond
+ (just-length (car result))
+ (t (mapcar
+ (lambda (one-result)
+ (let ((chain one-result)
+ temp res-str)
+ (while (consp one-result)
+ (setq temp (car one-result))
+ (setq res-str
+ (concat
+ (let ((nstr (nth (car temp) strs)))
+ (substring nstr
+ (cadr temp)
+ (min (caddr temp) (length nstr))))
+ res-str))
+ (setq one-result (cdr one-result)))
+ res-str))
+ (cadr result)))))
+
+;;; The main engine
+
+;;;###autoload
+(defun lcs (strs &optional just-length)
+ "Return the longest common substring of a list STRS of strings.
+
+If JUST-LENGTH is non-nil, then this only returns the length of the
+longest common substring. Otherwise, it returns the length as well as the
+longest common substring itself."
+ (let* ((strs (mapcar (lambda (str)
+ (vconcat str (list -1)))
+ strs))
+ (str-lens (mapcar #'length strs))
+ (tree (gst-build-for-strs strs str-lens))
+ (max-height 0)
+ (bits-table (make-hash-table))
+ (discovered-table (make-hash-table))
+ (all-common (1- (expt 2 (length strs))))
+ max-env stack current temp)
+ ;; The format of elements on the stack is as follows.
+ ;; (number start end children node-number parents)
+
+ ;; Here number identifies the string this comes from. start, end
+ ;; and children have the same meaning as in the tree. Node-number
+ ;; is the number of the node that is recorded in the hash-table
+ ;; tree. And finally parents is a list of triples that represents
+ ;; parent segments.
+ (setq stack (progn
+ (maphash
+ (lambda (letter node)
+ (setq temp
+ (cons
+ (append
+ (lcs-get-env (gethash node tree) str-lens)
+ (list node nil ; parent strings represented as a triple of integers
+ ))
+ temp)))
+ (car (nthcdr 4 (gethash 1 tree))))
+ temp))
+ (setq temp nil)
+ ;; (insert (format "count: %d\n" count))
+ ;; (lcs-debug all-common)
+ ;; (insert "stack: " (lcs-pretty-stack stack))
+ (while (consp stack)
+ ;; (insert "stack: " (lcs-pretty-stack stack))
+ (setq current (car stack))
+ (let ((current-length (+ (lcs-get-parent-length (car (nthcdr 5 current)))
+ (- (min (caddr current)
+ ;; The final character does
+ ;; not count!
+ (1- (nth (car current)
+ str-lens)))
+ (cadr current))))
+ (current-env (list (car current)
+ (cadr current)
+ (caddr current)
+ (car (nthcdr 3 current))))
+ (current-children (car (nthcdr 3 current))))
+ ;; (insert (format "\n\ncount: %d\n" count))
+ ;; (insert "current: " (lcs-pretty-stack-element current) "\n")
+ ;; (lcs-debug current-length max-env max-height)
+ ;; (insert (format "current children: %S\n" (gst-pretty-hash-table current-children)))
+ ;; (insert (format
+ ;; "discovered: %S\n"
+ ;; (gst-pretty-hash-table discovered-table)))
+ ;; (insert (format
+ ;; "bits: %S\n"
+ ;; (gst-pretty-hash-table bits-table)))
+ (cond
+ ((not (hash-table-empty-p current-children)) ; There are children
+ (cond
+ ((gethash (car (nthcdr 4 current)) discovered-table)
+ ;; This node is already traversed
+ ;; This means we have already given bits to its children
+ (let ((bit (progn
+ (setq temp 0)
+ (maphash (lambda (child-letter child-num)
+ (setq
+ temp
+ (logior temp
+ (gethash child-num bits-table))))
+ current-children)
+ temp)
+ ;; An alternative
+ ;; (apply #'logior
+ ;; (mapcar (lambda (num)
+ ;; (gethash num bits-table))
+ ;; (hash-table-values current-children)))
+ ))
+ (setq temp nil)
+ (puthash (car (nthcdr 4 current)) bit bits-table)
+ ;; (lcs-debug bit)
+ ;; (insert (format
+ ;; "bits: %S\n"
+ ;; (gst-pretty-hash-table bits-table)))
+ (cond
+ ((= bit all-common) ; a common substring
+ (cond
+ ((> current-length max-height)
+ (setq max-height current-length)
+ (setq max-env (list
+ (cons
+ (list (car current)
+ (cadr current)
+ (caddr current))
+ (mapcar #'lcs-prepare-env
+ (car (nthcdr 5 current)))))))
+ ((= current-length max-height)
+ (setq max-env
+ (cons (cons
+ (list (car current)
+ (cadr current)
+ (caddr current))
+ (mapcar #'lcs-prepare-env
+ (car (nthcdr 5 current))))
+ max-env)))))))
+ (setq stack (cdr stack)))
+ (t ; a new node!
+ (setq stack
+ (append
+ (progn
+ (maphash
+ (lambda (letter node)
+ (setq temp
+ (cons
+ (append
+ (lcs-get-env (gethash node tree) str-lens)
+ (list node
+ (cons current-env (car (nthcdr 5 current)))))
+ temp)))
+ current-children)
+ temp)
+ stack))
+ (puthash (car (nthcdr 4 current)) 1 discovered-table)
+ ;; (insert (format "current children: %S\n" (gst-pretty-hash-table current-children)))
+ ;; (insert "stack: " (lcs-pretty-stack stack))
+ (setq temp nil))))
+ (t ; a leaf
+ (let* ((node-number (car (nthcdr 4 current)))
+ (leaf-labels (car (nthcdr 5 (gethash node-number tree))))
+ (bit (apply #'logior
+ (mapcar (lambda (label)
+ (ash 1 (car label)))
+ leaf-labels))))
+ ;; (insert "leaf")
+ ;; (lcs-debug node-number leaf-labels bit)
+ (puthash node-number bit bits-table)
+ (cond
+ ((= bit all-common) ; a common substring
+ (cond
+ ((> current-length max-height)
+ (setq max-height current-length)
+ (setq max-env (list
+ (cons
+ (list (car current)
+ (cadr current)
+ (caddr current))
+ (mapcar #'lcs-prepare-env
+ (car (nthcdr 5 current)))))))
+ ((= current-length max-height)
+ (setq max-env
+ (cons (cons
+ (list (car current)
+ (cadr current)
+ (caddr current))
+ (mapcar #'lcs-prepare-env
+ (car (nthcdr 5 current))))
+ max-env))))))
+ (setq stack (cdr stack)))))))
+ (list max-height max-env)))
+
+(provide 'lcs)
+;;; LCS.el ends here
diff --git a/suffix tree/ST.cpp b/suffix tree/ST.cpp
new file mode 100644
index 0000000..cad0ccb
--- /dev/null
+++ b/suffix tree/ST.cpp
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) 2016 Sergey Makagonov
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include <iostream>
+#include <stdio.h>
+#include <string>
+
+const int oo = 1<<25;
+const int ALPHABET_SIZE = 256;
+const int MAXN = 5000;
+
+using namespace std;
+
+int root, last_added, pos, needSL, remainder,
+ active_node, active_e, active_len;
+
+struct node {
+/*
+ There is no need to create an "Edge" struct.
+ Information about the edge is stored right in the node.
+ [start; end) interval specifies the edge,
+ by which the node is connected to its parent node.
+*/
+
+ int start, end, slink;
+ int next[ALPHABET_SIZE];
+
+ int edge_length() {
+ return min(end, pos + 1) - start;
+ }
+};
+
+node tree[2*MAXN];
+char text[MAXN];
+
+int new_node(int start, int end = oo) {
+ node nd;
+ nd.start = start;
+ nd.end = end;
+ nd.slink = 0;
+ for (int i = 0; i < ALPHABET_SIZE; i++)
+ nd.next[i] = 0;
+ tree[++last_added] = nd;
+ return last_added;
+}
+
+char active_edge() {
+ return text[active_e];
+}
+
+void add_SL(int node) {
+ if (needSL > 0) tree[needSL].slink = node;
+ needSL = node;
+}
+
+bool walk_down(int node) {
+ if (active_len >= tree[node].edge_length()) {
+ active_e += tree[node].edge_length();
+ active_len -= tree[node].edge_length();
+ active_node = node;
+ return true;
+ }
+ return false;
+}
+
+void st_init() {
+ needSL = 0, last_added = 0, pos = -1,
+ remainder = 0, active_node = 0, active_e = 0, active_len = 0;
+ root = active_node = new_node(-1, -1);
+}
+
+void st_extend(char c) {
+ text[++pos] = c;
+ needSL = 0;
+ remainder++;
+ while(remainder > 0) {
+ if (active_len == 0) active_e = pos;
+ if (tree[active_node].next[active_edge()] == 0) {
+ int leaf = new_node(pos);
+ tree[active_node].next[active_edge()] = leaf;
+ add_SL(active_node); //rule 2
+ } else {
+ int nxt = tree[active_node].next[active_edge()];
+ if (walk_down(nxt)) continue; //observation 2
+ if (text[tree[nxt].start + active_len] == c) { //observation 1
+ active_len++;
+ add_SL(active_node); //observation 3
+ break;
+ }
+ int split = new_node(tree[nxt].start, tree[nxt].start + active_len);
+ tree[active_node].next[active_edge()] = split;
+ int leaf = new_node(pos);
+ tree[split].next[c] = leaf;
+ tree[nxt].start += active_len;
+ tree[split].next[text[tree[nxt].start]] = nxt;
+ add_SL(split); //rule 2
+ }
+ remainder--;
+ if (active_node == root && active_len > 0) { //rule 1
+ active_len--;
+ active_e = pos - remainder + 1;
+ } else
+ active_node = tree[active_node].slink > 0 ? tree[active_node].slink : root; //rule 3
+ }
+}
+
+int main() {
+ //
+ return 0;
+}
diff --git a/suffix tree/generalized-suffix-tree.el b/suffix tree/generalized-suffix-tree.el
new file mode 100644
index 0000000..227aea9
--- /dev/null
+++ b/suffix tree/generalized-suffix-tree.el
@@ -0,0 +1,398 @@
+;;; generalized-suffiex-tree.el --- Building a generalized suffix tree -*- lexical-binding: t; -*-
+
+;;; Author: Durand
+;;; Version: 0.0.2
+
+;;; Commentary:
+
+;; Our node is represented as a list of the following elements:
+
+;; number , from which string this edge comes
+;; start , which is the starting index of the edge going from its parent
+;; node to this node
+;; end , the index of the end of the above edge
+;; suffix-link, the index of the node this node's suffix-link points to
+;; children , a hash-table of pairs of integers and indices of its
+;; children
+;; leaf-labels, a list of pairs (number start), where
+;; number means the number-th string and
+;; start is the starting position of this edge.
+;; This element is nil for the internal nodes.
+
+;; To compute the length of the edge going into NODE we use:
+;; (- (min end (1+ position)) start)
+;; which is actually how far the position is on that edge,
+;; if it is on that edge.
+
+;; We use only one terminating symbol, and that is -1.
+
+;;; Code:
+
+;;;###autoload
+(defun gst-min (&rest args)
+ "Return the minimum among ARGS.
+If an argument is 'infty, then it is considered greater than
+every number."
+ (apply #'min (delq nil
+ (mapcar
+ (lambda (arg)
+ (cond
+ ((number-or-marker-p arg) arg)
+ ((eq arg 'infty) nil)))
+ args))))
+
+;;;###autoload
+(defun gst-edge-length (node position num str-lens)
+ "Return the length of the edge into NODE.
+See the comment above this function for the reason
+POSITION and NUM are here."
+ (let* ((node-active-num (car node))
+ (leafp (eq (car (cdr (cdr node))) 'infty))
+ (leaf-labels (cond (leafp (car (nthcdr 5 node))))))
+ (- (cond
+ ((and (/= node-active-num num)
+ leafp)
+ (nth node-active-num str-lens))
+ ((/= node-active-num num)
+ (caddr node))
+ (t (gst-min (caddr node) (1+ position))))
+ (cond
+ ((and (= node-active-num num)
+ leafp)
+ (or (cadr (assoc num leaf-labels #'eq))
+ (cadr node)))
+ (t (cadr node))))))
+
+;;;###autoload
+(defun gst-new-node (tree last-added number start &optional end suffix-start)
+ "Make a new node with START and END as the coming edge.
+NUMBER is the number of string the label belongs to.
+Then add the new node to TREE.
+LAST-ADDED is the number of elements already in the TREE."
+ (let* ((end (or end 'infty) ;; 'infty represents the index of a leaf
+ )
+ (suffix-link 0) ;; The suffix link is initially 0
+ (new-node
+ (cond ((eq end 'infty)
+ (list number start end suffix-link (make-hash-table)
+ (list (list number suffix-start))))
+ (t
+ (list number start end suffix-link (make-hash-table))))))
+ (puthash (1+ last-added) new-node tree)
+ (1+ last-added)))
+
+;;;###autoload
+(defun gst-add-leaf-label (tree leaf number start)
+ "Add a label to LEAF."
+ (let* ((actual-node (gethash leaf tree))
+ (leaf-labels (cdr (cdr (cdr (cdr (cdr actual-node)))))))
+ (cond ((consp leaf-labels)
+ (setcar leaf-labels
+ (cons (list number start)
+ (car leaf-labels)))))))
+
+;;;###autoload
+(defun gst-add-suffix-link (tree need-sl node)
+ "If NEED-SL is positive, then add the suffix link.
+In particular, the node corresponding to NEED-SL in TREE
+gets a suffix link pointing to NODE.
+
+This always returns NODE."
+ (cond
+ ((and (> need-sl 1) (/= need-sl node))
+ (setcar (cdr (cdr (cdr (gethash need-sl tree)))) node)))
+ node)
+
+;;;###autoload
+(defun gst-canonize (tree node position active-number active-edge-index active-length active-node
+ str-lens)
+ "Walk down TREE to find the correct active point."
+ (let* ((actual-node (gethash node tree))
+ (node-edge-length (gst-edge-length actual-node position active-number
+ str-lens)))
+ (cond
+ ((>= active-length node-edge-length)
+ (list t
+ active-number
+ (+ active-edge-index
+ node-edge-length)
+ (- active-length
+ node-edge-length)
+ node))
+ (t
+ (list nil
+ active-number
+ active-edge-index
+ active-length
+ active-node)))))
+
+;;;###autoload
+(defsubst gst-aref (strs num index)
+ "Return the INDEX-th element in NUM-th element of STRS."
+ (aref (nth num strs) index))
+
+;;;###autoload
+(defun gst-extend-tree (tree last-added position remain
+ active-node active-number active-edge-index
+ active-length character strs num str-lens)
+ "Extend a tree by CHARACTER in NUM-th string of STRS.
+The return value is
+(tree
+ last-added remain active-node
+ active-number active-edge-index active-length)"
+ (let* ((need-sl 0)
+ (remain (1+ remain))
+ continue-p breakp)
+ (while (and (not breakp) (> remain 0))
+ (setq continue-p nil breakp nil)
+ (cond
+ ((= active-length 0)
+ (setq active-edge-index position)
+ (setq active-number num)))
+ (let* ((actual-node (gethash active-node tree))
+ (nxt (cond
+ (actual-node
+ (gethash (gst-aref strs active-number active-edge-index)
+ (cadr (cdr (cdr (cdr actual-node)))))))))
+ (cond
+ ((null nxt)
+ (let ((leaf (gst-new-node tree last-added num position nil
+ (- position remain -1))))
+ (setq last-added leaf)
+ (puthash (gst-aref strs active-number active-edge-index)
+ leaf
+ (cadr (cdr (cdr (cdr (gethash active-node tree))))))
+ (setq need-sl (gst-add-suffix-link tree need-sl active-node)))
+ ;; rule 2
+ )
+ (t
+ (let* ((result (gst-canonize
+ tree nxt position active-number
+ active-edge-index active-length active-node
+ str-lens)))
+ (cond
+ ((car result)
+ ;; observation 2
+ (setq active-number (car (cdr result)))
+ (setq active-edge-index (car (cdr (cdr result))))
+ (setq active-length (car (cdr (cdr (cdr result)))))
+ (setq active-node (car (cdr (cdr (cdr (cdr result))))))
+ (setq continue-p t))
+ (t
+ (cond
+ ((eq (gst-aref strs
+ (car (gethash nxt tree))
+ (+ active-length
+ (cadr (gethash nxt tree))))
+ character)
+ ;; observation 1
+ (setq active-length (1+ active-length))
+ (setq need-sl (gst-add-suffix-link tree need-sl active-node))
+ (setq breakp t)
+ ;; add a label
+ (cond
+ ((eq character -1) ; terminating symbol
+ (gst-add-leaf-label tree nxt num (- position remain -1))))))
+ (cond
+ (breakp)
+ (t ;; splitting
+ (let ((split (gst-new-node
+ tree last-added (car (gethash nxt tree)) (cadr (gethash nxt tree))
+ (+ (cadr (gethash nxt tree)) active-length))))
+ (setq last-added split)
+ (puthash
+ (gst-aref strs active-number active-edge-index)
+ split (cadr (cdr (cdr (cdr (gethash active-node tree))))))
+ (let ((leaf (gst-new-node tree last-added num position
+ nil (- position remain -1))))
+ (setq last-added leaf)
+ (puthash character leaf
+ (cadddr (cdr (gethash split tree))))
+ (setcar (cdr (gethash nxt tree))
+ (+ (cadr (gethash nxt tree))
+ active-length))
+ (puthash (gst-aref strs
+ (car (gethash nxt tree))
+ (cadr (gethash nxt tree)))
+ nxt
+ (cadddr (cdr (gethash split tree))))
+ ;; rule 2
+ (setq need-sl
+ (gst-add-suffix-link tree need-sl split)))))))))))
+ (cond
+ ((or continue-p breakp))
+ (t
+ (setq remain (1- remain))
+ (cond
+ ((and (eq active-node 1) ; root
+ (> active-length 0))
+ (setq active-length (1- active-length))
+ (setq active-edge-index
+ (1+ (- position remain))))
+ (t
+ (setq active-node
+ (let ((slink (cadddr (gethash active-node tree))))
+ (cond ; follow the suffix link or go to root
+ ((> slink 1) slink)
+ (t 1))))))))))
+ (list tree last-added remain active-node
+ active-number active-edge-index active-length)))
+
+;;;###autoload
+(defun gst-build-for-strs (strs &optional str-lens)
+ "Build the generalized suffix tree for STRS.
+One can optionally provide STR-LENS to avoid calculating the
+lengths again."
+ (let* ((len (length strs))
+ (index 0)
+ (tree (make-hash-table))
+ (last-added 0)
+ (active-node (gst-new-node tree last-added index -1 -1))
+ (str-lens (or str-lens (mapcar #'length strs))))
+ (setq last-added active-node)
+ (while (< index len)
+ (let* ((position 0)
+ (character (ignore-errors (gst-aref strs index position)))
+ (remain 0)
+ (active-node 1) ; start from the root
+ (active-number index)
+ (active-edge-index 0)
+ (active-length 0)
+ old-character result) ; temporary holder
+ (while character
+ (setq old-character character)
+ (setq result (gst-extend-tree tree last-added position remain
+ active-node active-number active-edge-index
+ active-length character strs index
+ str-lens))
+ (setq tree (pop result))
+ (setq last-added (pop result))
+ (setq remain (pop result))
+ (setq active-node (pop result))
+ (setq active-number (pop result))
+ (setq active-edge-index (pop result))
+ (setq active-length (pop result))
+ (setq position (1+ position))
+ (setq character (ignore-errors (gst-aref strs index position)))
+ (cond
+ ((characterp old-character)
+ (insert (format "After adding character %c:\n" old-character))
+ (gst-print-tree tree
+ (append (seq-take strs index)
+ (list (concat
+ (seq-take (nth index strs) position)
+ "$"))))
+ (insert "\n\n"))
+ ((= old-character -1)
+ (insert (format "After adding character -1:\n"))
+ (gst-print-tree tree
+ (seq-take strs (1+ index)))
+ (insert "\n\n")))))
+ (setq index (1+ index))
+ (insert "\n \n"))
+ tree))
+
+;;; Printing
+
+;; This section is not necessary. It is here just to print the trees
+;; to make sure we don't make some strange errors.
+
+(require 'hierarchy)
+(require 'seq)
+
+;;;###autoload
+(defun gst-print-strs (strs)
+ "Print strings STRS nicely."
+ (mapc (lambda (str)
+ (mapc (lambda (char)
+ (cond ((characterp char) (insert char))
+ (t (insert ", "))))
+ str))
+ strs))
+
+;;;###autoload
+(defun gst-pretty-hash-table (table)
+ "Only returns the useful parts from a table."
+ (let (keys-values-alist)
+ (maphash
+ (lambda (key value)
+ (setq keys-values-alist
+ (cons
+ (cons key value)
+ keys-values-alist)))
+ table)
+ keys-values-alist))
+
+;;;###autoload
+(defun gst-pretty-node (node)
+ "Outputs a prettified NODE."
+ (format "(%d %d %s %d %s %S)"
+ (car node) (cadr node)
+ (caddr node) (cadddr node)
+ (gst-pretty-hash-table (car (nthcdr 4 node)))
+ (car (nthcdr 5 node))))
+
+;;;###autoload
+(defun gst-print-tree-for-strs (strs)
+ "Print the generalized suffix tree for STRS."
+ (let* ((strs (mapcar (lambda (str)
+ (vconcat str (list -1)))
+ strs))
+ (symbol (make-symbol "gtree")))
+ (set symbol (gst-build-for-strs strs))
+ (insert "Generalized suffix tree for: ")
+ (gst-print-strs strs)
+ (delete-region (- (point) 2) (point))
+ (insert ":\n")
+ (gst-print-tree (symbol-value symbol) strs)))
+
+;;;###autoload
+(defvar gst-full-error-p nil
+ "Whether to print full nodes in the output.")
+
+;;;###autoload
+(defun gst-print-tree (tree strs)
+ "Print TREE with the aid of STRS."
+ (let* ((symbol-tree (make-symbol "new-hierarchy")))
+ (set symbol-tree (hierarchy-new))
+ (maphash
+ (lambda (key value)
+ (hierarchy-add-tree
+ (symbol-value symbol-tree) key nil
+ (lambda (item)
+ (hash-table-values (car (nthcdr 4 (gethash item tree)))))))
+ tree)
+ (hierarchy-print
+ (symbol-value symbol-tree)
+ (lambda (item)
+ (cond ((= item 1) "root")
+ (t (let ((actual-str
+ (let* ((node (gethash item tree))
+ (leafp (eq (caddr node) 'infty))
+ (leaf-labels
+ (cond (leafp (car (nthcdr 5 node))))))
+ (concat
+ (seq-subseq
+ (nth (car node) strs)
+ (min (cadr node) (1- (length (nth (car node) strs))))
+ (cond (leafp -1)
+ (t (caddr node))))
+ (cond
+ (leafp
+ (apply
+ #'concat
+ (mapcar
+ (lambda (label)
+ (let ((first (car label))
+ (second (cadr label)))
+ (format "$ (%d : %d)"
+ first second)))
+ leaf-labels))))))))
+ (cond (gst-full-error-p
+ (concat
+ (format "key: %d, %s, %s" item actual-str
+ (gst-pretty-node (gethash item tree)))))
+ (t actual-str)))))))))
+
+(provide 'generalized-suffix-tree)
+;;; generalized-suffiex-tree.el ends here
diff --git a/suffix tree/gst test ground.txt b/suffix tree/gst test ground.txt
new file mode 100644
index 0000000..2dad02e
--- /dev/null
+++ b/suffix tree/gst test ground.txt
@@ -0,0 +1,12291 @@
+Generalized suffix tree for: abab, baba:
+root
+ a
+ $ (1 : 3)
+ b
+ $ (0 : 2)
+ a
+ $ (1 : 1)
+ b$ (0 : 0)
+ b
+ $ (0 : 3)
+ a
+ $ (1 : 2)
+ b
+ a$ (1 : 0)
+ $ (0 : 1)
+ $ (1 : 4)$ (0 : 4)
+
+
+
+Generalized suffix tree for: abab, baba, cbabd:
+root
+ a
+ $ (1 : 3)
+ b
+ $ (0 : 2)
+ a
+ $ (1 : 1)
+ b$ (0 : 0)
+ d$ (2 : 2)
+ b
+ $ (0 : 3)
+ a
+ $ (1 : 2)
+ b
+ a$ (1 : 0)
+ $ (0 : 1)
+ d$ (2 : 1)
+ d$ (2 : 3)
+ $ (2 : 5)$ (1 : 4)$ (0 : 4)
+ cbabd$ (2 : 0)
+ d$ (2 : 4)
+
+
+
+After adding character i:
+root
+ i$ (0 : 0)
+
+
+After adding character d:
+root
+ id$ (0 : 0)
+ d$ (0 : 1)
+
+
+After adding character o:
+root
+ ido$ (0 : 0)
+ do$ (0 : 1)
+ o$ (0 : 2)
+
+
+After adding character -:
+root
+ ido-$ (0 : 0)
+ do-$ (0 : 1)
+ o-$ (0 : 2)
+ -$ (0 : 3)
+
+
+After adding character c:
+root
+ ido-c$ (0 : 0)
+ do-c$ (0 : 1)
+ o-c$ (0 : 2)
+ -c$ (0 : 3)
+ c$ (0 : 4)
+
+
+After adding character o:
+root
+ ido-co$ (0 : 0)
+ do-co$ (0 : 1)
+ o-co$ (0 : 2)
+ -co$ (0 : 3)
+ co$ (0 : 4)
+
+
+After adding character m:
+root
+ ido-com$ (0 : 0)
+ do-com$ (0 : 1)
+ o
+ m$ (0 : 5)
+ -com$ (0 : 2)
+ -com$ (0 : 3)
+ com$ (0 : 4)
+ m$ (0 : 6)
+
+
+After adding character p:
+root
+ ido-comp$ (0 : 0)
+ do-comp$ (0 : 1)
+ o
+ mp$ (0 : 5)
+ -comp$ (0 : 2)
+ -comp$ (0 : 3)
+ comp$ (0 : 4)
+ mp$ (0 : 6)
+ p$ (0 : 7)
+
+
+After adding character l:
+root
+ ido-compl$ (0 : 0)
+ do-compl$ (0 : 1)
+ o
+ mpl$ (0 : 5)
+ -compl$ (0 : 2)
+ -compl$ (0 : 3)
+ compl$ (0 : 4)
+ mpl$ (0 : 6)
+ pl$ (0 : 7)
+ l$ (0 : 8)
+
+
+After adding character e:
+root
+ ido-comple$ (0 : 0)
+ do-comple$ (0 : 1)
+ o
+ mple$ (0 : 5)
+ -comple$ (0 : 2)
+ -comple$ (0 : 3)
+ comple$ (0 : 4)
+ mple$ (0 : 6)
+ ple$ (0 : 7)
+ le$ (0 : 8)
+ e$ (0 : 9)
+
+
+After adding character t:
+root
+ ido-complet$ (0 : 0)
+ do-complet$ (0 : 1)
+ o
+ mplet$ (0 : 5)
+ -complet$ (0 : 2)
+ -complet$ (0 : 3)
+ complet$ (0 : 4)
+ mplet$ (0 : 6)
+ plet$ (0 : 7)
+ let$ (0 : 8)
+ et$ (0 : 9)
+ t$ (0 : 10)
+
+
+After adding character i:
+root
+ ido-completi$ (0 : 0)
+ do-completi$ (0 : 1)
+ o
+ mpleti$ (0 : 5)
+ -completi$ (0 : 2)
+ -completi$ (0 : 3)
+ completi$ (0 : 4)
+ mpleti$ (0 : 6)
+ pleti$ (0 : 7)
+ leti$ (0 : 8)
+ eti$ (0 : 9)
+ ti$ (0 : 10)
+
+
+After adding character o:
+root
+ i
+ o$ (0 : 11)
+ do-completio$ (0 : 0)
+ do-completio$ (0 : 1)
+ o
+ mpletio$ (0 : 5)
+ -completio$ (0 : 2)
+ -completio$ (0 : 3)
+ completio$ (0 : 4)
+ mpletio$ (0 : 6)
+ pletio$ (0 : 7)
+ letio$ (0 : 8)
+ etio$ (0 : 9)
+ tio$ (0 : 10)
+
+
+After adding character n:
+root
+ i
+ on$ (0 : 11)
+ do-completion$ (0 : 0)
+ do-completion$ (0 : 1)
+ o
+ mpletion$ (0 : 5)
+ -completion$ (0 : 2)
+ n$ (0 : 12)
+ -completion$ (0 : 3)
+ completion$ (0 : 4)
+ mpletion$ (0 : 6)
+ pletion$ (0 : 7)
+ letion$ (0 : 8)
+ etion$ (0 : 9)
+ tion$ (0 : 10)
+ n$ (0 : 13)
+
+
+After adding character s:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ do-completions$ (0 : 1)
+ o
+ mpletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ completions$ (0 : 4)
+ mpletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+
+
+After adding character -1:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ do-completions$ (0 : 1)
+ o
+ mpletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ completions$ (0 : 4)
+ mpletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+
+
+After adding character c:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ do-completions$ (0 : 1)
+ o
+ mpletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ completions$ (0 : 4)
+ mpletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character o:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ do-completions$ (0 : 1)
+ o
+ mpletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ completions$ (0 : 4)
+ mpletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character m:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ do-completions$ (0 : 1)
+ o
+ mpletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ completions$ (0 : 4)
+ mpletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character i:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ do-completions$ (0 : 1)
+ o
+ m
+ i$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ i$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ i$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character n:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ n$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ in$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ in$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ in$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ ns$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character t:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ tions$ (0 : 10)
+ n
+ t$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character -:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character c:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-c$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-c$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-c$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-c$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -c$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-c$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character o:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-co$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-co$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-co$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-co$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -co$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-co$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character m:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-com$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-com$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-com$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-com$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -com$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-com$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character p:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-comp$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-comp$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-comp$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-comp$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -comp$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-comp$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character l:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-compl$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-compl$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-compl$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-compl$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -compl$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-compl$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character e:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-comple$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-comple$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-comple$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-comple$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -comple$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-comple$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character t:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-complet$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-complet$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-complet$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-complet$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -complet$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-complet$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character i:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completi$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completi$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-completi$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-completi$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -completi$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-completi$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character o:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completio$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completio$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-completio$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-completio$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -completio$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-completio$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character n:
+root
+ i
+ ons$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion$ (1 : 1)
+ pletions$ (0 : 5)
+ -completions$ (0 : 2)
+ ns$ (0 : 12)
+ -completions$ (0 : 3)
+ com
+ int-completion$ (1 : 0)
+ pletions$ (0 : 4)
+ m
+ int-completion$ (1 : 2)
+ pletions$ (0 : 6)
+ pletions$ (0 : 7)
+ letions$ (0 : 8)
+ etions$ (0 : 9)
+ t
+ -completion$ (1 : 5)
+ ions$ (0 : 10)
+ n
+ t-completion$ (1 : 4)
+ s$ (0 : 13)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character -:
+root
+ i
+ on
+ -$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-$ (1 : 1)
+ pletion
+ -$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -$ (1 : 15)
+ s$ (0 : 12)
+ -completion
+ -$ (1 : 6)
+ s$ (0 : 3)
+ com
+ int-completion-$ (1 : 0)
+ pletion
+ -$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-$ (1 : 2)
+ pletion
+ -$ (1 : 9)
+ s$ (0 : 6)
+ pletion
+ -$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -completion-$ (1 : 5)
+ ion
+ -$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-$ (1 : 4)
+ s$ (0 : 13)
+ -$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+
+
+After adding character a:
+root
+ i
+ on
+ -a$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-a$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-a$ (1 : 1)
+ pletion
+ -a$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -a$ (1 : 15)
+ s$ (0 : 12)
+ -
+ a$ (1 : 17)
+ completion
+ -a$ (1 : 6)
+ s$ (0 : 3)
+ com
+ int-completion-a$ (1 : 0)
+ pletion
+ -a$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-a$ (1 : 2)
+ pletion
+ -a$ (1 : 9)
+ s$ (0 : 6)
+ pletion
+ -a$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -a$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -a$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -completion-a$ (1 : 5)
+ ion
+ -a$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-a$ (1 : 4)
+ s$ (0 : 13)
+ -a$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ a$ (1 : 18)
+
+
+After adding character t:
+root
+ i
+ on
+ -at$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at$ (1 : 1)
+ pletion
+ -at$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at$ (1 : 15)
+ s$ (0 : 12)
+ -
+ at$ (1 : 17)
+ completion
+ -at$ (1 : 6)
+ s$ (0 : 3)
+ com
+ int-completion-at$ (1 : 0)
+ pletion
+ -at$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at$ (1 : 2)
+ pletion
+ -at$ (1 : 9)
+ s$ (0 : 6)
+ pletion
+ -at$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -completion-at$ (1 : 5)
+ ion
+ -at$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at$ (1 : 4)
+ s$ (0 : 13)
+ -at$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at$ (1 : 18)
+
+
+After adding character -:
+root
+ i
+ on
+ -at-$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at-$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-$ (1 : 1)
+ pletion
+ -at-$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-$ (1 : 15)
+ s$ (0 : 12)
+ -
+ at-$ (1 : 17)
+ completion
+ -at-$ (1 : 6)
+ s$ (0 : 3)
+ com
+ int-completion-at-$ (1 : 0)
+ pletion
+ -at-$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-$ (1 : 2)
+ pletion
+ -at-$ (1 : 9)
+ s$ (0 : 6)
+ pletion
+ -at-$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -completion-at-$ (1 : 5)
+ ion
+ -at-$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at-$ (1 : 4)
+ s$ (0 : 13)
+ -at-$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at-$ (1 : 18)
+
+
+After adding character p:
+root
+ i
+ on
+ -at-p$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at-p$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-p$ (1 : 1)
+ pletion
+ -at-p$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-p$ (1 : 15)
+ s$ (0 : 12)
+ -
+ at-p$ (1 : 17)
+ completion
+ -at-p$ (1 : 6)
+ s$ (0 : 3)
+ p$ (1 : 20)
+ com
+ int-completion-at-p$ (1 : 0)
+ pletion
+ -at-p$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-p$ (1 : 2)
+ pletion
+ -at-p$ (1 : 9)
+ s$ (0 : 6)
+ pletion
+ -at-p$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-p$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-p$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ p$ (1 : 19)
+ completion-at-p$ (1 : 5)
+ ion
+ -at-p$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at-p$ (1 : 4)
+ s$ (0 : 13)
+ -at-p$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at-p$ (1 : 18)
+
+
+After adding character o:
+root
+ i
+ on
+ -at-po$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at-po$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-po$ (1 : 1)
+ pletion
+ -at-po$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-po$ (1 : 15)
+ s$ (0 : 12)
+ -
+ at-po$ (1 : 17)
+ completion
+ -at-po$ (1 : 6)
+ s$ (0 : 3)
+ po$ (1 : 20)
+ com
+ int-completion-at-po$ (1 : 0)
+ pletion
+ -at-po$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-po$ (1 : 2)
+ pletion
+ -at-po$ (1 : 9)
+ s$ (0 : 6)
+ p
+ o$ (1 : 21)
+ letion
+ -at-po$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-po$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-po$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ po$ (1 : 19)
+ completion-at-po$ (1 : 5)
+ ion
+ -at-po$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at-po$ (1 : 4)
+ s$ (0 : 13)
+ -at-po$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at-po$ (1 : 18)
+
+
+After adding character i:
+root
+ i
+ on
+ -at-poi$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at-poi$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-poi$ (1 : 1)
+ pletion
+ -at-poi$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-poi$ (1 : 15)
+ s$ (0 : 12)
+ i$ (1 : 22)
+ -
+ at-poi$ (1 : 17)
+ completion
+ -at-poi$ (1 : 6)
+ s$ (0 : 3)
+ poi$ (1 : 20)
+ com
+ int-completion-at-poi$ (1 : 0)
+ pletion
+ -at-poi$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-poi$ (1 : 2)
+ pletion
+ -at-poi$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oi$ (1 : 21)
+ letion
+ -at-poi$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-poi$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-poi$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ poi$ (1 : 19)
+ completion-at-poi$ (1 : 5)
+ ion
+ -at-poi$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at-poi$ (1 : 4)
+ s$ (0 : 13)
+ -at-poi$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at-poi$ (1 : 18)
+
+
+After adding character n:
+root
+ i
+ on
+ -at-poin$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at-poin$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-poin$ (1 : 1)
+ pletion
+ -at-poin$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-poin$ (1 : 15)
+ s$ (0 : 12)
+ in$ (1 : 22)
+ -
+ at-poin$ (1 : 17)
+ completion
+ -at-poin$ (1 : 6)
+ s$ (0 : 3)
+ poin$ (1 : 20)
+ com
+ int-completion-at-poin$ (1 : 0)
+ pletion
+ -at-poin$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-poin$ (1 : 2)
+ pletion
+ -at-poin$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oin$ (1 : 21)
+ letion
+ -at-poin$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-poin$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-poin$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ poin$ (1 : 19)
+ completion-at-poin$ (1 : 5)
+ ion
+ -at-poin$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at-poin$ (1 : 4)
+ s$ (0 : 13)
+ -at-poin$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at-poin$ (1 : 18)
+
+
+After adding character t:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt-completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ n
+ t-completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (0 : 15)
+ at-point$ (1 : 18)
+
+
+After adding character -1:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+
+
+
+
+After adding character p:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+
+
+After adding character r:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ r$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ r$ (2 : 1)
+
+
+After adding character e:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ re$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ etion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ re$ (2 : 1)
+
+
+After adding character v:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ rev$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ v$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ rev$ (2 : 1)
+ v$ (2 : 3)
+
+
+After adding character i:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revi$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vi$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revi$ (2 : 1)
+ vi$ (2 : 3)
+
+
+After adding character o:
+root
+ i
+ on
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revio$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vio$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revio$ (2 : 1)
+ vio$ (2 : 3)
+
+
+After adding character u:
+root
+ i
+ o
+ u$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ u$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ reviou$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ viou$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ reviou$ (2 : 1)
+ viou$ (2 : 3)
+ u$ (2 : 6)
+
+
+After adding character s:
+root
+ i
+ o
+ us$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s$ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious$ (2 : 1)
+ vious$ (2 : 3)
+ us$ (2 : 6)
+
+
+After adding character -:
+root
+ i
+ o
+ us-$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-$ (2 : 1)
+ vious-$ (2 : 3)
+ us-$ (2 : 6)
+
+
+After adding character c:
+root
+ i
+ o
+ us-c$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-c$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-c$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-c$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -c$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-c$ (2 : 1)
+ vious-c$ (2 : 3)
+ us-c$ (2 : 6)
+
+
+After adding character o:
+root
+ i
+ o
+ us-co$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-co$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-co$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-co$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -co$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-co$ (2 : 1)
+ vious-co$ (2 : 3)
+ us-co$ (2 : 6)
+
+
+After adding character m:
+root
+ i
+ o
+ us-com$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-com$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-com$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-com$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -com$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-com$ (2 : 1)
+ vious-com$ (2 : 3)
+ us-com$ (2 : 6)
+
+
+After adding character p:
+root
+ i
+ o
+ us-comp$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-comp$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-comp$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-comp$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -comp$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-comp$ (2 : 1)
+ vious-comp$ (2 : 3)
+ us-comp$ (2 : 6)
+
+
+After adding character l:
+root
+ i
+ o
+ us-compl$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-compl$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-compl$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-compl$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -compl$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-compl$ (2 : 1)
+ vious-compl$ (2 : 3)
+ us-compl$ (2 : 6)
+
+
+After adding character e:
+root
+ i
+ o
+ us-comple$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-comple$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-comple$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-comple$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -comple$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-comple$ (2 : 1)
+ vious-comple$ (2 : 3)
+ us-comple$ (2 : 6)
+
+
+After adding character t:
+root
+ i
+ o
+ us-complet$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-complet$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-complet$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-complet$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -complet$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-complet$ (2 : 1)
+ vious-complet$ (2 : 3)
+ us-complet$ (2 : 6)
+
+
+After adding character i:
+root
+ i
+ o
+ us-completi$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-completi$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-completi$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-completi$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -completi$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completi$ (2 : 1)
+ vious-completi$ (2 : 3)
+ us-completi$ (2 : 6)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completio$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-completio$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-completio$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-completio$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -completio$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completio$ (2 : 1)
+ vious-completio$ (2 : 3)
+ us-completio$ (2 : 6)
+
+
+After adding character n:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character -1:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+
+
+After adding character c:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character m:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character p:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character l:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character t:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character i:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character n:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+
+
+After adding character f:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ f$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ f$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ f$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ f$ (3 : 10)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ f$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ f$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ f$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -
+ f$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ f$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ f$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ f$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ f$ (3 : 11)
+
+
+After adding character l:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ fl$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ fl$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ fl$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ fl$ (3 : 10)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ fl$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ fl$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ fl$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -
+ fl$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ fl$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ fl$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ fl$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ fl$ (3 : 11)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ fle$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ fle$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ fle$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ fle$ (3 : 10)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ fle$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ fle$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ fle$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ letion
+ -
+ fle$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ fle$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ fle$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ fle$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ fle$ (3 : 11)
+
+
+After adding character x:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex$ (3 : 10)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x$ (3 : 12)
+ tion
+ -
+ flex$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex$ (3 : 11)
+ x$ (3 : 14)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex-$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex-$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex-$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex-$ (3 : 10)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex-$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex-$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex-$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x-$ (3 : 12)
+ tion
+ -
+ flex-$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex-$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex-$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex-$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-$ (3 : 11)
+ x-$ (3 : 14)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--$ (3 : 10)
+ -$ (3 : 15)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--$ (3 : 12)
+ tion
+ -
+ flex--$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--$ (3 : 11)
+ x--$ (3 : 14)
+
+
+After adding character m:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--m$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--m$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--m$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--m$ (3 : 10)
+ -m$ (3 : 15)
+ m$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--m$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--m$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--m$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--m$ (3 : 12)
+ tion
+ -
+ flex--m$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--m$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--m$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--m$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--m$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--m$ (3 : 11)
+ x--m$ (3 : 14)
+
+
+After adding character a:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--ma$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--ma$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--ma$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--ma$ (3 : 10)
+ -ma$ (3 : 15)
+ ma$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--ma$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--ma$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--ma$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--ma$ (3 : 12)
+ tion
+ -
+ flex--ma$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--ma$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--ma$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--ma$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--ma$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ at-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--ma$ (3 : 11)
+ x--ma$ (3 : 14)
+
+
+After adding character k:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--mak$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--mak$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--mak$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--mak$ (3 : 10)
+ -mak$ (3 : 15)
+ mak$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--mak$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--mak$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ak$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--mak$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--mak$ (3 : 12)
+ tion
+ -
+ flex--mak$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--mak$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--mak$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--mak$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--mak$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ k$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--mak$ (3 : 11)
+ x--mak$ (3 : 14)
+ k$ (3 : 19)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make$ (3 : 10)
+ -make$ (3 : 15)
+ make$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make$ (3 : 12)
+ tion
+ -
+ flex--make$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make$ (3 : 13)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make$ (3 : 11)
+ x--make$ (3 : 14)
+ ke$ (3 : 19)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make-$ (3 : 10)
+ -make-$ (3 : 15)
+ make-$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make-$ (3 : 12)
+ tion
+ -
+ flex--make-$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make-$ (3 : 13)
+ -$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make-$ (3 : 11)
+ x--make-$ (3 : 14)
+ ke-$ (3 : 19)
+
+
+After adding character f:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-f$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-f$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-f$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make-f$ (3 : 10)
+ -make-f$ (3 : 15)
+ make-f$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-f$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-f$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-f$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-f$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make-f$ (3 : 12)
+ tion
+ -
+ flex--make-f$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-f$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make-f$ (3 : 13)
+ -f$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-f$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-f$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-f$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make-f$ (3 : 11)
+ x--make-f$ (3 : 14)
+ ke-f$ (3 : 19)
+
+
+After adding character l:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-fl$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-fl$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-fl$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make-fl$ (3 : 10)
+ -make-fl$ (3 : 15)
+ make-fl$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-fl$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-fl$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-fl$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-fl$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make-fl$ (3 : 12)
+ tion
+ -
+ flex--make-fl$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-fl$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make-fl$ (3 : 13)
+ -fl$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-fl$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-fl$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-fl$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make-fl$ (3 : 11)
+ x--make-fl$ (3 : 14)
+ ke-fl$ (3 : 19)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-fle$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-fle$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-fle$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make-fle$ (3 : 10)
+ -make-fle$ (3 : 15)
+ make-fle$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-fle$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-fle$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-fle$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-fle$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make-fle$ (3 : 12)
+ tion
+ -
+ flex--make-fle$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-fle$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make-fle$ (3 : 13)
+ -fle$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-fle$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-fle$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-fle$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make-fle$ (3 : 11)
+ x--make-fle$ (3 : 14)
+ ke-fle$ (3 : 19)
+
+
+After adding character x:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make-flex$ (3 : 10)
+ -make-flex$ (3 : 15)
+ make-flex$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make-flex$ (3 : 12)
+ tion
+ -
+ flex--make-flex$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make-flex$ (3 : 13)
+ -flex$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make-flex$ (3 : 11)
+ x--make-flex$ (3 : 14)
+ ke-flex$ (3 : 19)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex--make-flex-$ (3 : 10)
+ -make-flex-$ (3 : 15)
+ make-flex-$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x--make-flex-$ (3 : 12)
+ tion
+ -
+ flex--make-flex-$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x--make-flex-$ (3 : 13)
+ -flex-$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex--make-flex-$ (3 : 11)
+ x--make-flex-$ (3 : 14)
+ ke-flex-$ (3 : 19)
+
+
+After adding character p:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-p$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-p$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-p$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ point$ (1 : 20)
+ flex-
+ p$ (3 : 21)
+ -make-flex-p$ (3 : 10)
+ -make-flex-p$ (3 : 15)
+ make-flex-p$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-p$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-p$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-p$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-p$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ le
+ x-
+ p$ (3 : 23)
+ -make-flex-p$ (3 : 12)
+ tion
+ -
+ flex--make-flex-p$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-p$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ p$ (3 : 24)
+ -make-flex-p$ (3 : 13)
+ -flex-p$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-p$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-p$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-p$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ p$ (3 : 22)
+ -make-flex-p$ (3 : 11)
+ x-
+ p$ (3 : 25)
+ -make-flex-p$ (3 : 14)
+ ke-flex-p$ (3 : 19)
+
+
+After adding character a:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pa$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pa$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pa$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ a$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pa$ (3 : 21)
+ -make-flex-pa$ (3 : 10)
+ -make-flex-pa$ (3 : 15)
+ make-flex-pa$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pa$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pa$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pa$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pa$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ a$ (3 : 27)
+ le
+ x-
+ pa$ (3 : 23)
+ -make-flex-pa$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pa$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pa$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pa$ (3 : 24)
+ -make-flex-pa$ (3 : 13)
+ -flex-pa$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pa$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pa$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pa$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pa$ (3 : 22)
+ -make-flex-pa$ (3 : 11)
+ x-
+ pa$ (3 : 25)
+ -make-flex-pa$ (3 : 14)
+ ke-flex-pa$ (3 : 19)
+
+
+After adding character t:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pat$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pat$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pat$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ at$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pat$ (3 : 21)
+ -make-flex-pat$ (3 : 10)
+ -make-flex-pat$ (3 : 15)
+ make-flex-pat$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pat$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pat$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pat$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pat$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ at$ (3 : 27)
+ le
+ x-
+ pat$ (3 : 23)
+ -make-flex-pat$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pat$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pat$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pat$ (3 : 24)
+ -make-flex-pat$ (3 : 13)
+ -flex-pat$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pat$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pat$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pat$ (3 : 18)
+ t-point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pat$ (3 : 22)
+ -make-flex-pat$ (3 : 11)
+ x-
+ pat$ (3 : 25)
+ -make-flex-pat$ (3 : 14)
+ ke-flex-pat$ (3 : 19)
+
+
+After adding character t:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-patt$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-patt$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-patt$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ att$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ patt$ (3 : 21)
+ -make-flex-patt$ (3 : 10)
+ -make-flex-patt$ (3 : 15)
+ make-flex-patt$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-patt$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-patt$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-patt$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-patt$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ att$ (3 : 27)
+ le
+ x-
+ patt$ (3 : 23)
+ -make-flex-patt$ (3 : 12)
+ tion
+ -
+ flex--make-flex-patt$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-patt$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ patt$ (3 : 24)
+ -make-flex-patt$ (3 : 13)
+ -flex-patt$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-patt$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ t$ (3 : 29)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-patt$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-patt$ (3 : 18)
+ t
+ t$ (3 : 28)
+ -point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ patt$ (3 : 22)
+ -make-flex-patt$ (3 : 11)
+ x-
+ patt$ (3 : 25)
+ -make-flex-patt$ (3 : 14)
+ ke-flex-patt$ (3 : 19)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-patte$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-patte$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-patte$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ atte$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ patte$ (3 : 21)
+ -make-flex-patte$ (3 : 10)
+ -make-flex-patte$ (3 : 15)
+ make-flex-patte$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-patte$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-patte$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-patte$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-patte$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ atte$ (3 : 27)
+ le
+ x-
+ patte$ (3 : 23)
+ -make-flex-patte$ (3 : 12)
+ tion
+ -
+ flex--make-flex-patte$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-patte$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ patte$ (3 : 24)
+ -make-flex-patte$ (3 : 13)
+ -flex-patte$ (3 : 20)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-patte$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ te$ (3 : 29)
+ e$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-patte$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-patte$ (3 : 18)
+ t
+ te$ (3 : 28)
+ -point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ patte$ (3 : 22)
+ -make-flex-patte$ (3 : 11)
+ x-
+ patte$ (3 : 25)
+ -make-flex-patte$ (3 : 14)
+ ke-flex-patte$ (3 : 19)
+
+
+After adding character r:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-patter$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-patter$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-patter$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ atter$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ patter$ (3 : 21)
+ -make-flex-patter$ (3 : 10)
+ -make-flex-patter$ (3 : 15)
+ make-flex-patter$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-patter$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-patter$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-patter$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-patter$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ atter$ (3 : 27)
+ le
+ x-
+ patter$ (3 : 23)
+ -make-flex-patter$ (3 : 12)
+ tion
+ -
+ flex--make-flex-patter$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-patter$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ patter$ (3 : 24)
+ -make-flex-patter$ (3 : 13)
+ -flex-patter$ (3 : 20)
+ r$ (3 : 31)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-patter$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ ter$ (3 : 29)
+ er$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-patter$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-patter$ (3 : 18)
+ t
+ ter$ (3 : 28)
+ -point$ (1 : 18)
+ revious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ patter$ (3 : 22)
+ -make-flex-patter$ (3 : 11)
+ x-
+ patter$ (3 : 25)
+ -make-flex-patter$ (3 : 14)
+ ke-flex-patter$ (3 : 19)
+
+
+After adding character n:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ le
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character -1:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ le
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ le
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character l:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ le
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ l$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character d:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ d$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ld$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do-completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ do$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldo$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character c:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c$ (4 : 3)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ com
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-$ (4 : 3)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ c
+ -$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character r:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-r$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-r$ (4 : 3)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ r$ (4 : 5)
+ c
+ -r$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-r$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-r$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-re$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-re$ (4 : 3)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ re$ (4 : 5)
+ c
+ -re$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-re$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-re$ (4 : 0)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ evious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character m:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-rem$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-rem$ (4 : 3)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ rem$ (4 : 5)
+ c
+ -rem$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-rem$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-rem$ (4 : 0)
+ m$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ m$ (4 : 6)
+ vious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remo$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remo$ (4 : 3)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remo$ (4 : 5)
+ c
+ -remo$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ o$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remo$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remo$ (4 : 0)
+ mo$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ mo$ (4 : 6)
+ vious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character v:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remov$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remov$ (4 : 3)
+ v$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remov$ (4 : 5)
+ c
+ -remov$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ov$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remov$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remov$ (4 : 0)
+ mov$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ mov$ (4 : 6)
+ vious-completion$ (2 : 1)
+ vious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove$ (4 : 3)
+ ve$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove$ (4 : 5)
+ c
+ -remove$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove$ (4 : 0)
+ move$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-$ (4 : 3)
+ ve-$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-$ (4 : 5)
+ c
+ -remove-$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove-$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-$ (4 : 0)
+ move-$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move-$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character c:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-c$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-c$ (4 : 3)
+ ve-c$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-c$ (4 : 5)
+ c
+ -remove-c$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove-c$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-c$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ c$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-c$ (4 : 0)
+ move-c$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move-c$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-c$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-co$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-co$ (4 : 3)
+ ve-co$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-co$ (4 : 5)
+ c
+ -remove-co$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove-co$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-co$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ co$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-co$ (4 : 0)
+ move-co$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move-co$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-co$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character m:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-com$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-com$ (4 : 3)
+ ve-com$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ completion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-com$ (4 : 5)
+ c
+ -remove-com$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove-com$ (4 : 8)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-com$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ com$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-com$ (4 : 0)
+ move-com$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move-com$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-com$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character m:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-comm$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ m$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-comm$ (4 : 3)
+ ve-comm$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ m$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-comm$ (4 : 5)
+ c
+ -remove-comm$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ m$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove-comm$ (4 : 8)
+ m$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-comm$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ comm$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-comm$ (4 : 0)
+ move-comm$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move-comm$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-comm$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character a:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-comma$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ ma$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-comma$ (4 : 3)
+ ve-comma$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ ma$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-comma$ (4 : 5)
+ c
+ -remove-comma$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ ma$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ ake-flex-pattern$ (3 : 17)
+ ove-comma$ (4 : 8)
+ ma$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-comma$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ comma$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-comma$ (4 : 0)
+ move-comma$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ r
+ n$ (3 : 32)
+ e
+ move-comma$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-comma$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character n:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-comman$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ man$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-comman$ (4 : 3)
+ ve-comman$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ man$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-comman$ (4 : 5)
+ c
+ -remove-comman$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ man$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ n$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-comman$ (4 : 8)
+ man$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-comman$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ comman$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-comman$ (4 : 0)
+ move-comman$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ n$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-comman$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-comman$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character d:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ do
+ c-remove-command$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command$ (4 : 3)
+ ve-command$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command$ (4 : 5)
+ c
+ -remove-command$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command$ (4 : 8)
+ mand$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command$ (4 : 0)
+ move-command$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character -:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -$ (4 : 19)
+ o
+ c-remove-command-$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-$ (4 : 3)
+ ve-command-$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-$ (4 : 5)
+ c
+ -remove-command-$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-$ (4 : 8)
+ mand-$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-$ (4 : 0)
+ move-command-$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character c:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -c$ (4 : 19)
+ o
+ c-remove-command-c$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-c$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-c$ (4 : 3)
+ ve-command-c$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-c$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-c$ (4 : 5)
+ c
+ -remove-command-c$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-c$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-c$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-c$ (4 : 8)
+ mand-c$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-c$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-c$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-c$ (4 : 0)
+ move-command-c$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-c$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-c$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-c$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-c$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -co$ (4 : 19)
+ o
+ c-remove-command-co$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-co$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-co$ (4 : 3)
+ ve-command-co$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-co$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-co$ (4 : 5)
+ c
+ -remove-command-co$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-co$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-co$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-co$ (4 : 8)
+ mand-co$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-co$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-co$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-co$ (4 : 0)
+ move-command-co$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-co$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-co$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-co$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-co$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character m:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -com$ (4 : 19)
+ o
+ c-remove-command-com$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-com$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-com$ (4 : 3)
+ ve-command-com$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-com$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-com$ (4 : 5)
+ c
+ -remove-command-com$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-com$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-com$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-com$ (4 : 8)
+ mand-com$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-com$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-com$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-com$ (4 : 0)
+ move-command-com$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-com$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-com$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-com$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-com$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character p:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -comp$ (4 : 19)
+ o
+ c-remove-command-comp$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-comp$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-comp$ (4 : 3)
+ ve-command-comp$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-comp$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-comp$ (4 : 5)
+ c
+ -remove-command-comp$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-comp$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-comp$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-comp$ (4 : 8)
+ mand-comp$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-comp$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-comp$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-comp$ (4 : 0)
+ move-command-comp$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-comp$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-comp$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-comp$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-comp$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character l:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -compl$ (4 : 19)
+ o
+ c-remove-command-compl$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-compl$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-compl$ (4 : 3)
+ ve-command-compl$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-compl$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-compl$ (4 : 5)
+ c
+ -remove-command-compl$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-compl$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-compl$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-compl$ (4 : 8)
+ mand-compl$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-compl$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-compl$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-compl$ (4 : 0)
+ move-command-compl$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-compl$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-compl$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-compl$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-compl$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character e:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -comple$ (4 : 19)
+ o
+ c-remove-command-comple$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-comple$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-comple$ (4 : 3)
+ ve-command-comple$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-comple$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-comple$ (4 : 5)
+ c
+ -remove-command-comple$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-comple$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-comple$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-comple$ (4 : 8)
+ mand-comple$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-comple$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-comple$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-comple$ (4 : 0)
+ move-command-comple$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-comple$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-comple$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-comple$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-comple$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character t:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -complet$ (4 : 19)
+ o
+ c-remove-command-complet$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-complet$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-complet$ (4 : 3)
+ ve-command-complet$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-complet$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-complet$ (4 : 5)
+ c
+ -remove-command-complet$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-complet$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-complet$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-complet$ (4 : 8)
+ mand-complet$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-complet$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-complet$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-complet$ (4 : 0)
+ move-command-complet$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-complet$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-complet$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-complet$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-complet$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character i:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -completi$ (4 : 19)
+ o
+ c-remove-command-completi$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-completi$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-completi$ (4 : 3)
+ ve-command-completi$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-completi$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-completi$ (4 : 5)
+ c
+ -remove-command-completi$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-completi$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-completi$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-completi$ (4 : 8)
+ mand-completi$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-completi$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-completi$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-completi$ (4 : 0)
+ move-command-completi$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-completi$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-completi$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-completi$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-completi$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character o:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -completio$ (4 : 19)
+ o
+ c-remove-command-completio$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-completio$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-completio$ (4 : 3)
+ ve-command-completio$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-completio$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-completio$ (4 : 5)
+ c
+ -remove-command-completio$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-completio$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-completio$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-completio$ (4 : 8)
+ mand-completio$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-completio$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-completio$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-completio$ (4 : 0)
+ move-command-completio$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-completio$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-completio$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-completio$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-completio$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character n:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -completion$ (4 : 19)
+ o
+ c-remove-command-completion$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-completion$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-completion$ (4 : 3)
+ ve-command-completion$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-completion$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-completion$ (4 : 5)
+ c
+ -remove-command-completion$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-completion$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-completion$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-completion$ (4 : 8)
+ mand-completion$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-completion$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-completion$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-completion$ (4 : 0)
+ move-command-completion$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-completion$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-completion$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-completion$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-completion$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character s:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -completions$ (4 : 19)
+ o
+ c-remove-command-completions$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-completions$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-completions$ (4 : 3)
+ ve-command-completions$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-completions$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-completions$ (4 : 5)
+ c
+ -remove-command-completions$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-completions$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-completions$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-completions$ (4 : 8)
+ mand-completions$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-completions$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-completions$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-completions$ (4 : 0)
+ move-command-completions$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-completions$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-completions$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-completions$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-completions$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+After adding character -1:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -completions$ (4 : 19)
+ o
+ c-remove-command-completions$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-completions$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-completions$ (4 : 3)
+ ve-command-completions$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-completions$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (4 : 20)$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-completions$ (4 : 5)
+ c
+ -remove-command-completions$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-completions$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-completions$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-completions$ (4 : 8)
+ mand-completions$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-completions$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-completions$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-completions$ (4 : 0)
+ move-command-completions$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-completions$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-completions$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-completions$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-completions$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
+
+
+
+
diff --git a/suffix tree/lcs test ground.txt b/suffix tree/lcs test ground.txt
new file mode 100644
index 0000000..5762268
--- /dev/null
+++ b/suffix tree/lcs test ground.txt
@@ -0,0 +1,180 @@
+
+longest commons substring of ("abab" "baba") is:
+(3
+ ((0 2 3
+ ((0 1 2)
+ (0 0 1)))
+ (0 3 4
+ ((0 2 3)
+ (0 1 2)))))
+
+Generalized suffix tree for: ido-completions, comint-completion-at-point, previous-completion, completion-flex--make-flex-pattern, eldoc-remove-command-completions:
+root
+ i
+ o
+ us-completion$ (2 : 4)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 7)
+ at-point$ (1 : 14)
+ s$ (0 : 11)
+ $ (2 : 16)
+ do-completions$ (0 : 0)
+ nt
+ $ (1 : 23)
+ -completion-at-point$ (1 : 3)
+ d
+ -completions$ (4 : 19)
+ o
+ c-remove-command-completions$ (4 : 2)
+ -completions$ (0 : 1)
+ o
+ m
+ int-completion-at-point$ (1 : 1)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 1)
+ at-point$ (1 : 8)
+ s$ (0 : 5)
+ $ (2 : 10)
+ mand-completions$ (4 : 14)
+ -completions$ (0 : 2)
+ n
+ -
+ flex--make-flex-pattern$ (3 : 8)
+ at-point$ (1 : 15)
+ s$ (0 : 12)
+ $ (2 : 17)
+ int$ (1 : 22)
+ us-completion$ (2 : 5)
+ c-remove-command-completions$ (4 : 3)
+ ve-command-completions$ (4 : 9)
+ -
+ at-point$ (1 : 17)
+ com
+ mand-completions$ (4 : 12)
+ pletion
+ -at-point$ (1 : 6)
+ s$ (4 : 20)$ (0 : 3)
+ $ (2 : 8)
+ p
+ attern$ (3 : 26)
+ oint$ (1 : 20)
+ flex-
+ pattern$ (3 : 21)
+ -make-flex-pattern$ (3 : 10)
+ -make-flex-pattern$ (3 : 15)
+ make-flex-pattern$ (3 : 16)
+ remove-command-completions$ (4 : 5)
+ c
+ -remove-command-completions$ (4 : 4)
+ om
+ int-completion-at-point$ (1 : 0)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 0)
+ at-point$ (1 : 7)
+ s$ (0 : 4)
+ $ (2 : 9)
+ mand-completions$ (4 : 13)
+ m
+ int-completion-at-point$ (1 : 2)
+ pletion
+ -
+ flex--make-flex-pattern$ (3 : 2)
+ at-point$ (1 : 9)
+ s$ (0 : 6)
+ $ (2 : 11)
+ a
+ nd-completions$ (4 : 16)
+ ke-flex-pattern$ (3 : 17)
+ ove-command-completions$ (4 : 8)
+ mand-completions$ (4 : 15)
+ p
+ oint$ (1 : 21)
+ letion
+ -
+ flex--make-flex-pattern$ (3 : 3)
+ at-point$ (1 : 10)
+ s$ (0 : 7)
+ $ (2 : 12)
+ revious-completion$ (2 : 0)
+ attern$ (3 : 27)
+ l
+ doc-remove-command-completions$ (4 : 1)
+ e
+ x-
+ pattern$ (3 : 23)
+ -make-flex-pattern$ (3 : 12)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 4)
+ at-point$ (1 : 11)
+ s$ (0 : 8)
+ $ (2 : 13)
+ e
+ vious-completion$ (2 : 2)
+ tion
+ -
+ flex--make-flex-pattern$ (3 : 5)
+ at-point$ (1 : 12)
+ s$ (0 : 9)
+ $ (2 : 14)
+ x-
+ pattern$ (3 : 24)
+ -make-flex-pattern$ (3 : 13)
+ -
+ command-completions$ (4 : 11)
+ flex-pattern$ (3 : 20)
+ rn$ (3 : 31)
+ ldoc-remove-command-completions$ (4 : 0)
+ move-command-completions$ (4 : 7)
+ t
+ -
+ point$ (1 : 19)
+ completion-at-point$ (1 : 5)
+ ion
+ -
+ flex--make-flex-pattern$ (3 : 6)
+ at-point$ (1 : 13)
+ s$ (0 : 10)
+ $ (2 : 15)
+ $ (1 : 25)
+ tern$ (3 : 29)
+ ern$ (3 : 30)
+ n
+ t
+ $ (1 : 24)
+ -completion-at-point$ (1 : 4)
+ s$ (0 : 13)
+ -
+ flex--make-flex-pattern$ (3 : 9)
+ at-point$ (1 : 16)
+ $ (3 : 33)$ (2 : 18)
+ d-completions$ (4 : 18)
+ s
+ -completion$ (2 : 7)
+ $ (0 : 14)
+ $ (2 : 19)$ (1 : 26)$ (0 : 15)
+ a
+ ke-flex-pattern$ (3 : 18)
+ t
+ tern$ (3 : 28)
+ -point$ (1 : 18)
+ nd-completions$ (4 : 17)
+ r
+ n$ (3 : 32)
+ e
+ move-command-completions$ (4 : 6)
+ vious-completion$ (2 : 1)
+ v
+ e-command-completions$ (4 : 10)
+ ious-completion$ (2 : 3)
+ us-completion$ (2 : 6)
+ flex-
+ pattern$ (3 : 22)
+ -make-flex-pattern$ (3 : 11)
+ x-
+ pattern$ (3 : 25)
+ -make-flex-pattern$ (3 : 14)
+ ke-flex-pattern$ (3 : 19)
diff --git a/suffix tree/suffiex-tree.txt b/suffix tree/suffiex-tree.txt
new file mode 100644
index 0000000..6eb4b5a
--- /dev/null
+++ b/suffix tree/suffiex-tree.txt
@@ -0,0 +1,168 @@
+Title: Suffix Trees
+Author: JSDurand
+Created: 2020-01-03
+-------------------
+
+======================================================================
+ Motivation to implement this algorithm in Emacs
+======================================================================
+
+The reason I want to implement this algorithm is a problem I
+encountered in using the package "orderless", which provides a
+completion-style for the built-in completion system in Emacs. The
+problem is that the function "orderless-try-completion" does not
+handle completion aggressively in a way that conforms to the
+documentation of "try-completion". To be more precise, if there is
+only one match for the current text input, then this function returns
+that match (rather than comforming to the requirement in the
+documentation of "try-completion" by returning t, since it wants to
+highlight the matches by itself). This isn't a problem from the
+perspective of the user, and if there are no matches, then this
+correctly returns nil. But in any other cases, this function returns
+the original string, instead of the longest common substring, as a
+user might desire.
+
+Initially, this does not seem like a serious concern: the user could
+still select a completion from the "*Completions*" buffer once the
+list of candidates becomes small enough to easily manage. But as time
+goes by, this starts to frustrate me. For example, when there are only
+two candidates left, but one is a substring of another, then I cannot
+use the completion feature to quickly select (or "complete to") the
+shorter candidate, unless I type out the full candidate string, or to
+choose from the "*Completions*" buffer. For me this kind of defeats
+the main purpose of the built-in completion system.
+
+So I start wondering, is it possible to fix the problem by finding the
+longest common substring in all the matches? From a naïve first
+impression, this seems to be what the user might expect in most cases.
+
+
+
+======================================================================
+ Choice of the algorithm
+======================================================================
+
+After some thinking and searching through the internet, I found that
+perhaps the most flexible and performant solution to the problem of
+finding the longest common substring(s) of multiple strings is to
+build a "generalized suffix tree" of them, and then use a tree
+traversal to find the longest common substring(s). Well, this is all
+fun and great. The only problem is that it is difficult to build a
+suffix tree (or a generalized one).
+
+So I decide to implement the seemingly fastest algorithm to construct
+a suffix tree of strings and hope that this can not only solve my
+problem but also help others out in some other problems in the future.
+
+
+
+======================================================================
+ Definitions
+======================================================================
+
+I describe the basic definition of a suffix tree briefly below.
+
+In this document a string is a sequence of alphabets. In particular,
+for the case of Emacs, these alphabets are just numbers. We begin by
+considering a string S of length n. A suffix of S is a substring of S
+of the form S[i..n] for some i from 1 to n. And we also say the empty
+string is a suffix of S. A suffix tree of S is defined as a rooted
+tree T (so it has a node called "root" that is the ancestor of every
+other node) whose every edge has a label which is a substring of S
+that satisfies the following conditions:
+
+- Starting from the root of T, walking down any path to a leaf, and
+ concatenating the labels along the way, then we will get a suffix of
+ S. And every suffix of S is obtained in this way as well.
+- Every node has at least two out-going edges.
+- For every node, every two out-going edges cannot have labels that
+ start with the same letter. (So two edges with labels both starting
+ with 'a' cannot emanate from the same node.)
+
+Intuitively speaking, this is to list all suffixes of S as an edge
+from the root to a leaf, and then "merge" these suffixes so that any
+common prefix among some of them is in only one edge.
+
+As a concrete example, the suffix tree for "hah$" is given as follows.
+I am using the library "hierarchy.el" to visualize trees.
+
+root
+ h
+ $
+ ah$
+ ah$
+ $
+
+
+
+
+======================================================================
+ Naive description of the algorithm
+======================================================================
+
+Below is a breif description of the algorithm. For a description in
+"plain English", see the accepted answer to this Stack Overflow post.
+
+https://stackoverflow.com/questions/9452701/
+
+Fonr a more detailed survey on the principle behind the algorithm and
+on many other related topics, see the book "Algorithms on Strings,
+Trees, and Sequences: Computer Science and Computational Biology" by
+Dan Gusfield, or if you prefer reading the original paper, then the
+original paper by Ukkonen is as follows.
+
+https://link.springer.com/article/10.1007/BF01206331
+
+(I am fortunate enough to be able to access the article. If you want
+to read that PDF and don't want to pay Springer, let me know and I can
+send you the file.)
+
+Given a string S of length n, we will first append a symbol that is
+not present anywhere in S, in order to ensure that no suffix of S is
+also the prefix of another suffix of S; otherwise S cannot have a
+suffix tree. I refer to this terminating symbol as $.
+
+Also an edge of the tree is not labelled explicitly by strings. To do
+so would violate already the linear time constraint. Instead, we
+represent each edge with a pair of integers, interpreted as the
+indices of the starting and the ending positions of the associated
+substring in T.
+
+The algorithm has n + 1 iterations. We start with the following
+variables:
+
+- A root node.
+- An active node.
+- An active edge.
+- The length of the active edge.
+- "remainder" with value 0.
+
+Then we want to add n + 1 symbols to the tree iteratively.
+
+In the i-th iteration we look to add the substring
+S[(i-remainder+1)..i] of S. In Emacs Lisp this is expressed as
+(substring S (- i remainder -1) (1+ i)).
+
+And in each iteration we do the following things (the description that
+follows is not rigorous; see the sources mentioned above for more
+detailed and rigorous expositions):
+
+- Check if the "active point" specified by the triple
+ (active node, active edge, active edge length)
+ has an edge going out whose first letter of the label matches the
+ i-th character of S.
+- If it matches, then that means we don't have to add anything to
+ the tree: we just update the specifications of the active point to
+ point to the right place.
+- Otherwise, we add the i-th charcter of S as a new leaf of the
+ active point. This may involve splitting an edge.
+- In both of the sub-cases, if there is a node that we created in
+ the last round, then we add a "suffix link" that points to the
+ current node. This suffix link is the main reason this algorithm
+ can run in linear time.
+- After updating the active point, we still need to make sure that our
+ specification of the active point is valid. We do this by examining
+ if the active length is >= the length of the active edge. If so,
+ then we set the active point to follow the path.
+
+Then we repeat until S(i) equals the terminating symbol.
diff --git a/suffix tree/suffix tree test ground.txt b/suffix tree/suffix tree test ground.txt
new file mode 100644
index 0000000..e566bf7
--- /dev/null
+++ b/suffix tree/suffix tree test ground.txt
@@ -0,0 +1,145 @@
+suffix tree for "aabbccba$"
+root
+ a
+ bbccba$
+ abbccba$
+ $
+ b
+ ccba$
+ bccba$
+ a$
+ c
+ ba$
+ cba$
+ $
+
+
+
+suffix tree for "durand-bongo-play-previous-or-last"
+root
+ d
+ -bongo-play-previous-or-last
+ urand-bongo-play-previous-or-last
+ u
+ s-or-last
+ rand-bongo-play-previous-or-last
+ r
+ evious-or-last
+ and-bongo-play-previous-or-last
+ -last
+ a
+ y-previous-or-last
+ nd-bongo-play-previous-or-last
+ st
+ n
+ go-play-previous-or-last
+ d-bongo-play-previous-or-last
+ -
+ p
+ revious-or-last
+ lay-previous-or-last
+ bongo-play-previous-or-last
+ or-last
+ last
+ bongo-play-previous-or-last
+ o
+ -play-previous-or-last
+ ngo-play-previous-or-last
+ us-or-last
+ r-last
+ go-play-previous-or-last
+ p
+ revious-or-last
+ lay-previous-or-last
+ la
+ st
+ y-previous-or-last
+ y-previous-or-last
+ evious-or-last
+ vious-or-last
+ ious-or-last
+ s
+ t
+ -or-last
+ t
+
+
+
+suffix tree for strings: aaaaa$
+root
+ a
+ $
+ a
+ $
+ a
+ $
+ a
+ $
+ a$
+ $
+
+
+
+suffix tree for strings: aaaaabbb$
+root
+ a
+ bbb$
+ a
+ bbb$
+ a
+ bbb$
+ a
+ bbb$
+ abbb$
+ b
+ $
+ b
+ $
+ b$
+ $
+
+
+
+Generalized suffix tree for: abab, baba:
+root
+ a
+ $ (1 : 3)
+ b
+ $ (0 : 2)
+ a
+ $ (1 : 1)
+ b$ (0 : 0)
+ b
+ $ (0 : 3)
+ a
+ $ (1 : 2)
+ b
+ a$ (1 : 0)
+ $ (0 : 1)
+ $ (1 : 4)$ (0 : 4)
+
+
+
+Generalized suffix tree for: abab, baba, cbabd:
+root
+ a
+ $ (1 : 3)
+ b
+ $ (0 : 2)
+ a
+ $ (1 : 1)
+ b$ (0 : 0)
+ d$ (2 : 2)
+ b
+ $ (0 : 3)
+ a
+ $ (1 : 2)
+ b
+ a$ (1 : 0)
+ $ (0 : 1)
+ d$ (2 : 1)
+ d$ (2 : 3)
+ $ (2 : 5)$ (1 : 4)$ (0 : 4)
+ cbabd$ (2 : 0)
+ d$ (2 : 4)
+
diff --git a/suffix tree/suffix-tree files.zip b/suffix tree/suffix-tree files.zip
new file mode 100644
index 0000000..946352b
--- /dev/null
+++ b/suffix tree/suffix-tree files.zip
Binary files differ
diff --git a/suffix tree/suffix-tree.el b/suffix tree/suffix-tree.el
new file mode 100644
index 0000000..0d929d0
--- /dev/null
+++ b/suffix tree/suffix-tree.el
@@ -0,0 +1,397 @@
+;;; suffiex-tree.el --- Ukkonen algorithm for building a suffix tree -*- lexical-binding: t; -*-
+
+;;; Author: Durand
+;;; Version: 0.0.1
+
+;;; Commentary:
+
+;; Our node is represented as a list of the following elements:
+
+;; start , which is the starting index of the edge going from its parent
+;; node to this node
+;; end , the index of the end of the above edge
+;; suffix-link, the index of the node this node's suffix-link points to
+;; children , a hash-table of pairs of integers and indices of its
+;; children
+
+;; To compute the length of the edge going into NODE we use:
+;; (- (min end (1+ position)) start)
+;; which is actually how far the position is on that edge,
+;; if it is on that edge.
+
+;;; Code:
+
+;;;###autoload
+(defun st-min (&rest args)
+ "Return the minimum among ARGS.
+If an argument is 'infty, then it is considered greater than
+every number."
+ (apply #'min (delq nil
+ (mapcar
+ (lambda (arg)
+ (cond
+ ((number-or-marker-p arg) arg)
+ ((eq arg 'infty) nil)))
+ args))))
+
+;;;###autoload
+(defun st-edge-length (node position)
+ "Return the length of the edge into NODE.
+See the comment above this function for the reason
+POSITION is here."
+ (- (st-min (car (cdr node)) (1+ position))
+ (car node)))
+
+;;;###autoload
+(defun st-new-node (tree last-added start &optional end)
+ "Make a new node with START and END as the coming edge.
+Then add the new node to TREE.
+LAST-ADDED is the number of elements already in the TREE."
+ (let* ((end (or end 'infty) ;; 'infty represents the index of a leaf
+ )
+ (suffix-link 0) ;; The suffix link is initially 0
+ (new-node
+ (list start end
+ suffix-link
+ (make-hash-table))))
+ (puthash (1+ last-added) new-node tree)
+ (1+ last-added)))
+
+;;;###autoload
+(defun st-add-suffix-link (tree need-sl node)
+ "If NEED-SL is positive, then add the suffix link.
+In particular, the node corresponding to NEED-SL in TREE
+gets a suffix link pointing to NODE.
+
+This always returns NODE."
+ (cond
+ ((and (> need-sl 1) (/= need-sl node))
+ (setcar (cdr (cdr (gethash need-sl tree))) node)))
+ node)
+
+;;;###autoload
+(defun st-canonize (tree node position active-edge-index active-length active-node)
+ "Walk down TREE to find the correct active point."
+ (let ((node-edge-length (st-edge-length (gethash node tree) position)))
+ (cond
+ ((>= active-length node-edge-length)
+ (list t
+ (+ active-edge-index
+ node-edge-length)
+ (- active-length
+ node-edge-length)
+ node))
+ (t
+ (list nil
+ active-edge-index
+ active-length
+ active-node)))))
+
+;;;###autoload
+(defun st-extend-tree (tree last-added position remain
+ active-node active-edge-index
+ active-length character str)
+ "Extend a tree by CHARACTER.
+The return value is
+(tree last-added remain active-node
+ active-edge-index active-length)"
+ (let* ((need-sl 0)
+ (remain (1+ remain))
+ continue-p breakp)
+ (while (and (not breakp) (> remain 0))
+ (setq continue-p nil breakp nil)
+ (cond
+ ((= active-length 0)
+ (setq active-edge-index position)))
+ (let* ((actual-node (gethash active-node tree))
+ (nxt (cond
+ (actual-node
+ (gethash (aref str active-edge-index)
+ (cadr (cdr (cdr actual-node))))))))
+ (cond
+ ((null nxt)
+ (let ((leaf (st-new-node tree last-added position)))
+ (setq last-added leaf)
+ (puthash (aref str active-edge-index)
+ leaf
+ (cadr (cdr (cdr (gethash active-node tree)))))
+ (setq need-sl (st-add-suffix-link tree need-sl active-node)))
+ ;; rule 2
+ )
+ (t
+ (let* ((result (st-canonize
+ tree nxt position active-edge-index
+ active-length active-node)))
+ (cond
+ ((car result)
+ ;; observation 2
+ (setq active-edge-index (cadr result))
+ (setq active-length (caddr result))
+ (setq active-node (cadr (cddr result)))
+ (setq continue-p t))
+ (t
+ (cond
+ ((eq (aref str (+ active-length
+ (car (gethash nxt tree))))
+ character)
+ ;; observation 1
+ (setq active-length (1+ active-length))
+ (setq need-sl (st-add-suffix-link tree need-sl active-node))
+ (setq breakp t)))
+ (cond
+ (breakp)
+ (t ;; splitting
+ (let ((split (st-new-node
+ tree last-added (car (gethash nxt tree))
+ (+ (car (gethash nxt tree)) active-length))))
+ (setq last-added split)
+ (puthash
+ (aref str active-edge-index)
+ split (cadr (cdr (cdr (gethash active-node tree)))))
+ (let ((leaf (st-new-node tree last-added position)))
+ (setq last-added leaf)
+ (puthash character leaf
+ (cadddr (gethash split tree)))
+ (setcar (gethash nxt tree)
+ (+ (car (gethash nxt tree))
+ active-length))
+ (puthash (aref str (car (gethash nxt tree))) nxt
+ (cadddr (gethash split tree)))
+ ;; rule 2
+ (setq need-sl
+ (st-add-suffix-link tree need-sl split)))))))))))
+ (cond
+ ((or continue-p breakp))
+ (t
+ (setq remain (1- remain))
+ (cond
+ ((and (eq active-node 1) ; root
+ (> active-length 0))
+ (setq active-length (1- active-length))
+ (setq active-edge-index
+ (1+ (- position remain))))
+ (t
+ (setq active-node
+ (let ((slink (caddr (gethash active-node tree))))
+ (cond
+ ((> slink 1) slink)
+ ; or root
+ (t 1))))))))))
+ (list tree last-added remain active-node
+ active-edge-index active-length)))
+
+;;;###autoload
+(defun st-build-for-str (str)
+ "Build the suffix tree for STR."
+ (let* ((position 0)
+ (character (ignore-error 'error (aref str position)))
+ (tree (make-hash-table))
+ (last-added 0)
+ (remain 0)
+ (active-node (st-new-node tree last-added -1 -1))
+ (active-edge-index 0)
+ (active-length 0)
+ result)
+ (setq last-added active-node)
+ (while character
+ (setq result (st-extend-tree tree last-added position remain
+ active-node active-edge-index
+ active-length character str))
+ (setq tree (pop result))
+ (setq last-added (pop result))
+ (setq remain (pop result))
+ (setq active-node (pop result))
+ (setq active-edge-index (pop result))
+ (setq active-length (pop result))
+ (setq position (1+ position))
+ (setq character (ignore-error 'error (aref str position))))
+ tree))
+
+;;; Some printing functions
+
+(require 'hierarchy)
+
+;;;###autoload
+(defun st-print-str (str)
+ "Print generalized string"
+ (mapc (lambda (char)
+ (cond ((characterp char) (insert char))
+ (t (insert ", "))))
+ str))
+
+;;;###autoload
+(defun st-print-tree-for-str (str)
+ "Print the suffix tree for STR."
+ (let* ((symbol (make-symbol "test")))
+ (set symbol (st-build-for-str str))
+ (insert "suffix tree for strings: ")
+ (st-print-str str)
+ (insert "\n")
+ (st-print-tree (symbol-value symbol) str)))
+
+;;;###autoload
+(defun st-reduce-index (node strs)
+ "Reduce the second element of the NODE."
+ (let* ((lengths (mapcar #'length strs))
+ (start (car node))
+ (end (cadr node))
+ (first-greater-than-start
+ (let ((sum -1) (index 0) done result)
+ (while (and (not done) (< index (length strs)))
+ (cond
+ ((<= (+ sum (nth index lengths)) start)
+ (setq index (1+ index))
+ (setq sum (+ sum (nth index lengths))))
+ (t (setq result (+ sum (nth index lengths)))
+ (setq done t))))
+ (cond ((null result) (setq result (1- (apply #'+ lengths)))))
+ result)))
+ (st-min end first-greater-than-start))
+ ;; (let* ((start (car node))
+ ;; (end (cadr node))
+ ;; (index start)
+ ;; result stop)
+ ;; (while (and (not stop) (or (eq end 'infty) (<= index end)))
+ ;; (cond
+ ;; ((and (< index (length str)) (characterp (aref str index))) (setq index (1+ index)))
+ ;; (t (setq stop t)
+ ;; (setq result index))))
+ ;; (cond ((and (numberp end) (= index (1+ end))) (setq result end)))
+ ;; (cond ((<= result start) (setq result 'end)))
+ ;; result)
+ )
+
+;; ;;;###autoload
+;; (defun st-build-generalized-tree (strs)
+;; (let* ((copy strs)
+;; (long-str
+;; (let ((index 1) result)
+;; (while (consp copy)
+;; (setq result (vconcat result
+;; (car copy)
+;; (vector (- index))))
+;; (setq index (1+ index))
+;; (setq copy (cdr copy)))
+;; result))
+;; (tree (make-symbol "tree")))
+;; (set tree (st-build-for-str long-str))))
+
+;;;###autoload
+(defun st-print-tree (tree str)
+ "Print TREE with the aid of STR."
+ (let* ((symbol-tree (make-symbol "test-tree")))
+ (set symbol-tree (hierarchy-new))
+ (maphash
+ (lambda (key value)
+ (hierarchy-add-tree
+ (symbol-value symbol-tree) key nil
+ (lambda (item)
+ (hash-table-values (cadr (cdr (cdr (gethash item tree))))))))
+ tree)
+ (hierarchy-print (symbol-value symbol-tree)
+ (lambda (item)
+ (cond ((= item 1) "root")
+ (t (let* ((node (gethash item tree))
+ ;; (reduced (st-reduce-index node str))
+ )
+ (substring str (car node)
+ (cond ((integerp (cadr node)) (cadr node))))
+ ;; (cond ((eq reduced 'end) "$")
+ ;; (t (apply #'string
+ ;; (append
+ ;; (seq-subseq str (car node)
+ ;; reduced
+ ;; ;; (cond ((integerp (cadr node)) (cadr node)))
+ ;; )
+ ;; nil))))
+
+ ;; (format "%d): (%S, %S): (%d): \"%s\""
+ ;; item
+ ;; (car node)
+ ;; (cadr node)
+ ;; (caddr node)
+ ;; (substring str (car node) (cond ((integerp (cadr node)) (cadr node))))
+ ;; )
+ )))))))
+
+(provide 'suffix-tree)
+;;; suffiex-tree.el ends here
+
+;;; archive
+
+;; ;;;###autoload
+;; (defvar st-root nil
+;; "The root of the suffix tree.")
+
+;; ;;;###autoload
+;; (defvar st-position nil
+;; "The current position in the string.")
+
+;; ;;;###autoload
+;; (defvar st-wait-for-link nil
+;; "The node that is waiting to have a suffix link.")
+
+;; ;;;###autoload
+;; (defvar st-remain nil
+;; "The number of remaining suffixes to insert.")
+
+;; ;;;###autoload
+;; (defvar st-active-node nil
+;; "Where to insert a new suffix.")
+
+;; ;;;###autoload
+;; (defvar st-active-edge-index nil
+;; "The index of the active edge.")
+
+;; ;;;###autoload
+;; (defvar st-active-length nil
+;; "How far down is the active point down the active edge.")
+
+;; (insert (format "after character %c, the tree becomes\n" character))
+;; (insert (format "string is %s\n" (substring str 0 (1+ position))))
+;; (insert (format "active-node: %d\n" active-node))
+;; (insert (format "active-edge: %c\n" (aref str active-edge-index)))
+;; (insert (format "active-length: %d\n" active-length))
+;; (cond ((eq last-added 11)
+;; (insert (format "slink: %d\n" (caddr (gethash active-node tree))))
+;; (insert (format "con: %S" continue-p))
+;; (insert (format "breakp: %S\n" breakp))))
+;; (st-print-tree tree (substring str 0 (1+ position)))
+;; (insert "\n\n")
+
+
+;; ;;;###autoload
+;; (defvar st-output-buffer-name "*suffix-tree*"
+;; "The name of the buffer that contains the output.")
+
+;; ;;;###autoload
+;; (defun st-print-tree (tree node str prefix)
+;; "Print TREE in the dedicated output buffer starting at NODE.
+;; PREFIX is used to recursively call this function.
+
+;; We need STR since the information we stored in the tree
+;; only contains the index into STR,
+;; for the sake of optimizations."
+;; (with-temp-buffer-window st-output-buffer-name '((display-buffer-at-bottom)) nil
+;; (st-print-tree-internal tree node str prefix)))
+
+;; ;;;###autoload
+;; (defun st-print-tree-internal (tree node str prefix)
+;; "The function that really prints out the data."
+;; (let* ((node-data (gethash node tree))
+;; (start (car node-data))
+;; (end (cadr node-data))
+;; (edges (cdddr node-data))
+;; (node-num (format "(%d)" node))
+;; (node-label (format "%s-%s-%s"
+;; prefix node-num
+;; (substring str start end))))
+;; (prin1 node-label)
+;; ;; print the first edge
+;; (let* ((prefix-base (concat
+;; prefix
+;; (make-string (length node-label) 32)))
+;; ;; TODO
+;; ))))
+
+