(import-macros {: g! : exec : map! : augroup!} :hibiscus.vim) (import-macros {: setup} :macros) (g! :neo_tree_remove_legacy_commands 1) (setup :neo-tree {:close_if_last_window true :window {:width 30 :mappings {: "open_with_window_picker" :S "split_with_window_picker" :s "vsplit_with_window_picker"}} :filesystem {:filtered_items {:visible true} :follow_current_file true :window {:mappings {:/ "noop" :g/ "fuzzy_finder" :f "noop" :ff (fn [] (exec [[:Telescope "find_files"]])) :fg (fn [] (exec [[:Telescope "live_grep"]])) : "custom_open" : (fn []) : (fn [])}} :commands {:custom_open (fn [state] (let [node (state.tree:get_node) quoted_path (.. "'" (.. (node:get_id) "'"))] (exec [[:silent "!file -bL --mime" quoted_path "| grep -qv '^text\\|^inode' && xdg-open" quoted_path "&"]]) (if (= vim.v.shell_error 1) ((. (require :neo-tree.sources.filesystem.commands) :open) state))))}} :renderers {:directory [[:indent] [:icon] [:current_filter] [:name] [:clipboard] {1 :diagnostics :errors_only true}] :file [[:indent] [:icon] {1 :name :use_git_status_colors true :zindex 10} [:clipboard] [:bufnr] [:modified] [:diagnostics] [:git_status]]}}) (map! [n] :f ":Neotree focus") (map! [n] :F (fn [] (exec [[:Neotree "toggle"] [:Neotree "toggle" "action=show"]]))) (augroup! :neo-tree [[FileType] [qf] "set nobuflisted|call feedkeys(\"F\")"]) ; Startup (if (or (= (vim.fn.expand "%") "") (not= (vim.fn.isdirectory (vim.fn.expand "%")) 0)) ((. (require :neo-tree.command) :_command) (vim.fn.getcwd)) ((. (require :neo-tree.command) :_command) :show (vim.fn.getcwd)))