;ELC   
;;; Compiled
;;; in Emacs version 24.5.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@60 Name of the buffer where neotree shows directory contents.
(defconst neo-buffer-name " *NeoTree*" (#$ . 410))
(defconst neo-dir (byte-code "\302\203 \303!\202\f 	!\207" [load-file-name default-directory expand-file-name file-name-directory] 3))
(defconst neo-header-height 5)
(byte-code "\300\301\302\303#\210\300\304\305\306#\210\300\307\310\311#\207" [byte-code "\300\301!?\205 \302\301\303\"\207" [fboundp user-error defalias error] 3 "\300\301!?\205 \302\301\303\304B\"\207" [fboundp setq-local defalias macro #[(var val) "\302\303\304DD	E\207" [var val set make-local-variable quote] 4 "Set variable VAR to value VAL in current buffer."]] 4 "\300\301!?\205 \302\301\303\304B\"\305\301\306\307#\210\305\301\310\311#\210\207" [fboundp defvar-local defalias macro #[(var val &optional docstring) "\303\304	\nF\305\306DDE\207" [var val docstring progn defvar make-variable-buffer-local quote] 5 "Define VAR as a buffer-local variable with default value VAL.\nLike `defvar' but additionally marks the variable as being automatically\nbuffer-local wherever it is set."] put edebug-form-spec defvar doc-string-elt 3] 5] 4)
#@47 If OBJ is non-nil, return t, else return nil.
(defalias 'neo-util--to-bool '(macro . #[(obj) "\301\302BB\207" [obj and (t)] 3 (#$ . 1546)]))
#@55 Execute the forms in BODY with global NeoTree buffer.
(defalias 'neo-global--with-buffer '(macro . #[(&rest body) "\301\302\303\304\305\306BBEE\207" [body let ((neotree-buffer (neo-global--get-buffer))) unless (null neotree-buffer) with-current-buffer neotree-buffer] 7 (#$ . 1694)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put neo-global--with-buffer lisp-indent-function 0 edebug-form-spec t] 4)
#@55 Execute the forms in BODY with global NeoTree window.
(defalias 'neo-global--with-window '(macro . #[(&rest body) "\301\302BB\207" [body save-selected-window (neo-global--select-window)] 3 (#$ . 2117)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put neo-global--with-window lisp-indent-function 0 edebug-form-spec t] 4)
#@67 Execute the forms in BODY when selected window is NeoTree window.
(defalias 'neo-global--when-window '(macro . #[(&rest body) "\301\302BB\207" [body when (eq (selected-window) neo-global--window)] 3 (#$ . 2459)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put neo-global--when-window lisp-indent-function 0 edebug-form-spec t] 4)
#@27 Switch to NeoTree buffer.
(defalias 'neo-global--switch-to-buffer '(macro . #[nil "\300\207" [(let ((neotree-buffer (neo-global--get-buffer))) (unless (null neotree-buffer) (switch-to-buffer neotree-buffer)))] 1 (#$ . 2811)]))
#@63 Execute BODY in neotree buffer without read-only restriction.
(defalias 'neo-buffer--with-editing-buffer '(macro . #[(&rest body) "\301\302\303\304\305\306BE\307BBBB\207" [body let (rlt) (neo-global--with-buffer (setq buffer-read-only nil)) setq rlt progn ((neo-global--with-buffer (setq buffer-read-only t)) rlt)] 7 (#$ . 3044)]))
#@73 Execute BODY in neotree window without `window-size-fixed' restriction.
(defalias 'neo-buffer--with-resizable-window '(macro . #[(&rest body) "\301\302\303\304\305\306BE\307BBBB\207" [body let (rlt) (neo-global--with-buffer (neo-buffer--unlock-width)) setq rlt progn ((neo-global--with-buffer (neo-buffer--lock-width)) rlt)] 7 (#$ . 3383)]))
#@60 Make an open event handler, FN-FORM is event handler form.
(defalias 'neotree-make-executor '(macro . #[(&rest fn-form) "\303\211\304!\305!\306\307\310\311\312\313	\nF\257+\207" [get-args-fn file-fn dir-fn #[(sym) "\302	\"\206 \303\207" [fn-form sym plist-get #[(&rest _) "\300\207" [nil] 1]] 3] :file-fn :dir-fn lambda (&optional arg) (interactive "P") (neo-global--select-window) neo-buffer--execute arg] 9 (#$ . 3732)]))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\312\306\301\313\314&	\210\315\316\317\320\306\301\321\322&\210\315\323\302\324\321\325\306\301&\210\315\326\302\327\321\325\306\301&\210\315\330\331\332\321\325\306\301&\210\315\333\302\334\321\335\306\301&\210\315\336\331\337\321\325\306\301&\210\315\340\341\342\306\301\321\343&\210\315\344\345\346\306\301\321\347&\210\315\350\302\351\321\352\306\301&\210\315\353\302\354\321\325\306\301&\210\315\355\302\356\321\325\306\301&\210\315\357\360\361\321\362\306\301&\210\315\363\331\364\321\325\306\301&\210\315\365\366\367\306\301\321\370&\210\315\371\372\373\306\301\321\374&\210\315\375\302\376\321\325\306\301&\210\315\377\302\201@ \321\325\306\301&\210\315\201A \201B \201C \321\201D \306\301&\210\315\201E \302\201F \321\201G \306\301&\210\315\201H \302\201I \321\201G \306\301&\210\315\201J \302\201K \306\201L \321\201M &\210\315\201N \201O \201P \306\201L \321\201Q &\210\201R \201S \201T \201U \306\301\306\201V &\207" [custom-declare-group neotree nil "Options for neotree." :prefix "neo-" :group files neotree-vc-options "Neotree-VC customizations." "neo-vc-" :link (info-link "(neotree)Configuration") custom-declare-variable neo-window-position 'left "*The position of NeoTree window." :type (choice (const left) (const right)) neo-create-file-auto-open "*If non-nil, the file will auto open when created." boolean neo-dont-be-alone "*If non-nil, you cannot left neotree window alone." neo-persist-show t "*If non-nil, NeoTree window will not be turned off while press C-x 1." neo-banner-message "*The banner message of neotree window." string neo-show-updir-line "*If non-nil, show the updir line (..)." neo-theme 'classic "*The tree style to display.\n`classic' use icon to display, it only it suitable for GUI mode.\n`ascii' is the simplest style, it will use +/- to display the fold state,\nit suitable for terminal.\n`arrow' use unicode arrow.\n`nerd' use the nerdtree indentation mode and arrow." (choice (const classic) (const ascii) (const arrow) (const nerd)) neo-mode-line-type 'neotree "*The mode-line type to display, `default' is a non-modified mode-line, `neotree' is a compact mode-line that shows useful information about the\n current node like the parent directory and the number of nodes,\n`custom' uses the format stored in `neo-mode-line-custom-format',\n`none' hide the mode-line." (choice (const default) (const neotree) (const custom) (const none)) neo-mode-line-custom-format "*If `neo-mode-line-type' is set to `custom', this variable specifiy the mode-line format." sexp neo-smart-open "*If non-nil, every time when the neotree window is opened, it will try to find current file and jump to node." neo-show-hidden-files "*If non-nil, the hidden files are shown by default." neo-window-width 25 "*Specifies the width of the NeoTree window." integer neo-window-fixed-size "*If the neotree windows is fixed, it won't be resize when rebalance windows." neo-keymap-style 'default "*The default keybindings for neotree-mode-map." (choice (const default) (const concise)) neo-cwd-line-style 'text "*The default header style." (choice (const text) (const button)) neo-click-changes-root "*If non-nil, clicking on a directory will change the current root to the directory." neo-auto-indent-point "*If non-nil the point is autmotically put on the first letter of a node." neo-hidden-regexp-list '("^\\." "\\.pyc$" "~$" "^#.*#$" "\\.elc$") "*The regexp list matching hidden files." (repeat (choice regexp)) neo-enter-hook "Functions to run if enter node occured." hook neo-after-create-hook "Hooks called after creating the neotree buffer." neo-vc-integration "If non-nil, show VC status." neotree-vc (set (const :tag "Use different faces" face) (const :tag "Use different characters" char)) neo-vc-state-char-alist '((up-to-date . 32) (edited . 69) (added . 43) (removed . 45) (missing . 33) (needs-merge . 77) (conflict . 33) (unlocked-changes . 33) (needs-update . 85) (ignored . 32) (user . 85) (unregistered . 32) (nil . 32)) "Alist of vc-states to indicator characters.\nThis variable is used in `neo-vc-for-node' when\n`neo-vc-integration' contains `char'." (alist :key-type symbol :value-type character) custom-declare-face neo-banner-face ((((background dark)) (:foreground "lightblue" :weight bold)) (t (:foreground "DarkMagenta"))) "*Face used for the banner in neotree buffer." font-lock-highlighting-faces] 10)
(defvar neo-banner-face 'neo-banner-face)
(custom-declare-face 'neo-header-face '((((background dark)) (:foreground "White")) (t (:foreground "DarkMagenta"))) "*Face used for the header in neotree buffer." :group 'neotree :group 'font-lock-highlighting-faces)
(defvar neo-header-face 'neo-header-face)
(custom-declare-face 'neo-root-dir-face '((((background dark)) (:foreground "lightblue" :weight bold)) (t (:foreground "DarkMagenta"))) "*Face used for the root dir in neotree buffer." :group 'neotree :group 'font-lock-highlighting-faces)
(defvar neo-root-dir-face 'neo-root-dir-face)
(custom-declare-face 'neo-dir-link-face '((((background dark)) (:foreground "DeepSkyBlue")) (t (:foreground "MediumBlue"))) "*Face used for expand sign [+] in neotree buffer." :group 'neotree :group 'font-lock-highlighting-faces)
(defvar neo-dir-link-face 'neo-dir-link-face)
(custom-declare-face 'neo-file-link-face '((((background dark)) (:foreground "White")) (t (:foreground "Black"))) "*Face used for open file/dir in neotree buffer." :group 'neotree :group 'font-lock-highlighting-faces)
(defvar neo-file-link-face 'neo-file-link-face)
(custom-declare-face 'neo-button-face '((t (:underline nil))) "*Face used for open file/dir in neotree buffer." :group 'neotree :group 'font-lock-highlighting-faces)
(defvar neo-button-face 'neo-button-face)
(custom-declare-face 'neo-expand-btn-face '((((background dark)) (:foreground "SkyBlue")) (t (:foreground "DarkCyan"))) "*Face used for open file/dir in neotree buffer." :group 'neotree :group 'font-lock-highlighting-faces)
(defvar neo-expand-btn-face 'neo-expand-btn-face)
(custom-declare-face 'neo-vc-default-face '((((background dark)) (:foreground "White")) (t (:foreground "Black"))) "*Face used for unknown files in the neotree buffer.\nUsed only when (vc-state node) returns nil." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-default-face 'neo-vc-default-face)
(custom-declare-face 'neo-vc-user-face '((t (:foreground "Red" :slant italic))) "*Face used for user-locked files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-user-face 'neo-vc-user-face)
(custom-declare-face 'neo-vc-up-to-date-face '((((background dark)) (:foreground "LightGray")) (t (:foreground "DarkGray"))) "*Face used for vc-up-to-date files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-up-to-date-face 'neo-vc-up-to-date-face)
(custom-declare-face 'neo-vc-edited-face '((((background dark)) (:foreground "Magenta")) (t (:foreground "DarkMagenta"))) "*Face used for vc-edited files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-edited-face 'neo-vc-edited-face)
(custom-declare-face 'neo-vc-needs-update-face '((t (:underline t))) "*Face used for vc-needs-update files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-needs-update-face 'neo-vc-needs-update-face)
(custom-declare-face 'neo-vc-needs-merge-face '((((background dark)) (:foreground "Red1")) (t (:foreground "Red3"))) "*Face used for vc-needs-merge files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-needs-merge-face 'neo-vc-needs-merge-face)
(custom-declare-face 'neo-vc-unlocked-changes-face '((t (:foreground "Red" :background "Blue"))) "*Face used for vc-unlocked-changes files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-unlocked-changes-face 'neo-vc-unlocked-changes-face)
(custom-declare-face 'neo-vc-added-face '((((background dark)) (:foreground "LightGreen")) (t (:foreground "DarkGreen"))) "*Face used for vc-added files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-added-face 'neo-vc-added-face)
(custom-declare-face 'neo-vc-removed-face '((t (:strike-through t))) "*Face used for vc-removed files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-removed-face 'neo-vc-removed-face)
(custom-declare-face 'neo-vc-conflict-face '((((background dark)) (:foreground "Red1")) (t (:foreground "Red3"))) "*Face used for vc-conflict files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-conflict-face 'neo-vc-conflict-face)
(custom-declare-face 'neo-vc-missing-face '((((background dark)) (:foreground "Red1")) (t (:foreground "Red3"))) "*Face used for vc-missing files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-missing-face 'neo-vc-missing-face)
(custom-declare-face 'neo-vc-ignored-face '((((background dark)) (:foreground "DarkGrey")) (t (:foreground "LightGray"))) "*Face used for vc-ignored files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-ignored-face 'neo-vc-ignored-face)
(custom-declare-face 'neo-vc-unregistered-face nil "*Face used for vc-unregistered files in the neotree buffer." :group 'neotree-vc :group 'font-lock-highlighting-faces)
(defvar neo-vc-unregistered-face 'neo-vc-unregistered-face)
(defvar neo-global--buffer nil)
(defvar neo-global--window nil)
#@137 Neotree mode-line displaying information on the current node.
This mode-line format is used if `neo-mode-line-type' is set to `neotree'
(defvar neo-mode-line-format (list '(:eval (let* ((fname (neo-buffer--get-filename-current-line)) (current (if fname fname neo-buffer--start-node)) (parent (if fname (file-name-directory current) current)) (nodes (neo-buffer--get-nodes parent)) (dirs (car nodes)) (files (cdr nodes)) (ndirs (length dirs)) (nfiles (length files)) (index (when fname (1+ (if (file-directory-p current) (neo-buffer--get-node-index current dirs) (+ ndirs (neo-buffer--get-node-index current files))))))) (neo-mode-line--compute-format parent index ndirs nfiles)))) (#$ . 13849))
#@44 Start node(i.e. directory) for the window.
(defvar neo-buffer--start-node nil (#$ . 14550))
(make-variable-buffer-local 'neo-buffer--start-node)
#@38 Index of the start line of the root.
(defvar neo-buffer--start-line nil (#$ . 14701))
(make-variable-buffer-local 'neo-buffer--start-line)
#@103 To save the cursor position.
The car of the pair will store fullpath, and cdr will store line number.
(defvar neo-buffer--cursor-pos (cons nil 1) (#$ . 14847))
(make-variable-buffer-local 'neo-buffer--cursor-pos)
#@49 To save the scroll position for NeoTree window.
(defvar neo-buffer--last-window-pos (cons nil 1) (#$ . 15066))
(make-variable-buffer-local 'neo-buffer--last-window-pos)
#@28 Show hidden nodes in tree.
(defvar neo-buffer--show-hidden-file-p nil (#$ . 15241))
(make-variable-buffer-local 'neo-buffer--show-hidden-file-p)
#@31 A list of expanded dir nodes.
(defvar neo-buffer--expanded-node-list nil (#$ . 15392))
(make-variable-buffer-local 'neo-buffer--expanded-node-list)
#@38 The model of current NeoTree buffer.
(defvar neo-buffer--node-list nil (#$ . 15546))
(make-variable-buffer-local 'neo-buffer--node-list)
#@45 The model of current NeoTree buffer (temp).
(defvar neo-buffer--node-list-1 nil (#$ . 15689))
(make-variable-buffer-local 'neo-buffer--node-list-1)
#@42 A local variable for `neo-persist-show'.
(defvar neo-buffer--persist-show nil (#$ . 15843))
(make-variable-buffer-local 'neo-buffer--persist-show)
#@30 Keymap for file-node button.
(defvar neotree-file-button-keymap (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [mouse-2] #[(&optional arg) "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute neo-open-file #[(&rest _) "\300\207" [nil] 1]] 4 nil "P"]] 4) (#$ . 15996))
#@29 Keymap for dir-node button.
(defvar neotree-dir-button-keymap (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [mouse-2] #[(&optional arg) "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute #[(&rest _) "\300\207" [nil] 1] neo-open-dir] 4 nil "P"]] 4) (#$ . 16330))
#@28 Keymap for `neotree-mode'.
(defvar neotree-mode-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\323#\210\303\325\326#\210\303\327\326#\210\303\330\331#\210\303\332\333#\210\303\334\335#\210\303\336\337#\210\303\340\341#\210\303\342\343#\210\303\344\345#\210\303\346\347#\210\303\350\347#\210\303\351\347#\210\303\352\345#\210\303\353\354#\210\303\355\356#\210	\357=\203\264 \303\360\361#\210\303\362\363#\210\303\364\365#\210\303\366\367#\210\202\344 	\370=\203\344 \303\371\354#\210\303\372\361#\210\303\373\361#\210\303\314\363#\210\303\374\365#\210\303\322\361#\210\303\375\376#\210)\207" [map neo-keymap-style make-sparse-keymap define-key "	" #[#1=(&optional arg) "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute #3=#[(&rest _) "\300\207" [nil] 1] neo-open-dir] 4 nil #2="P"] "" #[#1# "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute neo-open-file neo-open-dir] 4 nil #2#] "|" #[#1# "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute neo-open-file-vertical-split #3#] 4 nil #2#] "-" #[#1# "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute neo-open-file-horizontal-split #3#] 4 nil #2#] "d" #[#1# "\301 \210\302\303\304#\207" [arg neo-global--select-window neo-buffer--execute #3# neo-open-dired] 4 nil #2#] "g" neotree-refresh "q" neotree-hide "p" neotree-previous-line "" "n" neotree-next-line "" "A" neotree-stretch-toggle "U" neotree-select-up-node "D" neotree-select-down-node "H" neotree-hidden-file-toggle "S" neotree-select-previous-sibling-node "s" neotree-select-next-sibling-node "" find-file-other-window "1" neotree-empty-fn "2" "3" "" "" neotree-change-root "c" neotree-dir default "" neotree-create-node "" neotree-delete-node "" neotree-rename-node "" neotree-copy-node concise "C" "c" "+" "r" "e" neotree-enter] 4) (#$ . 16661))
#@164 Hook run after entering NeoTree mode.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar neotree-mode-hook nil (#$ . 18720))
(byte-code "\300\301!\204\f \302\301\303\304#\210\300\207" [boundp neotree-mode-map put definition-name neotree-mode] 4)
(defvar neotree-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204 \302\300\301\303\304!#\210\305\306!\204 \302\306\307\310#\210\300\207" [neotree-mode-map variable-documentation put purecopy "Keymap for `neotree-mode'." boundp neotree-mode-syntax-table definition-name neotree-mode] 5)
(defvar neotree-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [neotree-mode-syntax-table variable-documentation put purecopy "Syntax table for `neotree-mode'." neotree-mode-abbrev-table definition-name neotree-mode] 5)
(defvar neotree-mode-abbrev-table (progn (define-abbrev-table 'neotree-mode-abbrev-table nil) neotree-mode-abbrev-table))
(byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [neotree-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `neotree-mode'." neotree-mode derived-mode-parent special-mode] 5)
#@242 A major mode for displaying the directory tree in text mode.

In addition to any hooks its parent mode `special-mode' might have run,
this mode runs the hook `neotree-mode-hook', as the final step
during initialization.

\{neotree-mode-map}
(defalias 'neotree-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2036 \321 =\203< \322\f\323 \"\210)\324*\325\"\204V *+=\204V \326*\325+C#\210\327!\210\330\f!\210*+\331,\307-\332./01\333=\203\210 \306\334!\2102\335\336\337\331\307$\210\202\257 1\340=\203\231 \306\334!\210\331\202\257 1\341=\203\257 \306\334!\2103\335\336\337\331\307$\210\342\343!\203\274 \343\332!\210\202\303 \335\344\345\331\346$\2104\203\317 \335\336\347\331\307$\210)\350\351!\207" [delay-mode-hooks major-mode mode-name neotree-mode-map neotree-mode-syntax-table parent make-local-variable t special-mode neotree-mode "NeoTree" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table nil -1 neotree mode-line-format add-hook post-command-hook force-mode-line-update none custom fboundp electric-indent-local-mode electric-indent-functions #[(arg) "\300\207" [no-indent] 1] local neo-hook--node-first-letter run-mode-hooks neotree-mode-hook neotree-mode-abbrev-table local-abbrev-table indent-tabs-mode buffer-read-only truncate-lines neo-show-hidden-files neo-buffer--show-hidden-file-p neo-mode-line-type neo-mode-line-format neo-mode-line-custom-format neo-auto-indent-point] 6 (#$ . 19984) nil])
#@42 Return non-nil if neotree window exists.
(defalias 'neo-global--window-exists-p #[nil "\301!??\205 \302\301!\303 \"\207" [neo-global--window window-buffer eql neo-global--get-buffer] 3 (#$ . 21673)])
#@28 Select the NeoTree window.
(defalias 'neo-global--select-window #[nil "\301\302!\303!)\207" [window neo-global--get-window t select-window] 2 (#$ . 21882) nil])
#@180 Return the neotree window if it exists, else return nil.
But when the neotree window does not exist and AUTO-CREATE-P is non-nil,
it will create the neotree window and return it.
(defalias 'neo-global--get-window #[(&optional auto-create-p) "\302 \204 \303\204 	\203 \304 \207" [neo-global--window auto-create-p neo-global--window-exists-p nil neo-global--create-window] 1 (#$ . 22052)])
#@40 Return the window by top and POSITION.
(defalias 'neo-global--get-position-window #[(position) "\301\302=\203 \303\202 \304 \303\"\206 \305 \207" [position window-at left 0 frame-width selected-window] 3 (#$ . 22453)])
#@31 Create global neotree window.
(defalias 'neo-global--create-window #[nil "\303\304\305!\306\307\n!\303\n\310=\203 \311\202 \310#\210\312\307\n!!\313	\"\210\314 \210\315 \210	*\207" [buffer window neo-window-position nil neo-global--get-buffer t split-window neo-global--get-position-window left right select-window neo-window--init neo-global--attach neo-global--reset-width] 5 (#$ . 22682)])
#@123 Return the global neotree buffer if it exists.
If INIT-P is non-nil and global NeoTree buffer not exists, then create it.
(defalias 'neo-global--get-buffer #[(&optional init-p) "\304!	\232\204\n \305\n\203 \204 \306 \307\216\310 *\207" [neo-global--buffer neo-buffer-name init-p #1=#:wconfig buffer-name nil current-window-configuration ((set-window-configuration #1#)) neo-buffer--create] 2 (#$ . 23088)])
#@37 Return non-nil if PATH in root dir.
(defalias 'neo-global--file-in-root-p #[(path) "\303 \211\205 rq\210	??\205 \304\n	\"))\207" [neotree-buffer neo-buffer--start-node path neo-global--get-buffer neo-path--file-in-directory-p] 4 (#$ . 23509)])
#@74 Check whether the global neotree window is alone with some other window.
(defalias 'neo-global--alone-p #[nil "\302 \211G\303U\205 	\235)\207" [windows neo-global--window window-list 2] 3 (#$ . 23763)])
#@26 Show the NeoTree window.
(defalias 'neo-global--open #[nil "\302\303 \211\203 r	q\210\304 ))\204 \305\306 !\202  \307\310!)\207" [valid-start-node-p neotree-buffer nil neo-global--get-buffer neo-buffer--valid-start-node-p neo-global--open-dir neo-path--get-working-dir neo-global--get-window t] 3 (#$ . 23975)])
#@51 Show the NeoTree window, and change root to PATH.
(defalias 'neo-global--open-dir #[(path) "\302\303!\210\304 \211\205 rq\210\305	!))\207" [neotree-buffer path neo-global--get-window t neo-global--get-buffer neo-buffer--change-root] 3 (#$ . 24299)])
#@52 Quick select node which specified PATH in NeoTree.
(defalias 'neo-global--open-and-find #[(path) "\304\211\204 \305\306\307\"\210\310\n!\203 \n\202 \311\n!\312 \203& \313\n!\204* \314	!\210\315 r\316\216\317 \210\320\n\321\"-\207" [path root-dir npath save-selected-window--state nil throw invalid-path "Invalid path to select." file-directory-p neo-path--updir neo-global--window-exists-p neo-global--file-in-root-p neo-global--open-dir internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) neo-global--select-window neo-buffer--select-file-node t] 4 (#$ . 24558)])
#@104 Create or find a window to select when open a file node.
The description of ARG is in `neotree-enter'.
(defalias 'neo-global--select-mru-window #[(arg) "\305\306 !\307=\2031 \310\311 \211\203 r	q\210\312 \210))\313 \311 \211\203- r	q\210\314 \210))\210)\315 \n=\203< \316\317!\210\250\203Y \320\304!\203Y \fJ\203Y \321\322!\203Y \322!\210\202\210 ;\203r \323\230\203r \324\325 !\210\326 \210\327 \210\202\210 ;\203\210 \330\230\203\210 \324\325 !\210\331 \210\332 \210\324\325 !\207" [rlt neotree-buffer neo-global--window arg window-numbering-mode safe-length window-list 1 nil neo-global--get-buffer neo-buffer--unlock-width split-window-horizontally neo-buffer--lock-width selected-window neo-window--zoom minimize boundp fboundp select-window-by-number "|" select-window get-mru-window split-window-right windmove-right "-" split-window-below windmove-down] 3 (#$ . 25193)])
#@35 Detach the global neotree buffer.
(defalias 'neo-global--detach #[nil "\304 \211\203 rq\210\305\306 \210))\305\211\211\207" [neotree-buffer neo-buffer--persist-show neo-global--buffer neo-global--window neo-global--get-buffer nil neo-buffer--unlock-width] 3 (#$ . 26090)])
#@34 Attach the global neotree buffer
(defalias 'neo-global--attach #[nil "\306!\307	!\310 \211\203 rq\210\f\311 \210))\312\313\314\"\207" [neo-buffer-name neo-global--buffer neo-global--window neotree-buffer neo-persist-show neo-buffer--persist-show get-buffer get-buffer-window neo-global--get-buffer neo-buffer--lock-width run-hook-with-args neo-after-create-hook (window)] 4 (#$ . 26375)])
#@36 Set neotree window width to WIDTH.
(defalias 'neo-global--set-window-width #[(width) "\304 r\305\216\306 \210\307\310 \211\203 r\nq\210\311 \210))\312\313 \"\310 \211\2030 r\nq\210\314 \210))	,\207" [save-selected-window--state rlt neotree-buffer width internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) neo-global--select-window nil neo-global--get-buffer neo-buffer--unlock-width neo-util--set-window-width selected-window neo-buffer--lock-width] 4 (#$ . 26777)])
#@49 Set neotree window width to `neo-window-width'.
(defalias 'neo-global--reset-width #[nil "\301!\207" [neo-window-width neo-global--set-window-width] 2 (#$ . 27312)])
(byte-code "\300\301\302\303\304$\210\305\301\304\"\210\300\306\307\303\304$\210\305\306\304\"\210\300\310\311\303\304$\210\305\310\304\"\210\300\312\313\303\304$\210\305\312\304\"\210\314\315\316\"\207" [ad-add-advice delete-other-windows (neotree-delete-other-windows nil t (advice lambda nil "Delete all windows except neotree." (interactive) (if (neo-global--with-buffer neo-buffer--persist-show) (mapc (lambda (window) (unless (string-equal (buffer-name (window-buffer window)) neo-buffer-name) (delete-window window))) (cdr (window-list))) ad-do-it))) around nil ad-activate delete-window (neotree-delete-window nil t (advice lambda nil "Stop to delete window which it is the last window except NeoTree." (if (and neo-dont-be-alone (not (eq window neo-global--window)) (neo-global--alone-p)) (message "only one window other than neotree left. won't close") ad-do-it))) mouse-drag-vertical-line (neotree-drag-vertical-line nil t (advice lambda (start-event) "Drag and drop is not affected by the lock." (neo-buffer--with-resizable-window ad-do-it))) balance-windows (neotree-balance-windows nil t (advice lambda nil "Fix neotree inhibits balance-windows." (if (neo-global--window-exists-p) (let (old-width) (neo-global--with-window (setq old-width (window-width))) (neo-buffer--with-resizable-window ad-do-it) (neo-global--with-window (neo-global--set-window-width old-width))) ad-do-it))) eval-after-load popwin #[nil "\300\301\302\303\304$\210\305\301\304\"\210\300\306\307\303\304$\210\305\306\304\"\210\306\207" [ad-add-advice popwin:create-popup-window (neotree/popwin-popup-buffer nil t (advice lambda nil (let ((neo-exists-p (neo-global--window-exists-p))) (when neo-exists-p (neo-global--detach)) ad-do-it (when neo-exists-p (neo-global--attach) (neo-global--reset-width))))) around nil ad-activate popwin:close-popup-window (neotree/popwin-close-popup-window nil t (advice lambda nil (let ((neo-exists-p (neo-global--window-exists-p))) (when neo-exists-p (neo-global--detach)) ad-do-it (when neo-exists-p (neo-global--attach) (neo-global--reset-width)))))] 5]] 5)
#@53 Move point to the first letter of the current node.
(defalias 'neo-hook--node-first-letter #[nil "\301=\204\f \302=\205 \303 \207" [this-command next-line previous-line neo-point-auto-indent] 2 (#$ . 29563)])
#@207 Apply CONDP to elements of LST keeping those that return non-nil.

Example:
    (neo-util--filter 'symbolp '(a "b" 3 d4))
         => (a d4)

This procedure does not work when CONDP is the `null' function.
(defalias 'neo-util--filter #[(condp lst) "\301\302\303\304\"\"\207" [lst delq nil mapcar #[(x) "	!\205 	\207" [condp x] 2]] 5 (#$ . 29782)])
#@58 Find element of the list WHERE matching predicate WHICH.
(defalias 'neo-util--find #[(where which) "\300\301\215\207" [found (byte-code "\304\211\203 \n@	!\203 \305\306	\"\210\nA\211\204 *\304\207" [where elt --dolist-tail-- which nil throw found] 4)] 2 (#$ . 30139)])
#@52 Strip newline character from STRING, like 'Icon
'.
(defalias 'neo-util--make-printable-string #[(string) "\301\302\303#\207" [string replace-regexp-in-string "\n" ""] 4 (#$ . 30423)])
#@53 Return the subdirectories and subfiles of the PATH.
(defalias 'neo-util--walk-dir #[(path) "\303!\304\305\n#)\207" [path full-path directory-files-no-dot-files-regexp neo-path--file-truename directory-files full] 4 (#$ . 30614)])
#@95 A filter function, if the NODE can not match each item in `neo-hidden-regexp-list', return t.
(defalias 'neo-util--hidden-path-filter #[(node) "\204 \304	!\305\306\")?\207	\207" [neo-buffer--show-hidden-file-p node shortname neo-hidden-regexp-list neo-path--file-short-name neo-util--filter #[(x) "	\303\304\305#)\266\203??\207" [x shortname inhibit-changing-match-data nil t string-match] 7]] 3 (#$ . 30853)])
#@42 Remove whitespace at the beginning of S.
(defalias 'neo-str--trim-left #[(s) "\301\302\"\203 \303\304\305\211$\207\207" [s string-match "\\`[ 	\n]+" replace-match "" t] 5 (#$ . 31279)])
#@36 Remove whitespace at the end of S.
(defalias 'neo-str--trim-right #[(s) "\301\302\"\203 \303\304\305\211$\207\207" [s string-match "[ 	\n]+\\'" replace-match "" t] 5 (#$ . 31476)])
#@50 Remove whitespace at the beginning and end of S.
(defalias 'neo-str--trim #[(s) "\301\302!!\207" [s neo-str--trim-left neo-str--trim-right] 3 (#$ . 31668)])
(defalias 'neo-path--expand-name #[(path &optional current-dir) "\303!\203\n \206 \304	!\305	\n\"\211)\207" [path r-path current-dir file-name-absolute-p substitute-in-file-name expand-file-name] 4])
#@221 Shorten a given PATH to a specified LENGTH.
This is needed for paths, which are to long for the window to display
completely.  The function cuts of the first part of the path to remain
the last folder (the current one).
(defalias 'neo-path--shorten #[(path length) "\302!	V\203 \303	S[\304OP\207\207" [path length string-width "<" nil] 4 (#$ . 32040)])
(defalias 'neo-path--insert-chroot-button #[(label path face) "\303\304\305\306\307\301	\310\n&	\207" [label face path insert-button action (lambda (x) (neotree-change-root)) follow-link t neo-full-path] 10])
#@141 Shortens the PATH to (window-body-width) and displays any visible remains as buttons that, when clicked, navigate to that
parent directory.
(defalias 'neo-path--insert-header-buttonized #[(path) "\306\307\310\306\311\312\313#!\"!\302	!\242\242\314\312\211\315#\210	\316\211\203J \f@\211@\n\230\2033 \317\n\315\"\210\202C \314@\312P\320\321\312\306!B\"\315#\210\fA\211\204! ,i\322 V\205v \322 [u\210\323 `|\210\324`!\211\203k \325\326\"\202l \312\314\327\315#\210*\316\207" [path dirs last dir --dolist-tail-- button reverse cl-maplist identity split-string "/" :omitnulls neo-path--insert-chroot-button neo-root-dir-face nil neo-buffer--insert-with-face apply neo-path--join window-body-width point-at-bol button-at overlay-get neo-full-path "<"] 9 (#$ . 32614)])
(defalias 'neo-path--updir #[(path) "\302!\211G\303V\203 	\304\305O\306\232\203 	\303\304O	G\303=\203\" \306\307\310	!!)\207" [path r-path neo-path--expand-name 0 -1 nil "/" directory-file-name file-name-directory] 4])
#@142 Joins a series of directories together with ROOT and DIRS.
Like Python's os.path.join,
  (neo-path--join "/tmp" "a" "b" "c") => /tmp/a/b/c .
(defalias 'neo-path--join #[(root &rest dirs) "\204 	\206/ @\304\211\305\232\203 	\206' \306\232\203# \307	!\206' \310	\"\311\312\nA#*\207" [dirs root epath tdir nil "." ".." neo-path--updir neo-path--expand-name apply neo-path--join] 5 (#$ . 33624)])
#@114 Base file/directory name by FILE.
Taken from http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01238.html
(defalias 'neo-path--file-short-name #[(file) "\301\230\203 \301\207\302\303\304!!!\207" [file "/" neo-util--make-printable-string file-name-nondirectory directory-file-name] 4 (#$ . 34034)])
(defalias 'neo-path--file-truename #[(path) "\302!\211??\205% \303	!\203$ 	G\304V\203$ 	\305\306O\307\232\204$ 	\307P	)\207" [path rlt file-truename file-directory-p 0 -1 nil "/"] 4])
#@54 To determine whether a directory(DIR) contain files.
(defalias 'neo-path--has-subfile-p #[(dir) "\301!\205 \302!\205 \303!\205 \304\207" [dir file-exists-p file-directory-p neo-util--walk-dir t] 2 (#$ . 34535)])
(defalias 'neo-path--match-path-directory #[(path) "\303!\304\305\306\215\211\203 \307\310	\311#	*\207" [path rlt-path true-path neo-path--file-truename nil rlt (byte-code "\301!\203 \302\303\"\210\304!\301!\205 \302\303\"\207" [true-path file-directory-p throw rlt file-name-directory] 3) neo-path--join "." "./"] 5])
#@48 Return a directory name of the current buffer.
(defalias 'neo-path--get-working-dir #[nil "\301\302!!\207" [default-directory file-name-as-directory file-truename] 3 (#$ . 35092)])
#@39 Remove whitespace at the end of PATH.
(defalias 'neo-path--strip #[(path) "\303!\304\305	\"\211\203 \306\307\310\211	$\211G\311=\203 \312	*\207" [path rlt pos neo-str--trim string-match "[\\\\/]+\\'" replace-match "" t 0 "/"] 6 (#$ . 35280)])
#@128 Return non-nil if files FILE1 and FILE2 name the same file.
If FILE1 or FILE2 does not exist, the return value is unspecified.
(defalias 'neo-path--file-equal-p #[(file1 file2) "?\206 	??\205 \304!\304	!\305\n\"*\207" [file1 file2 nfile2 nfile1 neo-path--strip file-equal-p] 3 (#$ . 35537)])
#@153 Return non-nil if FILE is in DIR or a subdirectory of DIR.
A directory is considered to be "in" itself.
Return nil if DIR is not an existing directory.
(defalias 'neo-path--file-in-directory-p #[(file dir) "\304!\304	!\n\305P\306\n\"*\207" [file dir ndir nfile neo-path--strip "/" file-in-directory-p] 3 (#$ . 35843)])
#@37 Kill all buffers for files in PATH.
(defalias 'neo-util--kill-buffers-for-path #[(path) "\305!\211\203\f \306	!\210)\307\310\n#\311\211\205A \f@\305!\211\203( \306	!\210\312!\2038 \313!\2038 \314!\210)\fA\211\204 \311*\207" [path buffer directory-files-no-dot-files-regexp filename --dolist-tail-- find-buffer-visiting kill-buffer directory-files t nil file-directory-p neo-path--has-subfile-p neo-util--kill-buffers-for-path] 5 (#$ . 36173)])
#@30 Make WINDOW N columns width.
(defalias 'neo-util--set-window-width #[(window n) "	]\205% \304 \nV\203 \305\304 \nZ!\202% \304 \nW\205% \306\n\304 Z!)\207" [n window-min-width w window window-width shrink-window-horizontally enlarge-window-horizontally] 3 (#$ . 36636)])
#@56 Put the point on the first letter of the current node.
(defalias 'neo-point-auto-indent #[nil "\300 \205 \301\302!\210\303\304\305\302!\306#\210\307u\207" [neo-buffer--get-filename-current-line beginning-of-line 1 re-search-forward "[^- +]" line-end-position t -1] 4 (#$ . 36916)])
#@18 Insert new line.
(defalias 'neo-buffer--newline-and-begin #[nil "\300 \210\301 \207" [newline beginning-of-line] 1 (#$ . 37205)])
#@20 Get image by NAME.
(defalias 'neo-buffer--get-icon #[(name) "\304\305\"\306\307\304\n\310P\"\311\306\312\313\314\315&\211*\207" [neo-dir image icon-path name neo-path--join "icons" nil create-image ".xpm" xpm :ascent center :mask (heuristic t)] 9 (#$ . 37341)])
#@150 Write icon by NAME, the icon style affected by neo-theme.
`open' write opened folder icon.
`close' write closed folder icon.
`leaf' write leaf icon.
(defalias 'neo-buffer--insert-fold-symbol #[(name) "\305\306\n\2032 \307\232\2032 \f\310\232\203 	\311!\206\217 \f\312\232\203& 	\313!\206\217 \f\314\232\205\217 	\315!\202\217 \316\232\203P \f\310\232\203D \317!\206\217 \f\312\232\205\217 \320!\202\217 \321\232\203z \f\310\232\203b \322!\206\217 \f\312\232\203n \323!\206\217 \f\314\232\205\217 \324!\202\217 \f\310\232\203\206 \325!\206\217 \f\312\232\205\217 \326!*\207" [n-insert-symbol n-insert-image window-system neo-theme name #[(n) "\301\302!!\207" [n insert-image neo-buffer--get-icon] 3] #[(n) "\301\302\"\207" [n neo-buffer--insert-with-face neo-expand-btn-face] 3] classic open "open" close "close" leaf "leaf" arrow "▾" "▸" nerd "▾ " "▸ " "  " "-" "+"] 2 (#$ . 37616)])
#@105 Save cursor position.
If NODE-PATH and LINE-POS is nil, it will be save the current line node position.
(defalias 'neo-buffer--save-cursor-pos #[(&optional node-path line-pos) "\306\211\307 \310 \f\203 \f\202 \311 \203 \202 \312 \nB	B\211\f,\207" [ws-pos ws-wind cur-line-pos cur-node-path node-path line-pos nil selected-window window-start neo-buffer--get-filename-current-line line-number-at-pos neo-buffer--cursor-pos neo-buffer--last-window-pos] 4 (#$ . 38530)])
#@32 Jump to saved cursor position.
(defalias 'neo-buffer--goto-cursor-pos #[nil "\306@A	@	A\307\310\215\210eb\210\311\fS!\210\312 \232\205& \313\n\314#-\207" [neo-buffer--cursor-pos neo-buffer--last-window-pos ws-pos ws-wind line-pos node nil line-pos-founded (byte-code "\203 \304\305\306\n\"\210A\307\310	\"\207" [node line-pos neo-buffer--node-list neo-buffer--cursor-pos 0 mapc #[(x) "T\303	\n\"\205 \304\305\"\207" [line-pos x node neo-path--file-equal-p throw line-pos-founded] 3] throw line-pos-founded] 3) neo-buffer--forward-line selected-window set-window-start t] 5 (#$ . 39021)])
#@18 Clear node list.
(defalias 'neo-buffer--node-list-clear #[nil "\301\211\207" [neo-buffer--node-list nil] 2 (#$ . 39633)])
#@76 Set value in node list.
LINE-NUM is the index of node list.
PATH is value.
(defalias 'neo-buffer--node-list-set #[(line-num path) "G	\n\204\f \305 \nW\203 \306\307\nZ\310\"\"\nS\fI\210*\207" [neo-buffer--node-list line-num node-index node-list-length path line-number-at-pos vconcat make-vector nil] 5 (#$ . 39762)])
(defalias 'neo-buffer--insert-with-face #[(content face) "`	c\210\303`\302\nD#)\207" [pos-start content face set-text-properties] 5])
(defalias 'neo-buffer--valid-start-node-p #[nil "??\205	 \301!\207" [neo-buffer--start-node file-accessible-directory-p] 2])
#@38 Create and switch to NeoTree buffer.
(defalias 'neo-buffer--create #[nil "\302\303!!\210\304 \210\305\301!\203 	\203 \301\306!\210p\207" [neo-buffer-name linum-mode switch-to-buffer generate-new-buffer-name neotree-mode boundp -1] 3 (#$ . 40359)])
(defalias 'neo-buffer--insert-banner #[nil "\205 `c\210\302	`\303#\210)\304 \207" [neo-banner-message start set-text-properties (face neo-banner-face) neo-buffer--newline-and-begin] 4])
(defalias 'neo-buffer--insert-root-entry #[(node) "\203\" \305\306\307\310\311\312\313	\314\315\n!&	\210`\316c\210\317`\320#\210)\321 \210\322\323\n\"\210\f\324=\2034 \325\n!\210\202= \326\327\n\330 \"\331\"\210\321 \207" [neo-show-updir-line neo-file-link-face node start neo-cwd-line-style insert-button ".." action (lambda (x) (neotree-change-root)) follow-link t face neo-full-path neo-path--updir " (up a dir)" set-text-properties (face neo-header-face) neo-buffer--newline-and-begin neo-buffer--node-list-set nil button neo-path--insert-header-buttonized neo-buffer--insert-with-face neo-path--shorten window-body-width neo-root-dir-face] 11])
(defalias 'neo-buffer--insert-dir-entry #[(node depth expanded) "\306!\307\310\nS\311_\"\210\312>\203 \307\310\311\"\210\313\f\203  \314\202! \315!\210\316	\317P\320\321\322\323\324&	\210\325\326\"\210\327 )\207" [node node-short-name depth neo-vc-integration expanded neo-dir-link-face neo-path--file-short-name insert-char 32 2 char neo-buffer--insert-fold-symbol open close insert-button "/" follow-link t face neo-full-path keymap neo-buffer--node-list-set nil neo-buffer--newline-and-begin neotree-dir-button-keymap] 10])
(defalias 'neo-buffer--insert-file-entry #[(node depth) "\306!	\205\n \307!\310\311\fS\312_\"\210\313	>\203# \310\n@!\210\310\311!\210\314\315!\210\316\317\320\321\211	>\2037 \nA\2028 \322\323&	\210\324\325\"\210\326 *\207" [node neo-vc-integration vc node-short-name depth neo-file-link-face neo-path--file-short-name neo-vc-for-node insert-char 32 2 char neo-buffer--insert-fold-symbol leaf insert-button follow-link t face neo-full-path keymap neo-buffer--node-list-set nil neo-buffer--newline-and-begin neotree-file-button-keymap] 10])
(defalias 'neo-vc-for-node #[(node) "\306!\211\203 \307	\"\202 \302!\211;\203 \310\202 \n\311\n\"A\312\n\313\"\203. \f\202\263 \312\n\314\"\2039 \202\263 \312\n\315\"\203E \202\263 \312\n\316\"\203Q \202\263 \312\n\317\"\203] \202\263 \312\n\320\"\203i \202\263 \312\n\321\"\203u \202\263 \312\n\322\"\203\201 \202\263 \312\n\323\"\203\215 \202\263 \312\n\324\"\203\231 \202\263 \312\n\325\"\203\245 \202\263 \312\n\310\"\203\261 \202\263  +B\207" [node backend vc-state neo-vc-state-char-alist neo-vc-up-to-date-face neo-vc-edited-face vc-backend vc-state-refresh user assoc eql up-to-date edited needs-update needs-merge unlocked-changes added removed conflict missing ignored unregistered neo-vc-needs-update-face neo-vc-needs-merge-face neo-vc-unlocked-changes-face neo-vc-added-face neo-vc-removed-face neo-vc-conflict-face neo-vc-missing-face neo-vc-ignored-face neo-vc-unregistered-face neo-vc-user-face neo-vc-default-face] 5])
(defalias 'neo-buffer--get-nodes #[(path) "\303!\304\305\306	\"\307\305\310	\"\n\"\307\305\311	\"\n\"+B\207" [path nodes comp neo-util--walk-dir #[(x y) "	\231\207" [x y] 2] neo-util--filter neo-util--hidden-path-filter sort file-directory-p #[(f) "\301!?\207" [f file-directory-p] 2]] 5])
#@128 Return the index of NODE in NODES.

NODES can be a list of directory or files.
Return nil if NODE has not been found in NODES.
(defalias 'neo-buffer--get-node-index #[(node nodes) "\306G@A\n\203! \n\232\204! \fT	@	A\202 \fW\205( \f,\207" [nodes rest cur l i node 0] 4 (#$ . 43811)])
#@37 Return non-nil if NODE is expanded.
(defalias 'neo-buffer--expanded-node-p #[(node) "\301\302\"\205 \303\207" [neo-buffer--expanded-node-list neo-util--find #[(x) "	\232\207" [x node] 2] t] 3 (#$ . 44113)])
#@124 Set the expanded state of the NODE to DO-EXPAND.
Return the new expand state for NODE (t for expanded, nil for collapsed).
(defalias 'neo-buffer--set-expand #[(node do-expand) "\204\f \303\304	\"\202 \n	B\207" [do-expand neo-buffer--expanded-node-list node neo-util--filter #[(x) "	\232?\207" [node x] 2]] 3 (#$ . 44330)])
(defalias 'neo-buffer--toggle-expand #[(node) "\301\302!?\"\207" [node neo-buffer--set-expand neo-buffer--expanded-node-p] 4])
(defalias 'neo-buffer--insert-tree #[(path depth) "\306=\203\n \307	!\210\310	!\211@\nA	\311\211\203K @\312!\313#\210\203A \314\315PT\"\210)A\211\204  *\f\311\211\205k @\316\"\210A\211\204V \311.\207" [depth path contents nodes leafs default-directory 1 neo-buffer--insert-root-entry neo-buffer--get-nodes nil neo-buffer--expanded-node-p neo-buffer--insert-dir-entry neo-buffer--insert-tree "/" neo-buffer--insert-file-entry node --dolist-tail-- expanded leaf] 5])
#@97 Refresh the NeoTree buffer.
If SAVE-POS-P is non-nil, it will be auto save current line number.
(defalias 'neo-buffer--refresh #[(save-pos-p) "\306\307 \211\203 rq\210\306))\203 \310 \210\311 \210\312 \210\313 \210\314	\315\"\307 \211\203: rq\210\316))\n\210)\317 )\207" [neo-buffer--start-node start-node rlt neotree-buffer buffer-read-only save-pos-p nil neo-global--get-buffer neo-buffer--save-cursor-pos erase-buffer neo-buffer--node-list-clear neo-buffer--insert-banner neo-buffer--insert-tree 1 t neo-buffer--goto-cursor-pos neo-header-height neo-buffer--start-line] 4 (#$ . 45307)])
#@46 Reset current directory when position moved.
(defalias 'neo-buffer--post-move #[nil "\301\302 \210\303\304\305#)\207" [arg nil neo-global--select-window neo-buffer--execute (lambda (path _) (setq default-directory (neo-path--updir btn-full-path))) (lambda (path _) (setq default-directory path))] 4 (#$ . 45920)])
#@42 Return the first button in current line.
(defalias 'neo-buffer--get-button-current-line #[nil "\304\305 \306 \307`!\206 \307	!\211\204\" \310\311\215\211\203\" \307!,\207" [btn-position pos-line-start pos-line-end current-button nil line-beginning-position line-end-position button-at ret-button (byte-code "\301!\304	\204 \305\306\304\"\210\307	!\211V\203 \305\306\304\"\210\305\306\n\"*\207" [pos-line-start next-button pos-btn pos-line-end nil throw ret-button overlay-start] 4)] 3 (#$ . 46242)])
#@111 Return filename for first button in current line.
If there is no button in current line, then return DEFAULT.
(defalias 'neo-buffer--get-filename-current-line #[(&optional default) "\302 \211\203 \303\304\"\202 	)\207" [btn default neo-buffer--get-button-current-line button-get neo-full-path] 4 (#$ . 46765)])
#@41 Lock the width size for NeoTree window.
(defalias 'neo-buffer--lock-width #[nil "\205 \302\211\207" [neo-window-fixed-size window-size-fixed width] 2 (#$ . 47086)])
#@43 Unlock the width size for NeoTree window.
(defalias 'neo-buffer--unlock-width #[nil "\301\211\207" [window-size-fixed nil] 2 (#$ . 47260)])
#@38 Rename current node as another path.
(defalias 'neo-buffer--rename-node #[nil "\304 \305!\306\211\2058 \307\310\311!\"\312\313!\"	\203, r	q\210\314\n\306\315#\210)\316\n\"\210\317\315!\210\320\321!,\207" [current-path buffer to-path msg neo-buffer--get-filename-current-line find-buffer-visiting nil format "Rename [%s] to: " neo-path--file-short-name read-file-name file-name-directory set-visited-file-name t rename-file neo-buffer--refresh message "Rename successful."] 5 (#$ . 47407) nil])
#@38 Copies current node as another path.
(defalias 'neo-buffer--copy-node #[nil "\304 \305!\306\211\2057 \307\310\311!\"\312\313!\"\314!\203+ \315\n\"\210\2020 \316\n\"\210\317\320!\210\321\322!,\207" [current-path buffer to-path msg neo-buffer--get-filename-current-line find-buffer-visiting nil format "Copy [%s] to: " neo-path--file-short-name read-file-name file-name-directory file-directory-p copy-directory copy-file neo-buffer--refresh t message "Copy successful."] 5 (#$ . 47919) nil])
#@103 Select the node that corresponds to the FILE.
If RECURSIVE-P is non nil, find files will recursively.
(defalias 'neo-buffer--select-file-node #[(file &optional recursive-p) "\306\211\211\307\f!\204 \310\f!\f\311\312\215\210\n\205? 	\306\211\2037 @\313\314\"\210A\211\204% *\315!\210\316\306!,\207" [file file-node-list file-node-find-p iter-curr-dir efile p nil file-name-absolute-p expand-file-name return (byte-code "\304!\211	B\305\n\"\203 \306\307\310\311\"\210\305\312\"\203  \311\307\310\311\"\210\202  " [iter-curr-dir file-node-list neo-buffer--start-node file-node-find-p neo-path--updir neo-path--file-equal-p t throw return nil "/"] 4) neo-buffer--set-expand t neo-buffer--save-cursor-pos neo-buffer--refresh --dolist-tail--] 5 (#$ . 48431)])
#@35 Change the tree root to ROOT-DIR.
(defalias 'neo-buffer--change-root #[(root-dir) "\304\305\n!\203 \306\n!\204 \307\310\311\"\210\312\313\n!!\211\314	!\210\315\n\304\"\210\316\304!*\207" [root-dir start-path path neo-buffer--start-node nil file-exists-p file-directory-p throw error "The path is not a valid directory." expand-file-name substitute-in-file-name cd neo-buffer--save-cursor-pos neo-buffer--refresh] 4 (#$ . 49219)])
#@50 Return the node list for the down dir selection.
(defalias 'neo-buffer--get-nodes-for-select-down-node #[(path) "\203 \302!\205 \303!\203 \304!\207\304\302!!\207\304\305	!!\207" [path neo-buffer--start-node file-name-directory neo-buffer--expanded-node-p neo-buffer--get-nodes file-name-as-directory] 3 (#$ . 49662)])
#@177 Return the node list for the sibling selection. Return nil of no nodes can
be found.
The returned list is a directory list if path is a directory, otherwise it is
a file list.
(defalias 'neo-buffer--get-nodes-for-sibling #[(path) "\205 \302\303!!\304!\203 	@\202 	A)\207" [path nodes neo-buffer--get-nodes file-name-directory file-directory-p] 3 (#$ . 49995)])
#@96 Return the next sibling of node PATH.
If PREVIOUS is non-nil the previous sibling is returned.
(defalias 'neo-buffer--sibling #[(path &optional previous) "\305!\211\205% \306	\"	G\211\205$ \307\f\203 \310\202 \311\\\n\"	8*)\207" [path nodes l i previous neo-buffer--get-nodes-for-sibling neo-buffer--get-node-index mod -1 1] 4 (#$ . 50369)])
#@190 Define the behaviors for keyboard event.
ARG is the parameter for command.
If FILE-FN is non-nil, it will executed when a file node.
If DIR-FN is non-nil, it will executed when a dir node.
(defalias 'neo-buffer--execute #[(arg &optional file-fn dir-fn) "\306 \307\211\2032 \310!?\211\203 \202 \f\211\2032 \n\"\210\311\312	\203- \313\202. \314$\210+\207" [btn-full-path is-file-p enter-fn file-fn dir-fn arg neo-buffer--get-filename-current-line nil file-directory-p run-hook-with-args neo-enter-hook file directory] 6 (#$ . 50726) "P"])
#@50 If SHOW-P is non-nil, show hidden nodes in tree.
(defalias 'neo-buffer--set-show-hidden-file-p #[(show-p) "\302\303!\207" [show-p neo-buffer--show-hidden-file-p neo-buffer--refresh t] 2 (#$ . 51284)])
#@41 Move N lines forward in NeoTree buffer.
(defalias 'neo-buffer--forward-line #[(n) "\206 \301y\210\302 \207" [n 1 neo-buffer--post-move] 1 (#$ . 51493)])
#@65 Return a formated string to be used in the `neotree' mode-line.
(defalias 'neo-mode-line--compute-format #[(parent index ndirs nfiles) "	\\\306V	\306V\205 \307\310\n#\205' \307\f\203$ \311\202% \312\"\f\2059 \307\2036 \313\2027 \314	\"\315\316!!\317\320 GGG$GX\203` \202j \306\321ZO\322P\323R\324#.\207" [ndirs nfiles nall has-dirs has-files index 0 format "[%s/%s] " " (D:%s" " (D:%s)" " F:%s)" " (F:%s)" file-name-nondirectory directory-file-name - window-width 3 "..." propertize help-echo msg-index msg-ndirs msg-nfiles parent msg-directory msg-directory-max-length] 5 (#$ . 51654)])
#@57 Make WINDOW a NeoTree window.
NeoTree buffer is BUFFER.
(defalias 'neo-window--init #[(window buffer) "\304\305 \211\203 r	q\210\306 \210))\307\n!\210\310\311\"\305 \211\203* r	q\210\312 \210))\210)\207" [rlt neotree-buffer buffer window nil neo-global--get-buffer neo-buffer--unlock-width switch-to-buffer set-window-dedicated-p t neo-buffer--lock-width] 4 (#$ . 52300)])
#@106 Zoom the NeoTree window, the METHOD should one of these options:
'maximize 'minimize 'zoom-in 'zoom-out.
(defalias 'neo-window--zoom #[(method) "\302 \210\303=\203 \304 \210\2025 \305=\203 \306\307 	\"\210\2025 \310=\203+ \311\312!\210\2025 \313=\2035 \314\312!\210\315 \207" [method neo-window-width neo-buffer--unlock-width maximize maximize-window minimize neo-util--set-window-width selected-window zoom-in shrink-window-horizontally 2 zoom-out enlarge-window-horizontally neo-buffer--lock-width] 3 (#$ . 52688)])
#@53 Return non-nil when the NeoTree window is minimize.
(defalias 'neo-window--minimize-p #[nil "\301 X\207" [neo-window-width window-width] 2 (#$ . 53218)])
#@35 Move next line in NeoTree buffer.
(defalias 'neotree-next-line #[nil "\300\301!\207" [neo-buffer--forward-line 1] 2 (#$ . 53379) nil])
#@39 Move previous line in NeoTree buffer.
(defalias 'neotree-previous-line #[nil "\300\301!\207" [neo-buffer--forward-line -1] 2 (#$ . 53520) nil])
#@115 Quick select node which specified PATH in NeoTree.
If path is nil and no buffer file name, then use DEFAULT-PATH,
(defalias 'neotree-find #[(&optional path default-path) "\203 \202\n \306 \n\203 \n\202 \307 \206 	\310\311!\204. \312 \203. \313\314!\2020 \315\f\2038 \316!\210\203? \317 \210+\320 \207" [default-path ndefault-path path npath do-open-p neo-auto-indent-point neo-path--get-working-dir buffer-file-name nil neo-global--file-in-root-p neo-global--window-exists-p yes-or-no-p "File not found in root path, do you want to change root?" t neo-global--open-and-find neo-point-auto-indent neo-global--select-window] 2 (#$ . 53671) nil])
#@167 Toggle the variable neo-click-changes-root.
If true, clicking on a directory will change the current root to
the directory instead of showing the directory contents.
(defalias 'neotree-click-changes-root-toggle #[nil "?\211\207" [neo-click-changes-root] 2 (#$ . 54336) nil])
#@88 Toggle fold a directory node.

FULL-PATH is the path of the directory.
ARG is ignored.
(defalias 'neo-open-dir #[(full-path &optional arg) "\203 \304 \207\305	!\306\307!\210\205 \n\203 \310y\210\311 )\207" [neo-click-changes-root full-path new-state neo-auto-indent-point neotree-change-root neo-buffer--toggle-expand neo-buffer--refresh t 1 neo-point-auto-indent] 2 (#$ . 54619)])
#@110 Open file or directory node in `dired-mode'.

FULL-PATH is the path of node.
ARG is same as `neo-open-file'.
(defalias 'neo-open-dired #[(full-path &optional arg) "\302!\210\303	!\207" [arg full-path neo-global--select-mru-window dired] 2 (#$ . 55014)])
#@343 Open a file node.

FULL-PATH is the file path you want to open.
If ARG is an integer then the node is opened in a window selected via
`window-numbering' (if available) according to the passed number.
If ARG is `|' then the node is opened in new vertically split window.
If ARG is `-' then the node is opened in new horizontally split window.
(defalias 'neo-open-file #[(full-path &optional arg) "\302!\210\303	!\207" [arg full-path neo-global--select-mru-window find-file] 2 (#$ . 55276)])
#@104 Open the current node is a vertically split window.
FULL-PATH and ARG are the same as `neo-open-file'.
(defalias 'neo-open-file-vertical-split #[(full-path arg) "\301\302\"\207" [full-path neo-open-file "|"] 3 (#$ . 55774)])
#@104 Open the current node is horizontally split window.
FULL-PATH and ARG are the same as `neo-open-file'.
(defalias 'neo-open-file-horizontal-split #[(full-path arg) "\301\302\"\207" [full-path neo-open-file "-"] 3 (#$ . 56007)])
#@165 Change root to current node dir.
If current node is a file, then it will do nothing.
If cannot find any node in current line, it equivalent to using `neotree-dir'.
(defalias 'neotree-change-root #[nil "\301 \210\302 \211\204 \303\304!\202 \305!)\207" [btn-full-path neo-global--select-window neo-buffer--get-filename-current-line call-interactively neotree-dir neo-global--open-dir] 3 (#$ . 56242) nil])
#@81 Select the parent directory of the current node. Change the root if
necessary. 
(defalias 'neotree-select-up-node #[nil "\304 \210\305 \211\205 \306!\307\n!	\232\203 \310!\202/ 	\203( \311	!\202/ \310\306\312!!!+\207" [btn-full-path btn-parent-dir neo-buffer--start-node root-slash neo-global--select-window neo-buffer--get-filename-current-line file-name-directory file-name-as-directory neo-global--open-dir neotree-find directory-file-name] 5 (#$ . 56656) nil])
#@291 Select an expanded directory or content directory according to the
current node, in this order:
- select the first expanded child node if the current node has one
- select the content of current node if it is expanded
- select the next expanded sibling if the current node is not expanded.
(defalias 'neotree-select-down-node #[nil "\306 \211\203 \202\f 	\307\n!\211\205~ \n	\232\204! \310\n!\203U \311\312\215\211\203/ \313\f!\202Q @A\211G\314V\203E \313@!\202P G\314V\205P \313@!*)\202~ \315\n!\310!\204q \n\232\204q \315!\202Z \n\231?\205} \313!)+\207" [btn-full-path neo-buffer--start-node path nodes expanded-dir files neo-buffer--get-filename-current-line neo-buffer--get-nodes-for-select-down-node neo-buffer--expanded-node-p break (byte-code "@\303\211\203 \n@\304	!\203 \305\306	\"\210\nA\211\204	 *\303\207" [nodes node --dolist-tail-- nil neo-buffer--expanded-node-p throw break] 4) neotree-find 0 neo-buffer--sibling dirs sibling] 3 (#$ . 57137) nil])
#@112 Select the next sibling of current node.
If the current node is the last node then the first node is selected.
(defalias 'neotree-select-next-sibling-node #[nil "\301\302 !\211\205\f \303!)\207" [sibling neo-buffer--sibling neo-buffer--get-filename-current-line neotree-find] 3 (#$ . 58144) nil])
#@116 Select the previous sibling of current node.
If the current node is the first node then the last node is selected.
(defalias 'neotree-select-previous-sibling-node #[nil "\301\302 \303\"\211\205 \304!)\207" [sibling neo-buffer--sibling neo-buffer--get-filename-current-line t neotree-find] 4 (#$ . 58450) nil])
#@68 Create a file or directory use specified FILENAME in current node.
(defalias 'neotree-create-node #[(filename) "\300\301\215\207" [rlt (byte-code "\303	G\304U\203 \305\306\303\"\210	\307\303O\310\232?\311	!\203& \312\313	\"\210\305\306\303\"\210\203I \314\315\316	\"!\203I \317\320\303	#\210\321	!\210\322\303!\210\n\203I \323	!\210?\205b \314\315\324	\"!\205b \325	!\210\321	!\210\322\303!)\207" [is-file filename neo-create-file-auto-open nil 0 throw rlt -1 "/" file-exists-p message "File %S already exists." yes-or-no-p format "Do you want to create file %S ?" write-region "" neo-buffer--save-cursor-pos neo-buffer--refresh find-file-other-window "Do you want to create directory %S?" mkdir] 4)] 2 (#$ . 58769) (let* ((current-dir (neo-buffer--get-filename-current-line neo-buffer--start-node)) (current-dir (neo-path--match-path-directory current-dir)) (filename (read-file-name "Filename:" current-dir))) (if (file-directory-p filename) (setq filename (concat filename "/"))) (list filename))])
#@22 Delete current node.
(defalias 'neotree-delete-node #[nil "\303 \304!\305\306\307\215\210\n\203 \310\311\"\210\312\313!\210+\207" [filename buffer deleted-p neo-buffer--get-filename-current-line find-buffer-visiting nil end (byte-code "\204	 \303\304\305\"\210\306!\204 \303\304\305\"\210\307\310\311\"!\204\" \303\304\305\"\210\312!\203Y \313!\2049 \314!\210\315\303\304\305\"\210\307\310\316\"!\203g \307\310\317\"!\203O \320!\210\314\315\"\210\315\202g \321!\210\n\203e \322\n!\210\315\305\207" [filename deleted-p buffer throw end nil file-exists-p yes-or-no-p format "Do you really want to delete %S?" file-directory-p neo-path--has-subfile-p delete-directory t "%S is a directory, delete it recursively?" "kill buffers for files in directory %S?" neo-util--kill-buffers-for-path delete-file kill-buffer-ask] 4) message "%S deleted." neo-buffer--refresh t] 3 (#$ . 59782) nil])
#@22 Rename current node.
(defalias 'neotree-rename-node #[nil "\300 \207" [neo-buffer--rename-node] 1 (#$ . 60693) nil])
#@20 Copy current node.
(defalias 'neotree-copy-node #[nil "\300 \207" [neo-buffer--copy-node] 1 (#$ . 60816) nil])
#@27 Toggle show hidden files.
(defalias 'neotree-hidden-file-toggle #[nil "\301?!\207" [neo-buffer--show-hidden-file-p neo-buffer--set-show-hidden-file-p] 2 (#$ . 60933) nil])
#@50 Used to bind the empty function to the shortcut.
(defalias 'neotree-empty-fn #[nil "\300\207" [nil] 1 (#$ . 61112) nil])
#@29 Refresh the NeoTree buffer.
(defalias 'neotree-refresh #[nil "\300\301!\207" [neo-buffer--refresh t] 2 (#$ . 61239) nil])
#@51 Make the NeoTree window toggle maximize/minimize.
(defalias 'neotree-stretch-toggle #[nil "\301 r\302\216\303 \210\304 \203 \305\306!\202 \305\307!+\207" [save-selected-window--state internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) neo-global--select-window neo-window--minimize-p neo-window--zoom maximize minimize] 2 (#$ . 61367) nil])
#@207 Integration with `Projectile'.

Usage:
    (setq projectile-switch-project-action 'neotree-projectile-action).

When running `projectile-switch-project' (C-c p p), `neotree' will change root
automatically.
(defalias 'neotree-projectile-action #[nil "\300\301!\203 \302\301 !\207\303\304!\207" [fboundp projectile-project-root neotree-dir error "Projectile is not available"] 2 (#$ . 61773) nil])
#@33 Toggle show the NeoTree window.
(defalias 'neotree-toggle #[nil "\300 \203 \301 \207\302 \207" [neo-global--window-exists-p neotree-hide neotree-show] 1 (#$ . 62176) nil])
#@26 Show the NeoTree window.
(defalias 'neotree-show #[nil "\203\n \301 \210\202 \302 \210\303 \207" [neo-smart-open neotree-find neo-global--open neo-global--select-window] 1 (#$ . 62355) nil])
#@27 Close the NeoTree window.
(defalias 'neotree-hide #[nil "\301 \205 \302!\207" [neo-global--window neo-global--window-exists-p delete-window] 2 (#$ . 62554) nil])
#@51 Show the NeoTree window, and change root to PATH.
(defalias 'neotree-dir #[(path) "\301!\210\302 \207" [path neo-global--open-dir neo-global--select-window] 2 (#$ . 62724) "DDirectory: "])
(defalias 'neotree 'neotree-show "Show the NeoTree window.")
(defalias 'neo-bc--make-obsolete-message #[(from to) "\302\303	#\207" [from to message "Warning: `%S' is obsolete. Use `%S' instead."] 4])
(defalias 'neo-buffer--enter-file #[(path) "\300\301\302\"\207" [neo-bc--make-obsolete-message neo-buffer--enter-file neo-open-file] 3])
(defalias 'neo-buffer--enter-dir #[(path) "\300\301\302\"\207" [neo-bc--make-obsolete-message neo-buffer--enter-dir neo-open-dir] 3])
#@66 NeoTree typical open event.
ARG are the same as `neo-open-file'.
(defalias 'neotree-enter #[(&optional arg) "\301\302\303#\207" [arg neo-buffer--execute neo-open-file neo-open-dir] 4 (#$ . 63392) "P"])
#@75 NeoTree open event, file node will opened in new vertically split window.
(defalias 'neotree-enter-vertical-split #[nil "\300\301\302\303#\207" [neo-buffer--execute nil neo-open-file-vertical-split neo-open-dir] 4 (#$ . 63601) nil])
#@77 NeoTree open event, file node will opened in new horizontally split window.
(defalias 'neotree-enter-horizontal-split #[nil "\300\301\302\303#\207" [neo-buffer--execute nil neo-open-file-horizontal-split neo-open-dir] 4 (#$ . 63840) nil])
(provide 'neotree)
