├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── fnl └── nvim-minimap │ ├── config.fnl │ ├── float.fnl │ ├── main.fnl │ └── minimap.fnl ├── lua └── nvim-minimap │ ├── aniseed │ ├── autoload.lua │ ├── compile.lua │ ├── core.lua │ ├── deps │ │ ├── fennel.lua │ │ ├── fennelview.lua │ │ └── nvim.lua │ ├── dotfiles.lua │ ├── env.lua │ ├── eval.lua │ ├── fennel.lua │ ├── fs.lua │ ├── macros.fnl │ ├── nvim.lua │ ├── nvim │ │ └── util.lua │ ├── string.lua │ ├── test.lua │ └── view.lua │ ├── config.lua │ ├── float.lua │ ├── main.lua │ └── minimap.lua ├── plugin └── nvim-minimap.vim ├── scripts └── dep.sh └── test └── fnl └── nvim-minimap └── main-test.fnl /.gitignore: -------------------------------------------------------------------------------- 1 | /deps/ 2 | /test/lua 3 | /doc/tags 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Rintaro Okamura 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: deps compile test 2 | 3 | default: deps compile test 4 | 5 | deps: 6 | scripts/dep.sh Olical aniseed origin/master 7 | 8 | compile: 9 | rm -rf lua 10 | deps/aniseed/scripts/compile.sh 11 | 12 | # Remove this if you only want Aniseed at compile time. 13 | deps/aniseed/scripts/embed.sh aniseed nvim-minimap 14 | 15 | test: 16 | rm -rf test/lua 17 | deps/aniseed/scripts/test.sh 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | nvim-minimap 2 | === 3 | 4 | Show minimap using Neovim floating window. 5 | 6 | ![demo](https://user-images.githubusercontent.com/1588935/116887327-26f1fe80-ac65-11eb-9ec0-d998956ab546.gif) 7 | 8 | Fully written in [Fennel](https://fennel-lang.org/). Doesn't requires external libraries/commands. 9 | This plugin is built using [Olical/aniseed](https://github.com/Olical/aniseed). 10 | 11 | **Currently work in progress.** 12 | 13 | 14 | Installation 15 | --- 16 | 17 | Requires Neovim 0.5+. 18 | 19 | ### packer.nvim 20 | 21 | ```lua 22 | use 'rinx/nvim-minimap' 23 | ``` 24 | 25 | 26 | ### vim-plug 27 | 28 | ``` 29 | Plug 'rinx/nvim-minimap' 30 | ``` 31 | 32 | Commands 33 | --- 34 | 35 | - `:MinimapOpen` - show minimap window 36 | - `:MinimapClose` - close minimap window 37 | - `:MinimapToggle` - toggle 38 | - `:MinimapRefresh` - refresh minimap window 39 | 40 | 41 | Configurations 42 | --- 43 | 44 | - `g:minimap#default_auto_cmds_enabled` - Default `1`. If it is `1`, autocmds are registered when the plugin is loaded. 45 | - `g:minimap#filetype#excludes` - Default: `['help', 'qf']`. Minimap will not be shown for these filetypes. 46 | - `g:minimap#highlight#group` - Default: `MinimapCurrentLine`. highlight group of current window range. 47 | - `g:minimap#window#width` - Default: `20`. The width of floating window. 48 | - `g:minimap#window#height` - Default: `10`. The height of floating window. 49 | 50 | 51 | License 52 | --- 53 | 54 | MIT 55 | 56 | 57 | Similar Projects 58 | --- 59 | 60 | - [wfxr/minimap.vim](https://github.com/wfxr/minimap.vim) 61 | - [wfxr/code-minimap](https://github.com/wfxr/code-minimap) 62 | - [Xuyuanp/scrollbar.nvim](https://github.com/Xuyuanp/scrollbar.nvim) 63 | - [severin-lemaignan/vim-minimap](https://github.com/severin-lemaignan/vim-minimap) 64 | 65 | 66 | TODO 67 | --- 68 | 69 | - [X] Scroll automatically 70 | - [X] Highlight of current position 71 | - [ ] Configurable scaling factor 72 | - [ ] Improve performance using early break on loops 73 | - [ ] Window position 74 | - [ ] Automatically scale window 75 | -------------------------------------------------------------------------------- /fnl/nvim-minimap/config.fnl: -------------------------------------------------------------------------------- 1 | (module nvim-minimap.config 2 | {autoload {nvim aniseed.nvim 3 | a aniseed.core 4 | string aniseed.string}}) 5 | 6 | (defonce- defaults 7 | {:default_auto_cmds_enabled 1 8 | :filetype {:excludes [:help 9 | :qf]} 10 | :highlight {:group :MinimapCurrentLine} 11 | :window {:width 20 12 | :height 10}}) 13 | 14 | ;; code from Olical/conjure 15 | (defn- ks->name [ks] 16 | (.. "minimap#" (string.join "#" ks))) 17 | 18 | (defn get-in [ks] 19 | "Get value from global." 20 | (let [v (a.get nvim.g (ks->name ks))] 21 | (if v 22 | (if (and (a.table? v) 23 | (a.get v vim.type_idx) 24 | (a.get v vim.val_idx)) 25 | (a.get v vim.val_idx) 26 | v) 27 | (a.get-in defaults ks)))) 28 | 29 | (comment 30 | (->> (ks->name [:test]) 31 | (a.get nvim.g)) 32 | (get-in [:test]) 33 | (get-in [:window :height]) 34 | (get-in [:filetype :excludes])) 35 | -------------------------------------------------------------------------------- /fnl/nvim-minimap/float.fnl: -------------------------------------------------------------------------------- 1 | (module nvim-minimap.float 2 | {autoload {nvim aniseed.nvim 3 | a aniseed.core 4 | config nvim-minimap.config}}) 5 | 6 | (defonce- state 7 | {:buf-id nil 8 | :win-id nil}) 9 | 10 | (defn- min [a b] 11 | (if (< a b) a b)) 12 | 13 | (defn- editor-width [] 14 | nvim.o.columns) 15 | 16 | (defn- editor-height [] 17 | nvim.o.lines) 18 | 19 | (defn- make-buf [] 20 | (let [buf (nvim.create_buf false true)] 21 | (set state.buf-id buf) 22 | buf)) 23 | 24 | (defn- make-win [buf] 25 | (let [cur (nvim.get_current_win) 26 | opts {:relative :editor 27 | :width (min (config.get-in [:window :width]) 28 | (editor-width)) 29 | :height (min (config.get-in [:window :height]) 30 | (- (editor-height) 3)) 31 | :col (editor-width) 32 | :row 0 33 | :anchor :NE 34 | :style :minimal 35 | :focusable false} 36 | win (nvim.open_win buf 0 opts)] 37 | (nvim.win_set_option win :wrap false) 38 | (set state.win-id win) 39 | (nvim.set_current_win cur) 40 | win)) 41 | 42 | (defn open-win [] 43 | (if state.buf-id 44 | (if state.win-id 45 | state.win-id 46 | (make-win state.buf-id)) 47 | (-> (make-buf) 48 | (make-win)))) 49 | 50 | (defn close-win [] 51 | (when state.win-id 52 | (pcall nvim.win_close state.win-id true) 53 | (set state.win-id nil))) 54 | 55 | (defn write-arr-to-buf [arr] 56 | (when state.buf-id 57 | (let [trim-by-width (fn [x] 58 | (nvim.fn.strcharpart 59 | x 0 (config.get-in [:window :width])))] 60 | (->> arr 61 | (a.map trim-by-width) 62 | (nvim.buf_set_lines 63 | state.buf-id 64 | 0 65 | -1 66 | true))))) 67 | 68 | (defn- clear-highlights [] 69 | (when state.win-id 70 | (each [i h (ipairs (vim.fn.getmatches state.win-id))] 71 | (vim.fn.matchdelete h.id state.win-id)))) 72 | 73 | (defn clear-buf [] 74 | (clear-highlights) 75 | (write-arr-to-buf [])) 76 | 77 | (defn window-info [] 78 | (when state.win-id 79 | (a.first (vim.fn.getwininfo state.win-id)))) 80 | 81 | (defn highlight-range [{: top : bottom}] 82 | (when state.win-id 83 | (let [hlgroup (config.get-in [:highlight :group])] 84 | (for [i (vim.fn.floor top) (vim.fn.ceil bottom)] 85 | (vim.fn.matchaddpos hlgroup [i] 10 -1 {:window state.win-id}))))) 86 | 87 | (comment 88 | (def buf (nvim.create_buf false true)) 89 | (def opts {:relative :editor 90 | :width 20 91 | :height (editor-height) 92 | :col (editor-width) 93 | :row 0 94 | :anchor :NE 95 | :style :minimal 96 | :focusable false}) 97 | (nvim.open_win buf 0 opts) 98 | (make-buf-and-win) 99 | (open-win) 100 | (write-arr-to-buf []) 101 | (write-arr-to-buf ["test1" "test2"]) 102 | (clear-buf) 103 | (close-win) 104 | (window-info)) 105 | -------------------------------------------------------------------------------- /fnl/nvim-minimap/main.fnl: -------------------------------------------------------------------------------- 1 | (module nvim-minimap.main 2 | {autoload {nvim aniseed.nvim 3 | a aniseed.core 4 | float nvim-minimap.float 5 | config nvim-minimap.config 6 | minimap nvim-minimap.minimap}}) 7 | 8 | (defonce- state 9 | {:opened false 10 | :running-timer nil}) 11 | 12 | (defn- viml->lua [name opts] 13 | (.. "lua require('" *module-name* "')['" name "'](" 14 | (or (and opts opts.args) "") ")")) 15 | 16 | (defn- calc-display-range [scale-factor] 17 | (let [minimap-window (float.window-info) 18 | display-lines (/ minimap-window.height scale-factor) 19 | total (vim.fn.line :$) 20 | cur-win-top (vim.fn.line :w0) 21 | cur-win-bottom (vim.fn.line :w$) 22 | cur-win-lines (- cur-win-bottom cur-win-top)] 23 | (if (> cur-win-lines display-lines) 24 | {:top cur-win-top 25 | :bottom (+ cur-win-top display-lines) 26 | :current {:top 1 27 | :bottom minimap-window.height}} 28 | (let [hrest (/ (- display-lines cur-win-lines) 2) 29 | top-canditate (- cur-win-top (vim.fn.floor hrest)) 30 | bottom-canditate (+ cur-win-bottom (vim.fn.ceil hrest))] 31 | (if (> top-canditate 0) 32 | (if (<= bottom-canditate total) 33 | {:top top-canditate 34 | :bottom bottom-canditate 35 | :current {:top (* hrest scale-factor) 36 | :bottom (- minimap-window.height 37 | (* hrest scale-factor))}} 38 | {:top top-canditate 39 | :bottom :$ 40 | :current {:top (* hrest scale-factor) 41 | :bottom (* (+ hrest cur-win-lines) scale-factor)}}) 42 | (if (<= display-lines total) 43 | {:top 1 44 | :bottom (a.inc display-lines) 45 | :current {:top (* cur-win-top scale-factor) 46 | :bottom (* cur-win-bottom scale-factor)}} 47 | {:top 1 48 | :bottom :$ 49 | :current {:top (* cur-win-top scale-factor) 50 | :bottom (* cur-win-bottom scale-factor)}})))))) 51 | 52 | (defn- render [buf] 53 | (let [scale-factor 0.25 54 | range (calc-display-range scale-factor)] 55 | (-> (minimap.minimap buf {:top range.top 56 | :bottom range.bottom 57 | :scale-factor scale-factor}) 58 | (float.write-arr-to-buf)) 59 | (float.highlight-range range.current))) 60 | 61 | (defn- stop-timer [timer] 62 | (when (not (timer:is_closing)) 63 | (timer:stop) 64 | (timer:close))) 65 | 66 | (defn refresh [] 67 | (when state.opened 68 | (let [buf (vim.fn.bufnr :%) 69 | ft (. (. nvim.bo buf) :ft) 70 | excludes? (a.some 71 | (fn [x] 72 | (= x ft)) 73 | (config.get-in [:filetype :excludes]))] 74 | (when (not excludes?) 75 | (when state.running-timer 76 | (stop-timer state.running-timer) 77 | (set state.running-timer nil)) 78 | (let [timer (vim.loop.new_timer)] 79 | (timer:start 80 | 20 81 | 0 82 | (vim.schedule_wrap 83 | (fn [] 84 | (float.clear-buf) 85 | (render buf) 86 | (stop-timer timer)))) 87 | (set state.running-timer timer)))))) 88 | 89 | (defn open [] 90 | (let [buf (vim.fn.bufnr :%)] 91 | (set state.opened true) 92 | (float.open-win) 93 | (render buf))) 94 | 95 | (defn close [] 96 | (set state.opened false) 97 | (float.close-win)) 98 | 99 | (defn toggle [] 100 | (if state.opened 101 | (close) 102 | (open))) 103 | 104 | (defn- init-commands [] 105 | (nvim.ex.command_ :MinimapOpen (viml->lua :open {})) 106 | (nvim.ex.command_ :MinimapClose (viml->lua :close {})) 107 | (nvim.ex.command_ :MinimapToggle (viml->lua :toggle {})) 108 | (nvim.ex.command_ :MinimapRefresh (viml->lua :refresh {}))) 109 | 110 | (defn- init-autocmds [] 111 | (nvim.ex.augroup :MinimapAutocmds) 112 | (nvim.ex.autocmd_) 113 | (nvim.ex.autocmd 114 | "WinEnter,BufEnter,FocusGained,CursorMoved,CursorMovedI,VimResized" "*" 115 | (.. "silent! " (viml->lua :refresh {}))) 116 | (nvim.ex.augroup :END)) 117 | 118 | (defn- define-highlights [] 119 | (nvim.ex.highlight "MinimapCurrentLine ctermfg=green guifg=green")) 120 | 121 | (defn init [] 122 | (init-commands) 123 | (define-highlights) 124 | (when (= (config.get-in [:default_auto_cmds_enabled]) 1) 125 | (init-autocmds))) 126 | 127 | (comment 128 | (open) 129 | (close) 130 | (toggle) 131 | (render (vim.fn.bufnr :%)) 132 | (refresh)) 133 | -------------------------------------------------------------------------------- /fnl/nvim-minimap/minimap.fnl: -------------------------------------------------------------------------------- 1 | (module nvim-minimap.minimap 2 | {autoload {nvim aniseed.nvim 3 | a aniseed.core 4 | string aniseed.string}}) 5 | 6 | ;; this table is came from wfxr/code-minimap 7 | (defonce- braille-table 8 | ["⠀" "⠁" "⠂" "⠃" "⠄" "⠅" "⠆" "⠇" "⡀" "⡁" "⡂" "⡃" "⡄" "⡅" "⡆" "⡇" 9 | "⠈" "⠉" "⠊" "⠋" "⠌" "⠍" "⠎" "⠏" "⡈" "⡉" "⡊" "⡋" "⡌" "⡍" "⡎" "⡏" 10 | "⠐" "⠑" "⠒" "⠓" "⠔" "⠕" "⠖" "⠗" "⡐" "⡑" "⡒" "⡓" "⡔" "⡕" "⡖" "⡗" 11 | "⠘" "⠙" "⠚" "⠛" "⠜" "⠝" "⠞" "⠟" "⡘" "⡙" "⡚" "⡛" "⡜" "⡝" "⡞" "⡟" 12 | "⠠" "⠡" "⠢" "⠣" "⠤" "⠥" "⠦" "⠧" "⡠" "⡡" "⡢" "⡣" "⡤" "⡥" "⡦" "⡧" 13 | "⠨" "⠩" "⠪" "⠫" "⠬" "⠭" "⠮" "⠯" "⡨" "⡩" "⡪" "⡫" "⡬" "⡭" "⡮" "⡯" 14 | "⠰" "⠱" "⠲" "⠳" "⠴" "⠵" "⠶" "⠷" "⡰" "⡱" "⡲" "⡳" "⡴" "⡵" "⡶" "⡷" 15 | "⠸" "⠹" "⠺" "⠻" "⠼" "⠽" "⠾" "⠿" "⡸" "⡹" "⡺" "⡻" "⡼" "⡽" "⡾" "⡿" 16 | "⢀" "⢁" "⢂" "⢃" "⢄" "⢅" "⢆" "⢇" "⣀" "⣁" "⣂" "⣃" "⣄" "⣅" "⣆" "⣇" 17 | "⢈" "⢉" "⢊" "⢋" "⢌" "⢍" "⢎" "⢏" "⣈" "⣉" "⣊" "⣋" "⣌" "⣍" "⣎" "⣏" 18 | "⢐" "⢑" "⢒" "⢓" "⢔" "⢕" "⢖" "⢗" "⣐" "⣑" "⣒" "⣓" "⣔" "⣕" "⣖" "⣗" 19 | "⢘" "⢙" "⢚" "⢛" "⢜" "⢝" "⢞" "⢟" "⣘" "⣙" "⣚" "⣛" "⣜" "⣝" "⣞" "⣟" 20 | "⢠" "⢡" "⢢" "⢣" "⢤" "⢥" "⢦" "⢧" "⣠" "⣡" "⣢" "⣣" "⣤" "⣥" "⣦" "⣧" 21 | "⢨" "⢩" "⢪" "⢫" "⢬" "⢭" "⢮" "⢯" "⣨" "⣩" "⣪" "⣫" "⣬" "⣭" "⣮" "⣯" 22 | "⢰" "⢱" "⢲" "⢳" "⢴" "⢵" "⢶" "⢷" "⣰" "⣱" "⣲" "⣳" "⣴" "⣵" "⣶" "⣷" 23 | "⢸" "⢹" "⢺" "⢻" "⢼" "⢽" "⢾" "⢿" "⣸" "⣹" "⣺" "⣻" "⣼" "⣽" "⣾" "⣿"]) 24 | 25 | (defn- braille-idx [x y] 26 | "returns an index to enable specified place (x, y) of braille. 27 | x: [0-1], y: [0-3]" 28 | (* (^ 2 y) (^ 16 x))) 29 | 30 | (defn- ->braille [...] 31 | (->> [...] 32 | (a.reduce (fn [acc x] 33 | (+ acc x)) 0) 34 | (a.inc) 35 | (. braille-table))) 36 | 37 | (defn- get-buffer-lines [buf top bottom] 38 | (vim.fn.getbufline buf top bottom)) 39 | 40 | (defn- lines->range-list [lines] 41 | (let [f (fn [l] 42 | (let [ll (length l) 43 | t {:begin ll 44 | :end 0} 45 | idx-of (fn [l i] 46 | (let [idx (a.inc i)] 47 | (l:sub idx idx)))] 48 | (for [i 0 ll :until (< t.begin ll)] 49 | (when (not (string.blank? (idx-of l i))) 50 | (set t.begin i))) 51 | (for [i ll 0 -1 :until (> t.end 1)] 52 | (when (not (string.blank? (idx-of l i))) 53 | (set t.end i))) 54 | t))] 55 | (a.map f lines))) 56 | 57 | (defn- scale [factor ls] 58 | (let [x-factor factor 59 | ; y-factor (* factor 4) ;; TODO: y-scale 60 | ->scale (fn [{: begin : end}] 61 | {:begin (* begin x-factor) 62 | :end (* end x-factor)})] 63 | (a.map ->scale ls))) 64 | 65 | (defn- ->chunks [n ls] 66 | (let [t {:result [] 67 | :tmp [] 68 | :i 0}] 69 | (each [i l (ipairs ls)] 70 | (table.insert t.tmp l) 71 | (if (= t.i (a.dec n)) 72 | (do 73 | (table.insert t.result t.tmp) 74 | (set t.tmp []) 75 | (set t.i 0)) 76 | (set t.i (a.inc t.i)))) 77 | (when (not (a.empty? t.tmp)) 78 | (table.insert t.result t.tmp)) 79 | t.result)) 80 | 81 | (defn- ->line [chunk] 82 | (var result "") 83 | (for [i 0 100 2] ; TODO: early break 84 | (var b-idx 0) 85 | (each [j v (ipairs chunk)] 86 | (let [{: begin : end} v 87 | di (a.dec i) 88 | dj (a.dec j)] 89 | (when (and (<= begin di) 90 | (> end di)) 91 | (set b-idx (+ b-idx (braille-idx 0 dj)))) 92 | (when (and (<= begin i) 93 | (> end i)) 94 | (set b-idx (+ b-idx (braille-idx 1 dj)))) 95 | )) 96 | (set result (.. result (->braille b-idx)))) 97 | result) 98 | 99 | (defn- ->minimap-lines [chunks] 100 | (a.map ->line chunks)) 101 | 102 | (defn minimap [buf {: top 103 | : bottom 104 | : scale-factor}] 105 | (->> (get-buffer-lines buf top bottom) 106 | (lines->range-list) 107 | (scale scale-factor) 108 | (->chunks 4) 109 | (->minimap-lines))) 110 | 111 | (comment 112 | (->braille (braille-idx 0 0)) 113 | (->braille (braille-idx 0 0) 114 | (braille-idx 1 0) 115 | (braille-idx 0 2)) 116 | 117 | (scale 0.25 [{:begin 0 :end 24} 118 | {:begin 19 :end 28} 119 | {:begin 19 :end 38} 120 | {:begin 2 :end 48}]) 121 | 122 | (->chunks 4 [:a :b :c :d :e :f :g :h :i :j]) 123 | 124 | (->line [{:begin 0 :end 24} 125 | {:begin 19 :end 28} 126 | {:begin 19 :end 38} 127 | {:begin 2 :end 48}]) 128 | 129 | (minimap (vim.fn.bufnr :%))) 130 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/autoload.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.autoload" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local _2amodule_2a = _0_0 35 | local _2amodule_name_2a = "nvim-minimap.aniseed.autoload" 36 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 37 | local autoload0 38 | do 39 | local v_0_ 40 | do 41 | local v_0_0 42 | local function autoload1(name) 43 | local function _2_(t, k) 44 | return require(name)[k] 45 | end 46 | local function _3_(t, k, v) 47 | require(name)[k] = v 48 | return nil 49 | end 50 | return setmetatable({["aniseed/autoload?"] = true}, {__index = _2_, __newindex = _3_}) 51 | end 52 | v_0_0 = autoload1 53 | _0_0["autoload"] = v_0_0 54 | v_0_ = v_0_0 55 | end 56 | local t_0_ = (_0_0)["aniseed/locals"] 57 | t_0_["autoload"] = v_0_ 58 | autoload0 = v_0_ 59 | end 60 | return nil 61 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/compile.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.compile" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.aniseed.fennel"), autoload("nvim-minimap.aniseed.fs"), autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", fennel = "nvim-minimap.aniseed.fennel", fs = "nvim-minimap.aniseed.fs", nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local a = _local_0_[1] 35 | local fennel = _local_0_[2] 36 | local fs = _local_0_[3] 37 | local nvim = _local_0_[4] 38 | local _2amodule_2a = _0_0 39 | local _2amodule_name_2a = "nvim-minimap.aniseed.compile" 40 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 41 | local macros_prefix 42 | do 43 | local v_0_ 44 | do 45 | local v_0_0 46 | local function macros_prefix0(code) 47 | local macros_module = "nvim-minimap.aniseed.macros" 48 | return ("(require-macros \"" .. macros_module .. "\")\n" .. code) 49 | end 50 | v_0_0 = macros_prefix0 51 | _0_0["macros-prefix"] = v_0_0 52 | v_0_ = v_0_0 53 | end 54 | local t_0_ = (_0_0)["aniseed/locals"] 55 | t_0_["macros-prefix"] = v_0_ 56 | macros_prefix = v_0_ 57 | end 58 | local str 59 | do 60 | local v_0_ 61 | do 62 | local v_0_0 63 | local function str0(code, opts) 64 | local function _2_() 65 | return fennel.compileString(macros_prefix(code), a.merge({["compiler-env"] = _G}, opts)) 66 | end 67 | return xpcall(_2_, fennel.traceback) 68 | end 69 | v_0_0 = str0 70 | _0_0["str"] = v_0_0 71 | v_0_ = v_0_0 72 | end 73 | local t_0_ = (_0_0)["aniseed/locals"] 74 | t_0_["str"] = v_0_ 75 | str = v_0_ 76 | end 77 | local file 78 | do 79 | local v_0_ 80 | do 81 | local v_0_0 82 | local function file0(src, dest, opts) 83 | if ((a["table?"](opts) and opts.force) or (nvim.fn.getftime(src) > nvim.fn.getftime(dest))) then 84 | local code = a.slurp(src) 85 | local _2_0, _3_0 = str(code, {filename = src}) 86 | if ((_2_0 == false) and (nil ~= _3_0)) then 87 | local err = _3_0 88 | return nvim.err_writeln(err) 89 | elseif ((_2_0 == true) and (nil ~= _3_0)) then 90 | local result = _3_0 91 | fs.mkdirp(fs.basename(dest)) 92 | return a.spit(dest, result) 93 | end 94 | end 95 | end 96 | v_0_0 = file0 97 | _0_0["file"] = v_0_0 98 | v_0_ = v_0_0 99 | end 100 | local t_0_ = (_0_0)["aniseed/locals"] 101 | t_0_["file"] = v_0_ 102 | file = v_0_ 103 | end 104 | local glob 105 | do 106 | local v_0_ 107 | do 108 | local v_0_0 109 | local function glob0(src_expr, src_dir, dest_dir, opts) 110 | local src_dir_len = a.inc(string.len(src_dir)) 111 | local src_paths 112 | local function _2_(path) 113 | return string.sub(path, src_dir_len) 114 | end 115 | src_paths = a.map(_2_, nvim.fn.globpath(src_dir, src_expr, true, true)) 116 | for _, path in ipairs(src_paths) do 117 | if (a.get(opts, "include-macros-suffix?") or not string.match(path, "macros.fnl$")) then 118 | file((src_dir .. path), string.gsub((dest_dir .. path), ".fnl$", ".lua"), opts) 119 | end 120 | end 121 | return nil 122 | end 123 | v_0_0 = glob0 124 | _0_0["glob"] = v_0_0 125 | v_0_ = v_0_0 126 | end 127 | local t_0_ = (_0_0)["aniseed/locals"] 128 | t_0_["glob"] = v_0_ 129 | glob = v_0_ 130 | end 131 | return nil 132 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/core.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.core" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.view")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {view = "nvim-minimap.aniseed.view"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local view = _local_0_[1] 35 | local _2amodule_2a = _0_0 36 | local _2amodule_name_2a = "nvim-minimap.aniseed.core" 37 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 38 | math.randomseed(os.time()) 39 | local rand 40 | do 41 | local v_0_ 42 | do 43 | local v_0_0 44 | local function rand0(n) 45 | return (math.random() * (n or 1)) 46 | end 47 | v_0_0 = rand0 48 | _0_0["rand"] = v_0_0 49 | v_0_ = v_0_0 50 | end 51 | local t_0_ = (_0_0)["aniseed/locals"] 52 | t_0_["rand"] = v_0_ 53 | rand = v_0_ 54 | end 55 | local string_3f 56 | do 57 | local v_0_ 58 | do 59 | local v_0_0 60 | local function string_3f0(x) 61 | return ("string" == type(x)) 62 | end 63 | v_0_0 = string_3f0 64 | _0_0["string?"] = v_0_0 65 | v_0_ = v_0_0 66 | end 67 | local t_0_ = (_0_0)["aniseed/locals"] 68 | t_0_["string?"] = v_0_ 69 | string_3f = v_0_ 70 | end 71 | local nil_3f 72 | do 73 | local v_0_ 74 | do 75 | local v_0_0 76 | local function nil_3f0(x) 77 | return (nil == x) 78 | end 79 | v_0_0 = nil_3f0 80 | _0_0["nil?"] = v_0_0 81 | v_0_ = v_0_0 82 | end 83 | local t_0_ = (_0_0)["aniseed/locals"] 84 | t_0_["nil?"] = v_0_ 85 | nil_3f = v_0_ 86 | end 87 | local table_3f 88 | do 89 | local v_0_ 90 | do 91 | local v_0_0 92 | local function table_3f0(x) 93 | return ("table" == type(x)) 94 | end 95 | v_0_0 = table_3f0 96 | _0_0["table?"] = v_0_0 97 | v_0_ = v_0_0 98 | end 99 | local t_0_ = (_0_0)["aniseed/locals"] 100 | t_0_["table?"] = v_0_ 101 | table_3f = v_0_ 102 | end 103 | local count 104 | do 105 | local v_0_ 106 | do 107 | local v_0_0 108 | local function count0(xs) 109 | if table_3f(xs) then 110 | return table.maxn(xs) 111 | elseif not xs then 112 | return 0 113 | else 114 | return #xs 115 | end 116 | end 117 | v_0_0 = count0 118 | _0_0["count"] = v_0_0 119 | v_0_ = v_0_0 120 | end 121 | local t_0_ = (_0_0)["aniseed/locals"] 122 | t_0_["count"] = v_0_ 123 | count = v_0_ 124 | end 125 | local empty_3f 126 | do 127 | local v_0_ 128 | do 129 | local v_0_0 130 | local function empty_3f0(xs) 131 | return (0 == count(xs)) 132 | end 133 | v_0_0 = empty_3f0 134 | _0_0["empty?"] = v_0_0 135 | v_0_ = v_0_0 136 | end 137 | local t_0_ = (_0_0)["aniseed/locals"] 138 | t_0_["empty?"] = v_0_ 139 | empty_3f = v_0_ 140 | end 141 | local first 142 | do 143 | local v_0_ 144 | do 145 | local v_0_0 146 | local function first0(xs) 147 | if xs then 148 | return xs[1] 149 | end 150 | end 151 | v_0_0 = first0 152 | _0_0["first"] = v_0_0 153 | v_0_ = v_0_0 154 | end 155 | local t_0_ = (_0_0)["aniseed/locals"] 156 | t_0_["first"] = v_0_ 157 | first = v_0_ 158 | end 159 | local second 160 | do 161 | local v_0_ 162 | do 163 | local v_0_0 164 | local function second0(xs) 165 | if xs then 166 | return xs[2] 167 | end 168 | end 169 | v_0_0 = second0 170 | _0_0["second"] = v_0_0 171 | v_0_ = v_0_0 172 | end 173 | local t_0_ = (_0_0)["aniseed/locals"] 174 | t_0_["second"] = v_0_ 175 | second = v_0_ 176 | end 177 | local last 178 | do 179 | local v_0_ 180 | do 181 | local v_0_0 182 | local function last0(xs) 183 | if xs then 184 | return xs[count(xs)] 185 | end 186 | end 187 | v_0_0 = last0 188 | _0_0["last"] = v_0_0 189 | v_0_ = v_0_0 190 | end 191 | local t_0_ = (_0_0)["aniseed/locals"] 192 | t_0_["last"] = v_0_ 193 | last = v_0_ 194 | end 195 | local inc 196 | do 197 | local v_0_ 198 | do 199 | local v_0_0 200 | local function inc0(n) 201 | return (n + 1) 202 | end 203 | v_0_0 = inc0 204 | _0_0["inc"] = v_0_0 205 | v_0_ = v_0_0 206 | end 207 | local t_0_ = (_0_0)["aniseed/locals"] 208 | t_0_["inc"] = v_0_ 209 | inc = v_0_ 210 | end 211 | local dec 212 | do 213 | local v_0_ 214 | do 215 | local v_0_0 216 | local function dec0(n) 217 | return (n - 1) 218 | end 219 | v_0_0 = dec0 220 | _0_0["dec"] = v_0_0 221 | v_0_ = v_0_0 222 | end 223 | local t_0_ = (_0_0)["aniseed/locals"] 224 | t_0_["dec"] = v_0_ 225 | dec = v_0_ 226 | end 227 | local even_3f 228 | do 229 | local v_0_ 230 | do 231 | local v_0_0 232 | local function even_3f0(n) 233 | return ((n % 2) == 0) 234 | end 235 | v_0_0 = even_3f0 236 | _0_0["even?"] = v_0_0 237 | v_0_ = v_0_0 238 | end 239 | local t_0_ = (_0_0)["aniseed/locals"] 240 | t_0_["even?"] = v_0_ 241 | even_3f = v_0_ 242 | end 243 | local odd_3f 244 | do 245 | local v_0_ 246 | do 247 | local v_0_0 248 | local function odd_3f0(n) 249 | return not even_3f(n) 250 | end 251 | v_0_0 = odd_3f0 252 | _0_0["odd?"] = v_0_0 253 | v_0_ = v_0_0 254 | end 255 | local t_0_ = (_0_0)["aniseed/locals"] 256 | t_0_["odd?"] = v_0_ 257 | odd_3f = v_0_ 258 | end 259 | local keys 260 | do 261 | local v_0_ 262 | do 263 | local v_0_0 264 | local function keys0(t) 265 | local result = {} 266 | if t then 267 | for k, _ in pairs(t) do 268 | table.insert(result, k) 269 | end 270 | end 271 | return result 272 | end 273 | v_0_0 = keys0 274 | _0_0["keys"] = v_0_0 275 | v_0_ = v_0_0 276 | end 277 | local t_0_ = (_0_0)["aniseed/locals"] 278 | t_0_["keys"] = v_0_ 279 | keys = v_0_ 280 | end 281 | local vals 282 | do 283 | local v_0_ 284 | do 285 | local v_0_0 286 | local function vals0(t) 287 | local result = {} 288 | if t then 289 | for _, v in pairs(t) do 290 | table.insert(result, v) 291 | end 292 | end 293 | return result 294 | end 295 | v_0_0 = vals0 296 | _0_0["vals"] = v_0_0 297 | v_0_ = v_0_0 298 | end 299 | local t_0_ = (_0_0)["aniseed/locals"] 300 | t_0_["vals"] = v_0_ 301 | vals = v_0_ 302 | end 303 | local kv_pairs 304 | do 305 | local v_0_ 306 | do 307 | local v_0_0 308 | local function kv_pairs0(t) 309 | local result = {} 310 | if t then 311 | for k, v in pairs(t) do 312 | table.insert(result, {k, v}) 313 | end 314 | end 315 | return result 316 | end 317 | v_0_0 = kv_pairs0 318 | _0_0["kv-pairs"] = v_0_0 319 | v_0_ = v_0_0 320 | end 321 | local t_0_ = (_0_0)["aniseed/locals"] 322 | t_0_["kv-pairs"] = v_0_ 323 | kv_pairs = v_0_ 324 | end 325 | local run_21 326 | do 327 | local v_0_ 328 | do 329 | local v_0_0 330 | local function run_210(f, xs) 331 | if xs then 332 | local nxs = count(xs) 333 | if (nxs > 0) then 334 | for i = 1, nxs do 335 | f(xs[i]) 336 | end 337 | return nil 338 | end 339 | end 340 | end 341 | v_0_0 = run_210 342 | _0_0["run!"] = v_0_0 343 | v_0_ = v_0_0 344 | end 345 | local t_0_ = (_0_0)["aniseed/locals"] 346 | t_0_["run!"] = v_0_ 347 | run_21 = v_0_ 348 | end 349 | local filter 350 | do 351 | local v_0_ 352 | do 353 | local v_0_0 354 | local function filter0(f, xs) 355 | local result = {} 356 | local function _2_(x) 357 | if f(x) then 358 | return table.insert(result, x) 359 | end 360 | end 361 | run_21(_2_, xs) 362 | return result 363 | end 364 | v_0_0 = filter0 365 | _0_0["filter"] = v_0_0 366 | v_0_ = v_0_0 367 | end 368 | local t_0_ = (_0_0)["aniseed/locals"] 369 | t_0_["filter"] = v_0_ 370 | filter = v_0_ 371 | end 372 | local map 373 | do 374 | local v_0_ 375 | do 376 | local v_0_0 377 | local function map0(f, xs) 378 | local result = {} 379 | local function _2_(x) 380 | local mapped = f(x) 381 | local function _3_() 382 | if (0 == select("#", mapped)) then 383 | return nil 384 | else 385 | return mapped 386 | end 387 | end 388 | return table.insert(result, _3_()) 389 | end 390 | run_21(_2_, xs) 391 | return result 392 | end 393 | v_0_0 = map0 394 | _0_0["map"] = v_0_0 395 | v_0_ = v_0_0 396 | end 397 | local t_0_ = (_0_0)["aniseed/locals"] 398 | t_0_["map"] = v_0_ 399 | map = v_0_ 400 | end 401 | local map_indexed 402 | do 403 | local v_0_ 404 | do 405 | local v_0_0 406 | local function map_indexed0(f, xs) 407 | return map(f, kv_pairs(xs)) 408 | end 409 | v_0_0 = map_indexed0 410 | _0_0["map-indexed"] = v_0_0 411 | v_0_ = v_0_0 412 | end 413 | local t_0_ = (_0_0)["aniseed/locals"] 414 | t_0_["map-indexed"] = v_0_ 415 | map_indexed = v_0_ 416 | end 417 | local identity 418 | do 419 | local v_0_ 420 | do 421 | local v_0_0 422 | local function identity0(x) 423 | return x 424 | end 425 | v_0_0 = identity0 426 | _0_0["identity"] = v_0_0 427 | v_0_ = v_0_0 428 | end 429 | local t_0_ = (_0_0)["aniseed/locals"] 430 | t_0_["identity"] = v_0_ 431 | identity = v_0_ 432 | end 433 | local reduce 434 | do 435 | local v_0_ 436 | do 437 | local v_0_0 438 | local function reduce0(f, init, xs) 439 | local result = init 440 | local function _2_(x) 441 | result = f(result, x) 442 | return nil 443 | end 444 | run_21(_2_, xs) 445 | return result 446 | end 447 | v_0_0 = reduce0 448 | _0_0["reduce"] = v_0_0 449 | v_0_ = v_0_0 450 | end 451 | local t_0_ = (_0_0)["aniseed/locals"] 452 | t_0_["reduce"] = v_0_ 453 | reduce = v_0_ 454 | end 455 | local some 456 | do 457 | local v_0_ 458 | do 459 | local v_0_0 460 | local function some0(f, xs) 461 | local result = nil 462 | local n = 1 463 | while (nil_3f(result) and (n <= count(xs))) do 464 | local candidate = f(xs[n]) 465 | if candidate then 466 | result = candidate 467 | end 468 | n = inc(n) 469 | end 470 | return result 471 | end 472 | v_0_0 = some0 473 | _0_0["some"] = v_0_0 474 | v_0_ = v_0_0 475 | end 476 | local t_0_ = (_0_0)["aniseed/locals"] 477 | t_0_["some"] = v_0_ 478 | some = v_0_ 479 | end 480 | local butlast 481 | do 482 | local v_0_ 483 | do 484 | local v_0_0 485 | local function butlast0(xs) 486 | local total = count(xs) 487 | local function _3_(_2_0) 488 | local _arg_0_ = _2_0 489 | local n = _arg_0_[1] 490 | local v = _arg_0_[2] 491 | return (n ~= total) 492 | end 493 | return map(second, filter(_3_, kv_pairs(xs))) 494 | end 495 | v_0_0 = butlast0 496 | _0_0["butlast"] = v_0_0 497 | v_0_ = v_0_0 498 | end 499 | local t_0_ = (_0_0)["aniseed/locals"] 500 | t_0_["butlast"] = v_0_ 501 | butlast = v_0_ 502 | end 503 | local rest 504 | do 505 | local v_0_ 506 | do 507 | local v_0_0 508 | local function rest0(xs) 509 | local function _3_(_2_0) 510 | local _arg_0_ = _2_0 511 | local n = _arg_0_[1] 512 | local v = _arg_0_[2] 513 | return (n ~= 1) 514 | end 515 | return map(second, filter(_3_, kv_pairs(xs))) 516 | end 517 | v_0_0 = rest0 518 | _0_0["rest"] = v_0_0 519 | v_0_ = v_0_0 520 | end 521 | local t_0_ = (_0_0)["aniseed/locals"] 522 | t_0_["rest"] = v_0_ 523 | rest = v_0_ 524 | end 525 | local concat 526 | do 527 | local v_0_ 528 | do 529 | local v_0_0 530 | local function concat0(...) 531 | local result = {} 532 | local function _2_(xs) 533 | local function _3_(x) 534 | return table.insert(result, x) 535 | end 536 | return run_21(_3_, xs) 537 | end 538 | run_21(_2_, {...}) 539 | return result 540 | end 541 | v_0_0 = concat0 542 | _0_0["concat"] = v_0_0 543 | v_0_ = v_0_0 544 | end 545 | local t_0_ = (_0_0)["aniseed/locals"] 546 | t_0_["concat"] = v_0_ 547 | concat = v_0_ 548 | end 549 | local mapcat 550 | do 551 | local v_0_ 552 | do 553 | local v_0_0 554 | local function mapcat0(f, xs) 555 | return concat(unpack(map(f, xs))) 556 | end 557 | v_0_0 = mapcat0 558 | _0_0["mapcat"] = v_0_0 559 | v_0_ = v_0_0 560 | end 561 | local t_0_ = (_0_0)["aniseed/locals"] 562 | t_0_["mapcat"] = v_0_ 563 | mapcat = v_0_ 564 | end 565 | local pr_str 566 | do 567 | local v_0_ 568 | do 569 | local v_0_0 570 | local function pr_str0(...) 571 | local s 572 | local function _2_(x) 573 | return view.serialise(x, {["one-line"] = true}) 574 | end 575 | s = table.concat(map(_2_, {...}), " ") 576 | if (nil_3f(s) or ("" == s)) then 577 | return "nil" 578 | else 579 | return s 580 | end 581 | end 582 | v_0_0 = pr_str0 583 | _0_0["pr-str"] = v_0_0 584 | v_0_ = v_0_0 585 | end 586 | local t_0_ = (_0_0)["aniseed/locals"] 587 | t_0_["pr-str"] = v_0_ 588 | pr_str = v_0_ 589 | end 590 | local str 591 | do 592 | local v_0_ 593 | do 594 | local v_0_0 595 | local function str0(...) 596 | local function _2_(acc, s) 597 | return (acc .. s) 598 | end 599 | local function _3_(s) 600 | if string_3f(s) then 601 | return s 602 | else 603 | return pr_str(s) 604 | end 605 | end 606 | return reduce(_2_, "", map(_3_, {...})) 607 | end 608 | v_0_0 = str0 609 | _0_0["str"] = v_0_0 610 | v_0_ = v_0_0 611 | end 612 | local t_0_ = (_0_0)["aniseed/locals"] 613 | t_0_["str"] = v_0_ 614 | str = v_0_ 615 | end 616 | local println 617 | do 618 | local v_0_ 619 | do 620 | local v_0_0 621 | local function println0(...) 622 | local function _2_(acc, s) 623 | return (acc .. s) 624 | end 625 | local function _4_(_3_0) 626 | local _arg_0_ = _3_0 627 | local i = _arg_0_[1] 628 | local s = _arg_0_[2] 629 | if (1 == i) then 630 | return s 631 | else 632 | return (" " .. s) 633 | end 634 | end 635 | local function _5_(s) 636 | if string_3f(s) then 637 | return s 638 | else 639 | return pr_str(s) 640 | end 641 | end 642 | return print(reduce(_2_, "", map_indexed(_4_, map(_5_, {...})))) 643 | end 644 | v_0_0 = println0 645 | _0_0["println"] = v_0_0 646 | v_0_ = v_0_0 647 | end 648 | local t_0_ = (_0_0)["aniseed/locals"] 649 | t_0_["println"] = v_0_ 650 | println = v_0_ 651 | end 652 | local pr 653 | do 654 | local v_0_ 655 | do 656 | local v_0_0 657 | local function pr0(...) 658 | return println(pr_str(...)) 659 | end 660 | v_0_0 = pr0 661 | _0_0["pr"] = v_0_0 662 | v_0_ = v_0_0 663 | end 664 | local t_0_ = (_0_0)["aniseed/locals"] 665 | t_0_["pr"] = v_0_ 666 | pr = v_0_ 667 | end 668 | local slurp 669 | do 670 | local v_0_ 671 | do 672 | local v_0_0 673 | local function slurp0(path, silent_3f) 674 | local _2_0, _3_0 = io.open(path, "r") 675 | if ((_2_0 == nil) and (nil ~= _3_0)) then 676 | local msg = _3_0 677 | return nil 678 | elseif (nil ~= _2_0) then 679 | local f = _2_0 680 | local content = f:read("*all") 681 | f:close() 682 | return content 683 | end 684 | end 685 | v_0_0 = slurp0 686 | _0_0["slurp"] = v_0_0 687 | v_0_ = v_0_0 688 | end 689 | local t_0_ = (_0_0)["aniseed/locals"] 690 | t_0_["slurp"] = v_0_ 691 | slurp = v_0_ 692 | end 693 | local spit 694 | do 695 | local v_0_ 696 | do 697 | local v_0_0 698 | local function spit0(path, content) 699 | local _2_0, _3_0 = io.open(path, "w") 700 | if ((_2_0 == nil) and (nil ~= _3_0)) then 701 | local msg = _3_0 702 | return error(("Could not open file: " .. msg)) 703 | elseif (nil ~= _2_0) then 704 | local f = _2_0 705 | f:write(content) 706 | f:close() 707 | return nil 708 | end 709 | end 710 | v_0_0 = spit0 711 | _0_0["spit"] = v_0_0 712 | v_0_ = v_0_0 713 | end 714 | local t_0_ = (_0_0)["aniseed/locals"] 715 | t_0_["spit"] = v_0_ 716 | spit = v_0_ 717 | end 718 | local merge_21 719 | do 720 | local v_0_ 721 | do 722 | local v_0_0 723 | local function merge_210(base, ...) 724 | local function _2_(acc, m) 725 | if m then 726 | for k, v in pairs(m) do 727 | acc[k] = v 728 | end 729 | end 730 | return acc 731 | end 732 | return reduce(_2_, (base or {}), {...}) 733 | end 734 | v_0_0 = merge_210 735 | _0_0["merge!"] = v_0_0 736 | v_0_ = v_0_0 737 | end 738 | local t_0_ = (_0_0)["aniseed/locals"] 739 | t_0_["merge!"] = v_0_ 740 | merge_21 = v_0_ 741 | end 742 | local merge 743 | do 744 | local v_0_ 745 | do 746 | local v_0_0 747 | local function merge0(...) 748 | return merge_21({}, ...) 749 | end 750 | v_0_0 = merge0 751 | _0_0["merge"] = v_0_0 752 | v_0_ = v_0_0 753 | end 754 | local t_0_ = (_0_0)["aniseed/locals"] 755 | t_0_["merge"] = v_0_ 756 | merge = v_0_ 757 | end 758 | local select_keys 759 | do 760 | local v_0_ 761 | do 762 | local v_0_0 763 | local function select_keys0(t, ks) 764 | if (t and ks) then 765 | local function _2_(acc, k) 766 | if k then 767 | acc[k] = t[k] 768 | end 769 | return acc 770 | end 771 | return reduce(_2_, {}, ks) 772 | else 773 | return {} 774 | end 775 | end 776 | v_0_0 = select_keys0 777 | _0_0["select-keys"] = v_0_0 778 | v_0_ = v_0_0 779 | end 780 | local t_0_ = (_0_0)["aniseed/locals"] 781 | t_0_["select-keys"] = v_0_ 782 | select_keys = v_0_ 783 | end 784 | local get 785 | do 786 | local v_0_ 787 | do 788 | local v_0_0 789 | local function get0(t, k, d) 790 | local res 791 | if table_3f(t) then 792 | local val = t[k] 793 | if not nil_3f(val) then 794 | res = val 795 | else 796 | res = nil 797 | end 798 | else 799 | res = nil 800 | end 801 | if nil_3f(res) then 802 | return d 803 | else 804 | return res 805 | end 806 | end 807 | v_0_0 = get0 808 | _0_0["get"] = v_0_0 809 | v_0_ = v_0_0 810 | end 811 | local t_0_ = (_0_0)["aniseed/locals"] 812 | t_0_["get"] = v_0_ 813 | get = v_0_ 814 | end 815 | local get_in 816 | do 817 | local v_0_ 818 | do 819 | local v_0_0 820 | local function get_in0(t, ks, d) 821 | local res 822 | local function _2_(acc, k) 823 | if table_3f(acc) then 824 | return get(acc, k) 825 | end 826 | end 827 | res = reduce(_2_, t, ks) 828 | if nil_3f(res) then 829 | return d 830 | else 831 | return res 832 | end 833 | end 834 | v_0_0 = get_in0 835 | _0_0["get-in"] = v_0_0 836 | v_0_ = v_0_0 837 | end 838 | local t_0_ = (_0_0)["aniseed/locals"] 839 | t_0_["get-in"] = v_0_ 840 | get_in = v_0_ 841 | end 842 | local assoc 843 | do 844 | local v_0_ 845 | do 846 | local v_0_0 847 | local function assoc0(t, ...) 848 | local _let_0_ = {...} 849 | local k = _let_0_[1] 850 | local v = _let_0_[2] 851 | local xs = {(table.unpack or unpack)(_let_0_, 3)} 852 | local rem = count(xs) 853 | local t0 = (t or {}) 854 | if odd_3f(rem) then 855 | error("assoc expects even number of arguments after table, found odd number") 856 | end 857 | if not nil_3f(k) then 858 | t0[k] = v 859 | end 860 | if (rem > 0) then 861 | assoc0(t0, unpack(xs)) 862 | end 863 | return t0 864 | end 865 | v_0_0 = assoc0 866 | _0_0["assoc"] = v_0_0 867 | v_0_ = v_0_0 868 | end 869 | local t_0_ = (_0_0)["aniseed/locals"] 870 | t_0_["assoc"] = v_0_ 871 | assoc = v_0_ 872 | end 873 | local assoc_in 874 | do 875 | local v_0_ 876 | do 877 | local v_0_0 878 | local function assoc_in0(t, ks, v) 879 | local path = butlast(ks) 880 | local final = last(ks) 881 | local t0 = (t or {}) 882 | local function _2_(acc, k) 883 | local step = get(acc, k) 884 | if nil_3f(step) then 885 | return get(assoc(acc, k, {}), k) 886 | else 887 | return step 888 | end 889 | end 890 | assoc(reduce(_2_, t0, path), final, v) 891 | return t0 892 | end 893 | v_0_0 = assoc_in0 894 | _0_0["assoc-in"] = v_0_0 895 | v_0_ = v_0_0 896 | end 897 | local t_0_ = (_0_0)["aniseed/locals"] 898 | t_0_["assoc-in"] = v_0_ 899 | assoc_in = v_0_ 900 | end 901 | local update 902 | do 903 | local v_0_ 904 | do 905 | local v_0_0 906 | local function update0(t, k, f) 907 | return assoc(t, k, f(get(t, k))) 908 | end 909 | v_0_0 = update0 910 | _0_0["update"] = v_0_0 911 | v_0_ = v_0_0 912 | end 913 | local t_0_ = (_0_0)["aniseed/locals"] 914 | t_0_["update"] = v_0_ 915 | update = v_0_ 916 | end 917 | local update_in 918 | do 919 | local v_0_ 920 | do 921 | local v_0_0 922 | local function update_in0(t, ks, f) 923 | return assoc_in(t, ks, f(get_in(t, ks))) 924 | end 925 | v_0_0 = update_in0 926 | _0_0["update-in"] = v_0_0 927 | v_0_ = v_0_0 928 | end 929 | local t_0_ = (_0_0)["aniseed/locals"] 930 | t_0_["update-in"] = v_0_ 931 | update_in = v_0_ 932 | end 933 | local constantly 934 | do 935 | local v_0_ 936 | do 937 | local v_0_0 938 | local function constantly0(v) 939 | local function _2_() 940 | return v 941 | end 942 | return _2_ 943 | end 944 | v_0_0 = constantly0 945 | _0_0["constantly"] = v_0_0 946 | v_0_ = v_0_0 947 | end 948 | local t_0_ = (_0_0)["aniseed/locals"] 949 | t_0_["constantly"] = v_0_ 950 | constantly = v_0_ 951 | end 952 | return nil 953 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/deps/fennelview.lua: -------------------------------------------------------------------------------- 1 | local type_order = {["function"] = 5, boolean = 2, number = 1, string = 3, table = 4, thread = 7, userdata = 6} 2 | local function sort_keys(_0_0, _1_0) 3 | local _1_ = _0_0 4 | local a = _1_[1] 5 | local _2_ = _1_0 6 | local b = _2_[1] 7 | local ta = type(a) 8 | local tb = type(b) 9 | if ((ta == tb) and ((ta == "string") or (ta == "number"))) then 10 | return (a < b) 11 | else 12 | local dta = type_order[ta] 13 | local dtb = type_order[tb] 14 | if (dta and dtb) then 15 | return (dta < dtb) 16 | elseif dta then 17 | return true 18 | elseif dtb then 19 | return false 20 | else 21 | return (ta < tb) 22 | end 23 | end 24 | end 25 | local function table_kv_pairs(t) 26 | local assoc_3f = false 27 | local i = 1 28 | local kv = {} 29 | local insert = table.insert 30 | for k, v in pairs(t) do 31 | if ((type(k) ~= "number") or (k ~= i)) then 32 | assoc_3f = true 33 | end 34 | i = (i + 1) 35 | insert(kv, {k, v}) 36 | end 37 | table.sort(kv, sort_keys) 38 | if (#kv == 0) then 39 | return kv, "empty" 40 | else 41 | local function _2_() 42 | if assoc_3f then 43 | return "table" 44 | else 45 | return "seq" 46 | end 47 | end 48 | return kv, _2_() 49 | end 50 | end 51 | local function count_table_appearances(t, appearances) 52 | if (type(t) == "table") then 53 | if not appearances[t] then 54 | appearances[t] = 1 55 | for k, v in pairs(t) do 56 | count_table_appearances(k, appearances) 57 | count_table_appearances(v, appearances) 58 | end 59 | else 60 | appearances[t] = ((appearances[t] or 0) + 1) 61 | end 62 | end 63 | return appearances 64 | end 65 | local function save_table(t, seen) 66 | local seen0 = (seen or {len = 0}) 67 | local id = (seen0.len + 1) 68 | if not seen0[t] then 69 | seen0[t] = id 70 | seen0.len = id 71 | end 72 | return seen0 73 | end 74 | local function detect_cycle(t, seen, _3fk) 75 | if ("table" == type(t)) then 76 | seen[t] = true 77 | local _2_0, _3_0 = next(t, _3fk) 78 | if ((nil ~= _2_0) and (nil ~= _3_0)) then 79 | local k = _2_0 80 | local v = _3_0 81 | return (seen[k] or detect_cycle(k, seen) or seen[v] or detect_cycle(v, seen) or detect_cycle(t, seen, k)) 82 | end 83 | end 84 | end 85 | local function visible_cycle_3f(t, options) 86 | return (options["detect-cycles?"] and detect_cycle(t, {}) and save_table(t, options.seen) and (1 < (options.appearances[t] or 0))) 87 | end 88 | local function table_indent(t, indent, id) 89 | local opener_length = nil 90 | if id then 91 | opener_length = (#tostring(id) + 2) 92 | else 93 | opener_length = 1 94 | end 95 | return (indent + opener_length) 96 | end 97 | local pp = nil 98 | local function concat_table_lines(elements, options, multiline_3f, indent, table_type, prefix) 99 | local indent_str = ("\n" .. string.rep(" ", indent)) 100 | local open = nil 101 | local function _2_() 102 | if ("seq" == table_type) then 103 | return "[" 104 | else 105 | return "{" 106 | end 107 | end 108 | open = ((prefix or "") .. _2_()) 109 | local close = nil 110 | if ("seq" == table_type) then 111 | close = "]" 112 | else 113 | close = "}" 114 | end 115 | local oneline = (open .. table.concat(elements, " ") .. close) 116 | if (not options["one-line?"] and (multiline_3f or ((indent + #oneline) > options["line-length"]))) then 117 | return (open .. table.concat(elements, indent_str) .. close) 118 | else 119 | return oneline 120 | end 121 | end 122 | local function pp_associative(t, kv, options, indent, key_3f) 123 | local multiline_3f = false 124 | local id = options.seen[t] 125 | if (options.level >= options.depth) then 126 | return "{...}" 127 | elseif (id and options["detect-cycles?"]) then 128 | return ("@" .. id .. "{...}") 129 | else 130 | local visible_cycle_3f0 = visible_cycle_3f(t, options) 131 | local id0 = (visible_cycle_3f0 and options.seen[t]) 132 | local indent0 = table_indent(t, indent, id0) 133 | local slength = nil 134 | local function _3_() 135 | local _2_0 = rawget(_G, "utf8") 136 | if _2_0 then 137 | return _2_0.len 138 | else 139 | return _2_0 140 | end 141 | end 142 | local function _4_(_241) 143 | return #_241 144 | end 145 | slength = ((options["utf8?"] and _3_()) or _4_) 146 | local prefix = nil 147 | if visible_cycle_3f0 then 148 | prefix = ("@" .. id0) 149 | else 150 | prefix = "" 151 | end 152 | local items = nil 153 | do 154 | local tbl_0_ = {} 155 | for _, _6_0 in pairs(kv) do 156 | local _7_ = _6_0 157 | local k = _7_[1] 158 | local v = _7_[2] 159 | local _8_ 160 | do 161 | local k0 = pp(k, options, (indent0 + 1), true) 162 | local v0 = pp(v, options, (indent0 + slength(k0) + 1)) 163 | multiline_3f = (multiline_3f or k0:find("\n") or v0:find("\n")) 164 | _8_ = (k0 .. " " .. v0) 165 | end 166 | tbl_0_[(#tbl_0_ + 1)] = _8_ 167 | end 168 | items = tbl_0_ 169 | end 170 | return concat_table_lines(items, options, multiline_3f, indent0, "table", prefix) 171 | end 172 | end 173 | local function pp_sequence(t, kv, options, indent) 174 | local multiline_3f = false 175 | local id = options.seen[t] 176 | if (options.level >= options.depth) then 177 | return "[...]" 178 | elseif (id and options["detect-cycles?"]) then 179 | return ("@" .. id .. "[...]") 180 | else 181 | local visible_cycle_3f0 = visible_cycle_3f(t, options) 182 | local id0 = (visible_cycle_3f0 and options.seen[t]) 183 | local indent0 = table_indent(t, indent, id0) 184 | local prefix = nil 185 | if visible_cycle_3f0 then 186 | prefix = ("@" .. id0) 187 | else 188 | prefix = "" 189 | end 190 | local items = nil 191 | do 192 | local tbl_0_ = {} 193 | for _, _3_0 in pairs(kv) do 194 | local _4_ = _3_0 195 | local _0 = _4_[1] 196 | local v = _4_[2] 197 | local _5_ 198 | do 199 | local v0 = pp(v, options, indent0) 200 | multiline_3f = (multiline_3f or v0:find("\n")) 201 | _5_ = v0 202 | end 203 | tbl_0_[(#tbl_0_ + 1)] = _5_ 204 | end 205 | items = tbl_0_ 206 | end 207 | return concat_table_lines(items, options, multiline_3f, indent0, "seq", prefix) 208 | end 209 | end 210 | local function concat_lines(lines, options, indent, force_multi_line_3f) 211 | if (#lines == 0) then 212 | if options["empty-as-sequence?"] then 213 | return "[]" 214 | else 215 | return "{}" 216 | end 217 | else 218 | local oneline = nil 219 | local _2_ 220 | do 221 | local tbl_0_ = {} 222 | for _, line in ipairs(lines) do 223 | tbl_0_[(#tbl_0_ + 1)] = line:gsub("^%s+", "") 224 | end 225 | _2_ = tbl_0_ 226 | end 227 | oneline = table.concat(_2_, " ") 228 | if (not options["one-line?"] and (force_multi_line_3f or oneline:find("\n") or ((indent + #oneline) > options["line-length"]))) then 229 | return table.concat(lines, ("\n" .. string.rep(" ", indent))) 230 | else 231 | return oneline 232 | end 233 | end 234 | end 235 | local function pp_metamethod(t, metamethod, options, indent) 236 | if (options.level >= options.depth) then 237 | if options["empty-as-sequence?"] then 238 | return "[...]" 239 | else 240 | return "{...}" 241 | end 242 | else 243 | local _ = nil 244 | local function _2_(_241) 245 | return visible_cycle_3f(_241, options) 246 | end 247 | options["visible-cycle?"] = _2_ 248 | _ = nil 249 | local lines, force_multi_line_3f = metamethod(t, pp, options, indent) 250 | options["visible-cycle?"] = nil 251 | local _3_0 = type(lines) 252 | if (_3_0 == "string") then 253 | return lines 254 | elseif (_3_0 == "table") then 255 | return concat_lines(lines, options, indent, force_multi_line_3f) 256 | else 257 | local _0 = _3_0 258 | return error("__fennelview metamethod must return a table of lines") 259 | end 260 | end 261 | end 262 | local function pp_table(x, options, indent) 263 | options.level = (options.level + 1) 264 | local x0 = nil 265 | do 266 | local _2_0 = nil 267 | if options["metamethod?"] then 268 | local _3_0 = x 269 | if _3_0 then 270 | local _4_0 = getmetatable(_3_0) 271 | if _4_0 then 272 | _2_0 = _4_0.__fennelview 273 | else 274 | _2_0 = _4_0 275 | end 276 | else 277 | _2_0 = _3_0 278 | end 279 | else 280 | _2_0 = nil 281 | end 282 | if (nil ~= _2_0) then 283 | local metamethod = _2_0 284 | x0 = pp_metamethod(x, metamethod, options, indent) 285 | else 286 | local _ = _2_0 287 | local _4_0, _5_0 = table_kv_pairs(x) 288 | if (true and (_5_0 == "empty")) then 289 | local _0 = _4_0 290 | if options["empty-as-sequence?"] then 291 | x0 = "[]" 292 | else 293 | x0 = "{}" 294 | end 295 | elseif ((nil ~= _4_0) and (_5_0 == "table")) then 296 | local kv = _4_0 297 | x0 = pp_associative(x, kv, options, indent) 298 | elseif ((nil ~= _4_0) and (_5_0 == "seq")) then 299 | local kv = _4_0 300 | x0 = pp_sequence(x, kv, options, indent) 301 | else 302 | x0 = nil 303 | end 304 | end 305 | end 306 | options.level = (options.level - 1) 307 | return x0 308 | end 309 | local function number__3estring(n) 310 | local _2_0 = string.gsub(tostring(n), ",", ".") 311 | return _2_0 312 | end 313 | local function colon_string_3f(s) 314 | return s:find("^[-%w?^_!$%&*+./@|<=>]+$") 315 | end 316 | local function pp_string(str, options, indent) 317 | local escs = nil 318 | local _2_ 319 | if (options["escape-newlines?"] and (#str < (options["line-length"] - indent))) then 320 | _2_ = "\\n" 321 | else 322 | _2_ = "\n" 323 | end 324 | local function _4_(_241, _242) 325 | return ("\\%03d"):format(_242:byte()) 326 | end 327 | escs = setmetatable({["\""] = "\\\"", ["\11"] = "\\v", ["\12"] = "\\f", ["\13"] = "\\r", ["\7"] = "\\a", ["\8"] = "\\b", ["\9"] = "\\t", ["\\"] = "\\\\", ["\n"] = _2_}, {__index = _4_}) 328 | return ("\"" .. str:gsub("[%c\\\"]", escs) .. "\"") 329 | end 330 | local function make_options(t, options) 331 | local defaults = {["detect-cycles?"] = true, ["empty-as-sequence?"] = false, ["escape-newlines?"] = false, ["line-length"] = 80, ["metamethod?"] = true, ["one-line?"] = false, ["prefer-colon?"] = false, ["utf8?"] = true, depth = 128} 332 | local overrides = {appearances = count_table_appearances(t, {}), level = 0, seen = {len = 0}} 333 | for k, v in pairs((options or {})) do 334 | defaults[k] = v 335 | end 336 | for k, v in pairs(overrides) do 337 | defaults[k] = v 338 | end 339 | return defaults 340 | end 341 | local function _2_(x, options, indent, colon_3f) 342 | local indent0 = (indent or 0) 343 | local options0 = (options or make_options(x)) 344 | local tv = type(x) 345 | local function _4_() 346 | local _3_0 = getmetatable(x) 347 | if _3_0 then 348 | return _3_0.__fennelview 349 | else 350 | return _3_0 351 | end 352 | end 353 | if ((tv == "table") or ((tv == "userdata") and _4_())) then 354 | return pp_table(x, options0, indent0) 355 | elseif (tv == "number") then 356 | return number__3estring(x) 357 | else 358 | local function _5_() 359 | if (colon_3f ~= nil) then 360 | return colon_3f 361 | elseif ("function" == type(options0["prefer-colon?"])) then 362 | return options0["prefer-colon?"](x) 363 | else 364 | return options0["prefer-colon?"] 365 | end 366 | end 367 | if ((tv == "string") and colon_string_3f(x) and _5_()) then 368 | return (":" .. x) 369 | elseif (tv == "string") then 370 | return pp_string(x, options0, indent0) 371 | elseif ((tv == "boolean") or (tv == "nil")) then 372 | return tostring(x) 373 | else 374 | return ("#<" .. tostring(x) .. ">") 375 | end 376 | end 377 | end 378 | pp = _2_ 379 | local function view(x, options) 380 | return pp(x, make_options(x, options), 0) 381 | end 382 | return view 383 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/deps/nvim.lua: -------------------------------------------------------------------------------- 1 | -- Bring vim into local scope. 2 | local vim = vim 3 | local api = vim.api 4 | local inspect = vim.inspect 5 | 6 | local function extend(t, o) 7 | local mt = getmetatable(t) 8 | for k, v in pairs(o) do 9 | rawset(mt, k, v) 10 | end 11 | return t 12 | end 13 | 14 | -- Equivalent to `echo vim.inspect(...)` 15 | local function nvim_print(...) 16 | if select("#", ...) == 1 then 17 | api.nvim_out_write(inspect((...))) 18 | else 19 | api.nvim_out_write(inspect {...}) 20 | end 21 | api.nvim_out_write("\n") 22 | end 23 | 24 | --- Equivalent to `echo` EX command 25 | local function nvim_echo(...) 26 | for i = 1, select("#", ...) do 27 | local part = select(i, ...) 28 | api.nvim_out_write(tostring(part)) 29 | -- vim.api.nvim_out_write("\n") 30 | api.nvim_out_write(" ") 31 | end 32 | api.nvim_out_write("\n") 33 | end 34 | 35 | local window_options = { 36 | arab = true; arabic = true; breakindent = true; breakindentopt = true; 37 | bri = true; briopt = true; cc = true; cocu = true; 38 | cole = true; colorcolumn = true; concealcursor = true; conceallevel = true; 39 | crb = true; cuc = true; cul = true; cursorbind = true; 40 | cursorcolumn = true; cursorline = true; diff = true; fcs = true; 41 | fdc = true; fde = true; fdi = true; fdl = true; 42 | fdm = true; fdn = true; fdt = true; fen = true; 43 | fillchars = true; fml = true; fmr = true; foldcolumn = true; 44 | foldenable = true; foldexpr = true; foldignore = true; foldlevel = true; 45 | foldmarker = true; foldmethod = true; foldminlines = true; foldnestmax = true; 46 | foldtext = true; lbr = true; lcs = true; linebreak = true; 47 | list = true; listchars = true; nu = true; number = true; 48 | numberwidth = true; nuw = true; previewwindow = true; pvw = true; 49 | relativenumber = true; rightleft = true; rightleftcmd = true; rl = true; 50 | rlc = true; rnu = true; scb = true; scl = true; 51 | scr = true; scroll = true; scrollbind = true; signcolumn = true; 52 | spell = true; statusline = true; stl = true; wfh = true; 53 | wfw = true; winbl = true; winblend = true; winfixheight = true; 54 | winfixwidth = true; winhighlight = true; winhl = true; wrap = true; 55 | } 56 | 57 | local function validate(conf) 58 | assert(type(conf) == 'table') 59 | local type_names = { 60 | t='table', s='string', n='number', b='boolean', f='function', c='callable', 61 | ['table']='table', ['string']='string', ['number']='number', 62 | ['boolean']='boolean', ['function']='function', ['callable']='callable', 63 | ['nil']='nil', ['thread']='thread', ['userdata']='userdata', 64 | } 65 | for k, v in pairs(conf) do 66 | if not (v[3] and v[1] == nil) and type(v[1]) ~= type_names[v[2]] then 67 | error(string.format("validation_failed: %q: expected %s, received %s", k, type_names[v[2]], type(v[1]))) 68 | end 69 | end 70 | return true 71 | end 72 | 73 | local function make_meta_accessor(get, set, del) 74 | validate { 75 | get = {get, 'f'}; 76 | set = {set, 'f'}; 77 | del = {del, 'f', true}; 78 | } 79 | local mt = {} 80 | if del then 81 | function mt:__newindex(k, v) 82 | if v == nil then 83 | return del(k) 84 | end 85 | return set(k, v) 86 | end 87 | else 88 | function mt:__newindex(k, v) 89 | return set(k, v) 90 | end 91 | end 92 | function mt:__index(k) 93 | return get(k) 94 | end 95 | return setmetatable({}, mt) 96 | end 97 | 98 | local function pcall_ret(status, ...) 99 | if status then return ... end 100 | end 101 | 102 | local function nil_wrap(fn) 103 | return function(...) 104 | return pcall_ret(pcall(fn, ...)) 105 | end 106 | end 107 | 108 | local fn = setmetatable({}, { 109 | __index = function(t, k) 110 | local f = function(...) return api.nvim_call_function(k, {...}) end 111 | rawset(t, k, f) 112 | return f 113 | end 114 | }) 115 | 116 | local function getenv(k) 117 | local v = fn.getenv(k) 118 | if v == vim.NIL then 119 | return nil 120 | end 121 | return v 122 | end 123 | 124 | local function new_win_accessor(winnr) 125 | local function get(k) 126 | if winnr == nil and type(k) == 'number' then 127 | return new_win_accessor(k) 128 | end 129 | return api.nvim_win_get_var(winnr or 0, k) 130 | end 131 | local function set(k, v) return api.nvim_win_set_var(winnr or 0, k, v) end 132 | local function del(k) return api.nvim_win_del_var(winnr or 0, k) end 133 | return make_meta_accessor(nil_wrap(get), set, del) 134 | end 135 | 136 | local function new_win_opt_accessor(winnr) 137 | local function get(k) 138 | if winnr == nil and type(k) == 'number' then 139 | return new_win_opt_accessor(k) 140 | end 141 | return api.nvim_win_get_option(winnr or 0, k) 142 | end 143 | local function set(k, v) return api.nvim_win_set_option(winnr or 0, k, v) end 144 | return make_meta_accessor(nil_wrap(get), set) 145 | end 146 | 147 | local function new_buf_accessor(bufnr) 148 | local function get(k) 149 | if bufnr == nil and type(k) == 'number' then 150 | return new_buf_accessor(k) 151 | end 152 | return api.nvim_buf_get_var(bufnr or 0, k) 153 | end 154 | local function set(k, v) return api.nvim_buf_set_var(bufnr or 0, k, v) end 155 | local function del(k) return api.nvim_buf_del_var(bufnr or 0, k) end 156 | return make_meta_accessor(nil_wrap(get), set, del) 157 | end 158 | 159 | local function new_buf_opt_accessor(bufnr) 160 | local function get(k) 161 | if window_options[k] then 162 | return api.nvim_err_writeln(k.." is a window option, not a buffer option") 163 | end 164 | if bufnr == nil and type(k) == 'number' then 165 | return new_buf_opt_accessor(k) 166 | end 167 | return api.nvim_buf_get_option(bufnr or 0, k) 168 | end 169 | local function set(k, v) 170 | if window_options[k] then 171 | return api.nvim_err_writeln(k.." is a window option, not a buffer option") 172 | end 173 | return api.nvim_buf_set_option(bufnr or 0, k, v) 174 | end 175 | return make_meta_accessor(nil_wrap(get), set) 176 | end 177 | 178 | -- `nvim.$method(...)` redirects to `nvim.api.nvim_$method(...)` 179 | -- `nvim.fn.$method(...)` redirects to `vim.api.nvim_call_function($method, {...})` 180 | -- TODO `nvim.ex.$command(...)` is approximately `:$command {...}.join(" ")` 181 | -- `nvim.print(...)` is approximately `echo vim.inspect(...)` 182 | -- `nvim.echo(...)` is approximately `echo table.concat({...}, '\n')` 183 | -- Both methods cache the inital lookup in the metatable, but there is api small overhead regardless. 184 | return setmetatable({ 185 | print = nvim_print; 186 | echo = nvim_echo; 187 | fn = rawget(vim, "fn") or fn; 188 | validate = validate; 189 | g = rawget(vim, 'g') or make_meta_accessor(nil_wrap(api.nvim_get_var), api.nvim_set_var, api.nvim_del_var); 190 | v = rawget(vim, 'v') or make_meta_accessor(nil_wrap(api.nvim_get_vvar), api.nvim_set_vvar); 191 | o = rawget(vim, 'o') or make_meta_accessor(api.nvim_get_option, api.nvim_set_option); 192 | w = new_win_accessor(nil); 193 | b = new_buf_accessor(nil); 194 | env = rawget(vim, "env") or make_meta_accessor(getenv, fn.setenv); 195 | wo = rawget(vim, "wo") or new_win_opt_accessor(nil); 196 | bo = rawget(vim, "bo") or new_buf_opt_accessor(nil); 197 | buf = { 198 | line = api.nvim_get_current_line; 199 | nr = api.nvim_get_current_buf; 200 | }; 201 | ex = setmetatable({}, { 202 | __index = function(t, k) 203 | local command = k:gsub("_$", "!") 204 | local f = function(...) 205 | return api.nvim_command(table.concat(vim.tbl_flatten {command, ...}, " ")) 206 | end 207 | rawset(t, k, f) 208 | return f 209 | end 210 | }); 211 | }, { 212 | __index = function(t, k) 213 | local f = api['nvim_'..k] 214 | if f then 215 | rawset(t, k, f) 216 | end 217 | return f 218 | end 219 | }) 220 | -- vim:et ts=2 sw=2 221 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/dotfiles.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.dotfiles" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.compile"), autoload("nvim-minimap.aniseed.fennel"), autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {compile = "nvim-minimap.aniseed.compile", fennel = "nvim-minimap.aniseed.fennel", nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local compile = _local_0_[1] 35 | local fennel = _local_0_[2] 36 | local nvim = _local_0_[3] 37 | local _2amodule_2a = _0_0 38 | local _2amodule_name_2a = "nvim-minimap.aniseed.dotfiles" 39 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 40 | nvim.out_write("Warning: aniseed.dotfiles is deprecated, see :help aniseed-dotfiles\n") 41 | local config_dir 42 | do 43 | local v_0_ = nvim.fn.stdpath("config") 44 | local t_0_ = (_0_0)["aniseed/locals"] 45 | t_0_["config-dir"] = v_0_ 46 | config_dir = v_0_ 47 | end 48 | fennel["add-path"]((config_dir .. "/?.fnl")) 49 | compile.glob("**/*.fnl", (config_dir .. "/fnl"), (config_dir .. "/lua")) 50 | return require("dotfiles.init") 51 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/env.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.env" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local nvim = _local_0_[1] 35 | local _2amodule_2a = _0_0 36 | local _2amodule_name_2a = "nvim-minimap.aniseed.env" 37 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 38 | local config_dir 39 | do 40 | local v_0_ = nvim.fn.stdpath("config") 41 | local t_0_ = (_0_0)["aniseed/locals"] 42 | t_0_["config-dir"] = v_0_ 43 | config_dir = v_0_ 44 | end 45 | local state 46 | do 47 | local v_0_ = (((_0_0)["aniseed/locals"]).state or {["path-added?"] = false}) 48 | local t_0_ = (_0_0)["aniseed/locals"] 49 | t_0_["state"] = v_0_ 50 | state = v_0_ 51 | end 52 | local quiet_require 53 | do 54 | local v_0_ 55 | local function quiet_require0(m) 56 | local ok_3f, err = nil, nil 57 | local function _2_() 58 | return require(m) 59 | end 60 | ok_3f, err = pcall(_2_) 61 | if (not ok_3f and not err:find(("module '" .. m .. "' not found"))) then 62 | return nvim.ex.echoerr(err) 63 | end 64 | end 65 | v_0_ = quiet_require0 66 | local t_0_ = (_0_0)["aniseed/locals"] 67 | t_0_["quiet-require"] = v_0_ 68 | quiet_require = v_0_ 69 | end 70 | local init 71 | do 72 | local v_0_ 73 | do 74 | local v_0_0 75 | local function init0(opts) 76 | local opts0 77 | if ("table" == type(opts)) then 78 | opts0 = opts 79 | else 80 | opts0 = {} 81 | end 82 | if ((false ~= opts0.compile) or os.getenv("ANISEED_ENV_COMPILE")) then 83 | local compile = require("nvim-minimap.aniseed.compile") 84 | local fennel = require("nvim-minimap.aniseed.fennel") 85 | if not state["path-added?"] then 86 | fennel["add-path"]((config_dir .. "/?.fnl")) 87 | state["path-added?"] = true 88 | end 89 | compile.glob("**/*.fnl", (config_dir .. (opts0.input or "/fnl")), (config_dir .. (opts0.output or "/lua")), opts0) 90 | end 91 | return quiet_require((opts0.module or "init")) 92 | end 93 | v_0_0 = init0 94 | _0_0["init"] = v_0_0 95 | v_0_ = v_0_0 96 | end 97 | local t_0_ = (_0_0)["aniseed/locals"] 98 | t_0_["init"] = v_0_ 99 | init = v_0_ 100 | end 101 | return nil 102 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/eval.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.eval" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.aniseed.compile"), autoload("nvim-minimap.aniseed.fennel"), autoload("nvim-minimap.aniseed.fs"), autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", compile = "nvim-minimap.aniseed.compile", fennel = "nvim-minimap.aniseed.fennel", fs = "nvim-minimap.aniseed.fs", nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local a = _local_0_[1] 35 | local compile = _local_0_[2] 36 | local fennel = _local_0_[3] 37 | local fs = _local_0_[4] 38 | local nvim = _local_0_[5] 39 | local _2amodule_2a = _0_0 40 | local _2amodule_name_2a = "nvim-minimap.aniseed.eval" 41 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 42 | local str 43 | do 44 | local v_0_ 45 | do 46 | local v_0_0 47 | local function str0(code, opts) 48 | local function _2_() 49 | return fennel.eval(compile["macros-prefix"](code), a.merge({["compiler-env"] = _G}, opts)) 50 | end 51 | return xpcall(_2_, fennel.traceback) 52 | end 53 | v_0_0 = str0 54 | _0_0["str"] = v_0_0 55 | v_0_ = v_0_0 56 | end 57 | local t_0_ = (_0_0)["aniseed/locals"] 58 | t_0_["str"] = v_0_ 59 | str = v_0_ 60 | end 61 | return nil 62 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/fennel.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.fennel" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = require("nvim-minimap.aniseed.deps.fennel") 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.deps.fennel"), autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {fennel = "nvim-minimap.aniseed.deps.fennel", nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local fennel = _local_0_[1] 35 | local nvim = _local_0_[2] 36 | local _2amodule_2a = _0_0 37 | local _2amodule_name_2a = "nvim-minimap.aniseed.fennel" 38 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 39 | local add_path 40 | do 41 | local v_0_ 42 | do 43 | local v_0_0 44 | local function add_path0(path) 45 | fennel.path = (fennel.path .. ";" .. path) 46 | return nil 47 | end 48 | v_0_0 = add_path0 49 | _0_0["add-path"] = v_0_0 50 | v_0_ = v_0_0 51 | end 52 | local t_0_ = (_0_0)["aniseed/locals"] 53 | t_0_["add-path"] = v_0_ 54 | add_path = v_0_ 55 | end 56 | local sync_rtp 57 | do 58 | local v_0_ 59 | do 60 | local v_0_0 61 | local function sync_rtp0() 62 | local fnl_suffix = "/fnl/?.fnl" 63 | local rtp = nvim.o.runtimepath 64 | local fnl_path = (rtp:gsub(",", (fnl_suffix .. ";")) .. fnl_suffix) 65 | local lua_path = fnl_path:gsub("/fnl/", "/lua/") 66 | fennel["path"] = (fnl_path .. ";" .. lua_path) 67 | return nil 68 | end 69 | v_0_0 = sync_rtp0 70 | _0_0["sync-rtp"] = v_0_0 71 | v_0_ = v_0_0 72 | end 73 | local t_0_ = (_0_0)["aniseed/locals"] 74 | t_0_["sync-rtp"] = v_0_ 75 | sync_rtp = v_0_ 76 | end 77 | return sync_rtp() 78 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/fs.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.fs" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local nvim = _local_0_[1] 35 | local _2amodule_2a = _0_0 36 | local _2amodule_name_2a = "nvim-minimap.aniseed.fs" 37 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 38 | local basename 39 | do 40 | local v_0_ 41 | do 42 | local v_0_0 43 | local function basename0(path) 44 | return nvim.fn.fnamemodify(path, ":h") 45 | end 46 | v_0_0 = basename0 47 | _0_0["basename"] = v_0_0 48 | v_0_ = v_0_0 49 | end 50 | local t_0_ = (_0_0)["aniseed/locals"] 51 | t_0_["basename"] = v_0_ 52 | basename = v_0_ 53 | end 54 | local mkdirp 55 | do 56 | local v_0_ 57 | do 58 | local v_0_0 59 | local function mkdirp0(dir) 60 | return nvim.fn.mkdir(dir, "p") 61 | end 62 | v_0_0 = mkdirp0 63 | _0_0["mkdirp"] = v_0_0 64 | v_0_ = v_0_0 65 | end 66 | local t_0_ = (_0_0)["aniseed/locals"] 67 | t_0_["mkdirp"] = v_0_ 68 | mkdirp = v_0_ 69 | end 70 | return nil 71 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/macros.fnl: -------------------------------------------------------------------------------- 1 | ;; All of Aniseed's macros in one place. 2 | ;; Can't be compiled to Lua directly. 3 | 4 | ;; Automatically loaded through require-macros for all Aniseed based evaluations. 5 | 6 | (local module-sym (gensym)) 7 | 8 | (fn sorted-each [f x] 9 | (let [acc []] 10 | (each [k v (pairs x)] 11 | (table.insert acc [k v])) 12 | (table.sort 13 | acc 14 | (fn [a b] 15 | (< (. a 1) (. b 1)))) 16 | (each [_ [k v] (ipairs acc)] 17 | (f k v)))) 18 | 19 | (fn module [name new-local-fns initial-mod] 20 | `(-> [(local ,module-sym 21 | (let [name# ,(tostring name) 22 | module# (let [x# (. package.loaded name#)] 23 | (if (= :table (type x#)) 24 | x# 25 | ,(or initial-mod {})))] 26 | (tset module# :aniseed/module name#) 27 | (tset module# :aniseed/locals (or (. module# :aniseed/locals) {})) 28 | (tset module# :aniseed/local-fns (or (. module# :aniseed/local-fns) {})) 29 | (tset package.loaded name# module#) 30 | module#)) 31 | 32 | ,module-sym 33 | 34 | (local ,(sym :autoload) (. (require :aniseed.autoload) :autoload)) 35 | 36 | ,(let [aliases [] 37 | vals [] 38 | effects [] 39 | pkg (let [x (. package.loaded (tostring name))] 40 | (when (= :table (type x)) 41 | x)) 42 | locals (-?> pkg (. :aniseed/locals)) 43 | local-fns (or (and (not new-local-fns) 44 | (-?> pkg (. :aniseed/local-fns))) 45 | {})] 46 | 47 | (when new-local-fns 48 | (each [action binds (pairs new-local-fns)] 49 | (let [action-str (tostring action) 50 | current (or (. local-fns action-str) {})] 51 | (tset local-fns action-str current) 52 | (each [alias module (pairs binds)] 53 | (if (= :number (type alias)) 54 | (tset current (tostring module) true) 55 | (tset current (tostring alias) (tostring module))))))) 56 | 57 | (sorted-each 58 | (fn [action binds] 59 | (sorted-each 60 | (fn [alias-or-val val] 61 | (if (= true val) 62 | 63 | ;; {require-macros [bar]} 64 | (table.insert effects `(,(sym action) ,alias-or-val)) 65 | 66 | ;; {require {foo bar}} 67 | (do 68 | (table.insert aliases (sym alias-or-val)) 69 | (table.insert vals `(,(sym action) ,val))))) 70 | 71 | binds)) 72 | local-fns) 73 | 74 | (when locals 75 | (sorted-each 76 | (fn [alias val] 77 | (table.insert aliases (sym alias)) 78 | (table.insert vals `(-> ,module-sym (. :aniseed/locals) (. ,alias)))) 79 | locals)) 80 | 81 | `[,effects 82 | (local ,aliases 83 | (let [(ok?# val#) 84 | (pcall 85 | (fn [] ,vals))] 86 | (if ok?# 87 | (do 88 | (tset ,module-sym :aniseed/local-fns ,local-fns) 89 | val#) 90 | (print val#)))) 91 | (local ,(sym "*module*") ,module-sym) 92 | (local ,(sym "*module-name*") ,(tostring name))])] 93 | (. 2))) 94 | 95 | (fn def- [name value] 96 | `(local ,name 97 | (let [v# ,value 98 | t# (. ,module-sym :aniseed/locals)] 99 | (tset t# ,(tostring name) v#) 100 | v#))) 101 | 102 | (fn def [name value] 103 | `(def- ,name 104 | (do 105 | (let [v# ,value] 106 | (tset ,module-sym ,(tostring name) v#) 107 | v#)))) 108 | 109 | (fn defn- [name ...] 110 | `(def- ,name (fn ,name ,...))) 111 | 112 | (fn defn [name ...] 113 | `(def ,name (fn ,name ,...))) 114 | 115 | (fn defonce- [name value] 116 | `(def- ,name 117 | (or (. (. ,module-sym :aniseed/locals) ,(tostring name)) 118 | ,value))) 119 | 120 | (fn defonce [name value] 121 | `(def ,name 122 | (or (. ,module-sym ,(tostring name)) 123 | ,value))) 124 | 125 | (fn deftest [name ...] 126 | `(let [tests# (or (. ,module-sym :aniseed/tests) {})] 127 | (tset tests# ,(tostring name) (fn [,(sym :t)] ,...)) 128 | (tset ,module-sym :aniseed/tests tests#))) 129 | 130 | (fn time [...] 131 | `(let [start# (vim.loop.hrtime) 132 | result# (do ,...) 133 | end# (vim.loop.hrtime)] 134 | (print (.. "Elapsed time: " (/ (- end# start#) 1000000) " msecs")) 135 | result#)) 136 | 137 | {:module module 138 | :def- def- :def def 139 | :defn- defn- :defn defn 140 | :defonce- defonce- :defonce defonce 141 | :deftest deftest 142 | :time time} 143 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/nvim.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.nvim" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = require("nvim-minimap.aniseed.deps.nvim") 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local _2amodule_2a = _0_0 35 | local _2amodule_name_2a = "nvim-minimap.aniseed.nvim" 36 | return ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] 37 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/nvim/util.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.nvim.util" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.nvim")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {nvim = "nvim-minimap.aniseed.nvim"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local nvim = _local_0_[1] 35 | local _2amodule_2a = _0_0 36 | local _2amodule_name_2a = "nvim-minimap.aniseed.nvim.util" 37 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 38 | local normal 39 | do 40 | local v_0_ 41 | do 42 | local v_0_0 43 | local function normal0(keys) 44 | return nvim.ex.silent(("exe \"normal! " .. keys .. "\"")) 45 | end 46 | v_0_0 = normal0 47 | _0_0["normal"] = v_0_0 48 | v_0_ = v_0_0 49 | end 50 | local t_0_ = (_0_0)["aniseed/locals"] 51 | t_0_["normal"] = v_0_ 52 | normal = v_0_ 53 | end 54 | local fn_bridge 55 | do 56 | local v_0_ 57 | do 58 | local v_0_0 59 | local function fn_bridge0(viml_name, mod, lua_name, opts) 60 | local _let_0_ = (opts or {}) 61 | local range = _let_0_["range"] 62 | local _return = _let_0_["return"] 63 | local _2_ 64 | if range then 65 | _2_ = " range" 66 | else 67 | _2_ = "" 68 | end 69 | local _4_ 70 | if (_return ~= false) then 71 | _4_ = "return" 72 | else 73 | _4_ = "call" 74 | end 75 | local _6_ 76 | if range then 77 | _6_ = "\" . a:firstline . \", \" . a:lastline . \", " 78 | else 79 | _6_ = "" 80 | end 81 | return nvim.ex.function_((viml_name .. "(...)" .. _2_ .. "\n " .. _4_ .. " luaeval(\"require('" .. mod .. "')['" .. lua_name .. "'](" .. _6_ .. "unpack(_A))\", a:000)\n endfunction")) 82 | end 83 | v_0_0 = fn_bridge0 84 | _0_0["fn-bridge"] = v_0_0 85 | v_0_ = v_0_0 86 | end 87 | local t_0_ = (_0_0)["aniseed/locals"] 88 | t_0_["fn-bridge"] = v_0_ 89 | fn_bridge = v_0_ 90 | end 91 | local with_out_str 92 | do 93 | local v_0_ 94 | do 95 | local v_0_0 96 | local function with_out_str0(f) 97 | nvim.ex.redir("=> g:aniseed_nvim_util_out_str") 98 | do 99 | local ok_3f, err = pcall(f) 100 | nvim.ex.redir("END") 101 | nvim.ex.echon("") 102 | nvim.ex.redraw() 103 | if not ok_3f then 104 | error(err) 105 | end 106 | end 107 | return string.gsub(nvim.g.aniseed_nvim_util_out_str, "^(\n?)(.*)$", "%2%1") 108 | end 109 | v_0_0 = with_out_str0 110 | _0_0["with-out-str"] = v_0_0 111 | v_0_ = v_0_0 112 | end 113 | local t_0_ = (_0_0)["aniseed/locals"] 114 | t_0_["with-out-str"] = v_0_ 115 | with_out_str = v_0_ 116 | end 117 | return nil 118 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/string.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.string" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.core")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local a = _local_0_[1] 35 | local _2amodule_2a = _0_0 36 | local _2amodule_name_2a = "nvim-minimap.aniseed.string" 37 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 38 | local join 39 | do 40 | local v_0_ 41 | do 42 | local v_0_0 43 | local function join0(...) 44 | local args = {...} 45 | local function _2_(...) 46 | if (2 == a.count(args)) then 47 | return args 48 | else 49 | return {"", a.first(args)} 50 | end 51 | end 52 | local _let_0_ = _2_(...) 53 | local sep = _let_0_[1] 54 | local xs = _let_0_[2] 55 | local len = a.count(xs) 56 | local result = {} 57 | if (len > 0) then 58 | for i = 1, len do 59 | local x = xs[i] 60 | local _3_0 61 | if ("string" == type(x)) then 62 | _3_0 = x 63 | elseif (nil == x) then 64 | _3_0 = x 65 | else 66 | _3_0 = a["pr-str"](x) 67 | end 68 | if _3_0 then 69 | table.insert(result, _3_0) 70 | else 71 | end 72 | end 73 | end 74 | return table.concat(result, sep) 75 | end 76 | v_0_0 = join0 77 | _0_0["join"] = v_0_0 78 | v_0_ = v_0_0 79 | end 80 | local t_0_ = (_0_0)["aniseed/locals"] 81 | t_0_["join"] = v_0_ 82 | join = v_0_ 83 | end 84 | local split 85 | do 86 | local v_0_ 87 | do 88 | local v_0_0 89 | local function split0(s, pat) 90 | local done_3f = false 91 | local acc = {} 92 | local index = 1 93 | while not done_3f do 94 | local start, _end = string.find(s, pat, index) 95 | if ("nil" == type(start)) then 96 | table.insert(acc, string.sub(s, index)) 97 | done_3f = true 98 | else 99 | table.insert(acc, string.sub(s, index, (start - 1))) 100 | index = (_end + 1) 101 | end 102 | end 103 | return acc 104 | end 105 | v_0_0 = split0 106 | _0_0["split"] = v_0_0 107 | v_0_ = v_0_0 108 | end 109 | local t_0_ = (_0_0)["aniseed/locals"] 110 | t_0_["split"] = v_0_ 111 | split = v_0_ 112 | end 113 | local blank_3f 114 | do 115 | local v_0_ 116 | do 117 | local v_0_0 118 | local function blank_3f0(s) 119 | return (a["empty?"](s) or not string.find(s, "[^%s]")) 120 | end 121 | v_0_0 = blank_3f0 122 | _0_0["blank?"] = v_0_0 123 | v_0_ = v_0_0 124 | end 125 | local t_0_ = (_0_0)["aniseed/locals"] 126 | t_0_["blank?"] = v_0_ 127 | blank_3f = v_0_ 128 | end 129 | local triml 130 | do 131 | local v_0_ 132 | do 133 | local v_0_0 134 | local function triml0(s) 135 | return string.gsub(s, "^%s*(.-)", "%1") 136 | end 137 | v_0_0 = triml0 138 | _0_0["triml"] = v_0_0 139 | v_0_ = v_0_0 140 | end 141 | local t_0_ = (_0_0)["aniseed/locals"] 142 | t_0_["triml"] = v_0_ 143 | triml = v_0_ 144 | end 145 | local trimr 146 | do 147 | local v_0_ 148 | do 149 | local v_0_0 150 | local function trimr0(s) 151 | return string.gsub(s, "(.-)%s*$", "%1") 152 | end 153 | v_0_0 = trimr0 154 | _0_0["trimr"] = v_0_0 155 | v_0_ = v_0_0 156 | end 157 | local t_0_ = (_0_0)["aniseed/locals"] 158 | t_0_["trimr"] = v_0_ 159 | trimr = v_0_ 160 | end 161 | local trim 162 | do 163 | local v_0_ 164 | do 165 | local v_0_0 166 | local function trim0(s) 167 | return string.gsub(s, "^%s*(.-)%s*$", "%1") 168 | end 169 | v_0_0 = trim0 170 | _0_0["trim"] = v_0_0 171 | v_0_ = v_0_0 172 | end 173 | local t_0_ = (_0_0)["aniseed/locals"] 174 | t_0_["trim"] = v_0_ 175 | trim = v_0_ 176 | end 177 | return nil 178 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/test.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.test" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.aniseed.nvim"), autoload("nvim-minimap.aniseed.string")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", nvim = "nvim-minimap.aniseed.nvim", str = "nvim-minimap.aniseed.string"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local a = _local_0_[1] 35 | local nvim = _local_0_[2] 36 | local str = _local_0_[3] 37 | local _2amodule_2a = _0_0 38 | local _2amodule_name_2a = "nvim-minimap.aniseed.test" 39 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 40 | local ok_3f 41 | do 42 | local v_0_ 43 | do 44 | local v_0_0 45 | local function ok_3f0(_2_0) 46 | local _arg_0_ = _2_0 47 | local tests = _arg_0_["tests"] 48 | local tests_passed = _arg_0_["tests-passed"] 49 | return (tests == tests_passed) 50 | end 51 | v_0_0 = ok_3f0 52 | _0_0["ok?"] = v_0_0 53 | v_0_ = v_0_0 54 | end 55 | local t_0_ = (_0_0)["aniseed/locals"] 56 | t_0_["ok?"] = v_0_ 57 | ok_3f = v_0_ 58 | end 59 | local display_results 60 | do 61 | local v_0_ 62 | do 63 | local v_0_0 64 | local function display_results0(results, prefix) 65 | do 66 | local _let_0_ = results 67 | local assertions = _let_0_["assertions"] 68 | local assertions_passed = _let_0_["assertions-passed"] 69 | local tests = _let_0_["tests"] 70 | local tests_passed = _let_0_["tests-passed"] 71 | local _2_ 72 | if ok_3f(results) then 73 | _2_ = "OK" 74 | else 75 | _2_ = "FAILED" 76 | end 77 | a.println((prefix .. " " .. _2_ .. " " .. tests_passed .. "/" .. tests .. " tests and " .. assertions_passed .. "/" .. assertions .. " assertions passed")) 78 | end 79 | return results 80 | end 81 | v_0_0 = display_results0 82 | _0_0["display-results"] = v_0_0 83 | v_0_ = v_0_0 84 | end 85 | local t_0_ = (_0_0)["aniseed/locals"] 86 | t_0_["display-results"] = v_0_ 87 | display_results = v_0_ 88 | end 89 | local run 90 | do 91 | local v_0_ 92 | do 93 | local v_0_0 94 | local function run0(mod_name) 95 | local mod = package.loaded[mod_name] 96 | local tests = (a["table?"](mod) and mod["aniseed/tests"]) 97 | if a["table?"](tests) then 98 | local results = {["assertions-passed"] = 0, ["tests-passed"] = 0, assertions = 0, tests = #tests} 99 | for label, f in pairs(tests) do 100 | local test_failed = false 101 | a.update(results, "tests", a.inc) 102 | do 103 | local prefix = ("[" .. mod_name .. "/" .. label .. "]") 104 | local fail 105 | local function _2_(desc, ...) 106 | test_failed = true 107 | local function _3_(...) 108 | if desc then 109 | return (" (" .. desc .. ")") 110 | else 111 | return "" 112 | end 113 | end 114 | return a.println((str.join({prefix, " ", ...}) .. _3_(...))) 115 | end 116 | fail = _2_ 117 | local begin 118 | local function _3_() 119 | return a.update(results, "assertions", a.inc) 120 | end 121 | begin = _3_ 122 | local pass 123 | local function _4_() 124 | return a.update(results, "assertions-passed", a.inc) 125 | end 126 | pass = _4_ 127 | local t 128 | local function _5_(e, r, desc) 129 | begin() 130 | if (e == r) then 131 | return pass() 132 | else 133 | return fail(desc, "Expected '", a["pr-str"](e), "' but received '", a["pr-str"](r), "'") 134 | end 135 | end 136 | local function _6_(r, desc) 137 | begin() 138 | if r then 139 | return pass() 140 | else 141 | return fail(desc, "Expected truthy result but received '", a["pr-str"](r), "'") 142 | end 143 | end 144 | local function _7_(e, r, desc) 145 | begin() 146 | local se = a["pr-str"](e) 147 | local sr = a["pr-str"](r) 148 | if (se == sr) then 149 | return pass() 150 | else 151 | return fail(desc, "Expected (with pr) '", se, "' but received '", sr, "'") 152 | end 153 | end 154 | t = {["="] = _5_, ["ok?"] = _6_, ["pr="] = _7_} 155 | local _8_0, _9_0 = nil, nil 156 | local function _10_() 157 | return f(t) 158 | end 159 | _8_0, _9_0 = pcall(_10_) 160 | if ((_8_0 == false) and (nil ~= _9_0)) then 161 | local err = _9_0 162 | fail("Exception: ", err) 163 | end 164 | end 165 | if not test_failed then 166 | a.update(results, "tests-passed", a.inc) 167 | end 168 | end 169 | return display_results(results, ("[" .. mod_name .. "]")) 170 | end 171 | end 172 | v_0_0 = run0 173 | _0_0["run"] = v_0_0 174 | v_0_ = v_0_0 175 | end 176 | local t_0_ = (_0_0)["aniseed/locals"] 177 | t_0_["run"] = v_0_ 178 | run = v_0_ 179 | end 180 | local run_all 181 | do 182 | local v_0_ 183 | do 184 | local v_0_0 185 | local function run_all0() 186 | local function _2_(totals, results) 187 | for k, v in pairs(results) do 188 | totals[k] = (v + totals[k]) 189 | end 190 | return totals 191 | end 192 | return display_results(a.reduce(_2_, {["assertions-passed"] = 0, ["tests-passed"] = 0, assertions = 0, tests = 0}, a.filter(a["table?"], a.map(run, a.keys(package.loaded)))), "[total]") 193 | end 194 | v_0_0 = run_all0 195 | _0_0["run-all"] = v_0_0 196 | v_0_ = v_0_0 197 | end 198 | local t_0_ = (_0_0)["aniseed/locals"] 199 | t_0_["run-all"] = v_0_ 200 | run_all = v_0_ 201 | end 202 | local suite 203 | do 204 | local v_0_ 205 | do 206 | local v_0_0 207 | local function suite0() 208 | local function _2_(path) 209 | return require(string.gsub(string.match(path, "^test/fnl/(.-).fnl$"), "/", ".")) 210 | end 211 | a["run!"](_2_, nvim.fn.globpath("test/fnl", "**/*-test.fnl", false, true)) 212 | if ok_3f(run_all()) then 213 | return nvim.ex.q() 214 | else 215 | return nvim.ex.cq() 216 | end 217 | end 218 | v_0_0 = suite0 219 | _0_0["suite"] = v_0_0 220 | v_0_ = v_0_0 221 | end 222 | local t_0_ = (_0_0)["aniseed/locals"] 223 | t_0_["suite"] = v_0_ 224 | suite = v_0_ 225 | end 226 | return nil 227 | -------------------------------------------------------------------------------- /lua/nvim-minimap/aniseed/view.lua: -------------------------------------------------------------------------------- 1 | local _0_0 2 | do 3 | local name_0_ = "nvim-minimap.aniseed.view" 4 | local module_0_ 5 | do 6 | local x_0_ = package.loaded[name_0_] 7 | if ("table" == type(x_0_)) then 8 | module_0_ = x_0_ 9 | else 10 | module_0_ = {} 11 | end 12 | end 13 | module_0_["aniseed/module"] = name_0_ 14 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 15 | module_0_["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 16 | package.loaded[name_0_] = module_0_ 17 | _0_0 = module_0_ 18 | end 19 | local autoload = (require("nvim-minimap.aniseed.autoload")).autoload 20 | local function _1_(...) 21 | local ok_3f_0_, val_0_ = nil, nil 22 | local function _1_() 23 | return {require("nvim-minimap.aniseed.deps.fennelview")} 24 | end 25 | ok_3f_0_, val_0_ = pcall(_1_) 26 | if ok_3f_0_ then 27 | _0_0["aniseed/local-fns"] = {require = {view = "nvim-minimap.aniseed.deps.fennelview"}} 28 | return val_0_ 29 | else 30 | return print(val_0_) 31 | end 32 | end 33 | local _local_0_ = _1_(...) 34 | local view = _local_0_[1] 35 | local _2amodule_2a = _0_0 36 | local _2amodule_name_2a = "nvim-minimap.aniseed.view" 37 | do local _ = ({nil, _0_0, nil, {{}, nil, nil, nil}})[2] end 38 | local serialise 39 | do 40 | local v_0_ 41 | do 42 | local v_0_0 = view 43 | _0_0["serialise"] = v_0_0 44 | v_0_ = v_0_0 45 | end 46 | local t_0_ = (_0_0)["aniseed/locals"] 47 | t_0_["serialise"] = v_0_ 48 | serialise = v_0_ 49 | end 50 | return nil 51 | -------------------------------------------------------------------------------- /lua/nvim-minimap/config.lua: -------------------------------------------------------------------------------- 1 | local _2afile_2a = "fnl/nvim-minimap/config.fnl" 2 | local _0_ 3 | do 4 | local name_0_ = "nvim-minimap.config" 5 | local module_0_ 6 | do 7 | local x_0_ = package.loaded[name_0_] 8 | if ("table" == type(x_0_)) then 9 | module_0_ = x_0_ 10 | else 11 | module_0_ = {} 12 | end 13 | end 14 | module_0_["aniseed/module"] = name_0_ 15 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 16 | do end (module_0_)["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 17 | do end (package.loaded)[name_0_] = module_0_ 18 | _0_ = module_0_ 19 | end 20 | local autoload 21 | local function _1_(...) 22 | return (require("nvim-minimap.aniseed.autoload")).autoload(...) 23 | end 24 | autoload = _1_ 25 | local function _2_(...) 26 | local ok_3f_0_, val_0_ = nil, nil 27 | local function _2_() 28 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.aniseed.nvim"), autoload("nvim-minimap.aniseed.string")} 29 | end 30 | ok_3f_0_, val_0_ = pcall(_2_) 31 | if ok_3f_0_ then 32 | _0_["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", nvim = "nvim-minimap.aniseed.nvim", string = "nvim-minimap.aniseed.string"}} 33 | return val_0_ 34 | else 35 | return print(val_0_) 36 | end 37 | end 38 | local _local_0_ = _2_(...) 39 | local a = _local_0_[1] 40 | local nvim = _local_0_[2] 41 | local string = _local_0_[3] 42 | local _2amodule_2a = _0_ 43 | local _2amodule_name_2a = "nvim-minimap.config" 44 | do local _ = ({nil, _0_, nil, {{}, nil, nil, nil}})[2] end 45 | local defaults 46 | do 47 | local v_0_ = ((_0_)["aniseed/locals"].defaults or {default_auto_cmds_enabled = 1, filetype = {excludes = {"help", "qf"}}, highlight = {group = "MinimapCurrentLine"}, window = {height = 10, width = 20}}) 48 | local t_0_ = (_0_)["aniseed/locals"] 49 | t_0_["defaults"] = v_0_ 50 | defaults = v_0_ 51 | end 52 | local ks__3ename 53 | do 54 | local v_0_ 55 | local function ks__3ename0(ks) 56 | return ("minimap#" .. string.join("#", ks)) 57 | end 58 | v_0_ = ks__3ename0 59 | local t_0_ = (_0_)["aniseed/locals"] 60 | t_0_["ks->name"] = v_0_ 61 | ks__3ename = v_0_ 62 | end 63 | local get_in 64 | do 65 | local v_0_ 66 | do 67 | local v_0_0 68 | local function get_in0(ks) 69 | local v = a.get(nvim.g, ks__3ename(ks)) 70 | if v then 71 | if (a["table?"](v) and a.get(v, vim.type_idx) and a.get(v, vim.val_idx)) then 72 | return a.get(v, vim.val_idx) 73 | else 74 | return v 75 | end 76 | else 77 | return a["get-in"](defaults, ks) 78 | end 79 | end 80 | v_0_0 = get_in0 81 | _0_["get-in"] = v_0_0 82 | v_0_ = v_0_0 83 | end 84 | local t_0_ = (_0_)["aniseed/locals"] 85 | t_0_["get-in"] = v_0_ 86 | get_in = v_0_ 87 | end 88 | -- (->> (ks->name table: 0x7fbc06198868) (a.get nvim.g)) (get-in table: 0x7fbc06150af0) (get-in table: 0x7fbc06118488) (get-in table: 0x7fbc05ec5f90) 89 | return nil -------------------------------------------------------------------------------- /lua/nvim-minimap/float.lua: -------------------------------------------------------------------------------- 1 | local _2afile_2a = "fnl/nvim-minimap/float.fnl" 2 | local _0_ 3 | do 4 | local name_0_ = "nvim-minimap.float" 5 | local module_0_ 6 | do 7 | local x_0_ = package.loaded[name_0_] 8 | if ("table" == type(x_0_)) then 9 | module_0_ = x_0_ 10 | else 11 | module_0_ = {} 12 | end 13 | end 14 | module_0_["aniseed/module"] = name_0_ 15 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 16 | do end (module_0_)["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 17 | do end (package.loaded)[name_0_] = module_0_ 18 | _0_ = module_0_ 19 | end 20 | local autoload 21 | local function _1_(...) 22 | return (require("nvim-minimap.aniseed.autoload")).autoload(...) 23 | end 24 | autoload = _1_ 25 | local function _2_(...) 26 | local ok_3f_0_, val_0_ = nil, nil 27 | local function _2_() 28 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.config"), autoload("nvim-minimap.aniseed.nvim")} 29 | end 30 | ok_3f_0_, val_0_ = pcall(_2_) 31 | if ok_3f_0_ then 32 | _0_["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", config = "nvim-minimap.config", nvim = "nvim-minimap.aniseed.nvim"}} 33 | return val_0_ 34 | else 35 | return print(val_0_) 36 | end 37 | end 38 | local _local_0_ = _2_(...) 39 | local a = _local_0_[1] 40 | local config = _local_0_[2] 41 | local nvim = _local_0_[3] 42 | local _2amodule_2a = _0_ 43 | local _2amodule_name_2a = "nvim-minimap.float" 44 | do local _ = ({nil, _0_, nil, {{}, nil, nil, nil}})[2] end 45 | local state 46 | do 47 | local v_0_ = ((_0_)["aniseed/locals"].state or {["buf-id"] = nil, ["win-id"] = nil}) 48 | local t_0_ = (_0_)["aniseed/locals"] 49 | t_0_["state"] = v_0_ 50 | state = v_0_ 51 | end 52 | local min 53 | do 54 | local v_0_ 55 | local function min0(a0, b) 56 | if (a0 < b) then 57 | return a0 58 | else 59 | return b 60 | end 61 | end 62 | v_0_ = min0 63 | local t_0_ = (_0_)["aniseed/locals"] 64 | t_0_["min"] = v_0_ 65 | min = v_0_ 66 | end 67 | local editor_width 68 | do 69 | local v_0_ 70 | local function editor_width0() 71 | return nvim.o.columns 72 | end 73 | v_0_ = editor_width0 74 | local t_0_ = (_0_)["aniseed/locals"] 75 | t_0_["editor-width"] = v_0_ 76 | editor_width = v_0_ 77 | end 78 | local editor_height 79 | do 80 | local v_0_ 81 | local function editor_height0() 82 | return nvim.o.lines 83 | end 84 | v_0_ = editor_height0 85 | local t_0_ = (_0_)["aniseed/locals"] 86 | t_0_["editor-height"] = v_0_ 87 | editor_height = v_0_ 88 | end 89 | local make_buf 90 | do 91 | local v_0_ 92 | local function make_buf0() 93 | local buf = nvim.create_buf(false, true) 94 | state["buf-id"] = buf 95 | return buf 96 | end 97 | v_0_ = make_buf0 98 | local t_0_ = (_0_)["aniseed/locals"] 99 | t_0_["make-buf"] = v_0_ 100 | make_buf = v_0_ 101 | end 102 | local make_win 103 | do 104 | local v_0_ 105 | local function make_win0(buf) 106 | local cur = nvim.get_current_win() 107 | local opts = {anchor = "NE", col = editor_width(), focusable = false, height = min(config["get-in"]({"window", "height"}), (editor_height() - 3)), relative = "editor", row = 0, style = "minimal", width = min(config["get-in"]({"window", "width"}), editor_width())} 108 | local win = nvim.open_win(buf, 0, opts) 109 | nvim.win_set_option(win, "wrap", false) 110 | state["win-id"] = win 111 | nvim.set_current_win(cur) 112 | return win 113 | end 114 | v_0_ = make_win0 115 | local t_0_ = (_0_)["aniseed/locals"] 116 | t_0_["make-win"] = v_0_ 117 | make_win = v_0_ 118 | end 119 | local open_win 120 | do 121 | local v_0_ 122 | do 123 | local v_0_0 124 | local function open_win0() 125 | if state["buf-id"] then 126 | if state["win-id"] then 127 | return state["win-id"] 128 | else 129 | return make_win(state["buf-id"]) 130 | end 131 | else 132 | return make_win(make_buf()) 133 | end 134 | end 135 | v_0_0 = open_win0 136 | _0_["open-win"] = v_0_0 137 | v_0_ = v_0_0 138 | end 139 | local t_0_ = (_0_)["aniseed/locals"] 140 | t_0_["open-win"] = v_0_ 141 | open_win = v_0_ 142 | end 143 | local close_win 144 | do 145 | local v_0_ 146 | do 147 | local v_0_0 148 | local function close_win0() 149 | if state["win-id"] then 150 | pcall(nvim.win_close, state["win-id"], true) 151 | state["win-id"] = nil 152 | return nil 153 | end 154 | end 155 | v_0_0 = close_win0 156 | _0_["close-win"] = v_0_0 157 | v_0_ = v_0_0 158 | end 159 | local t_0_ = (_0_)["aniseed/locals"] 160 | t_0_["close-win"] = v_0_ 161 | close_win = v_0_ 162 | end 163 | local write_arr_to_buf 164 | do 165 | local v_0_ 166 | do 167 | local v_0_0 168 | local function write_arr_to_buf0(arr) 169 | if state["buf-id"] then 170 | local trim_by_width 171 | local function _3_(x) 172 | return nvim.fn.strcharpart(x, 0, config["get-in"]({"window", "width"})) 173 | end 174 | trim_by_width = _3_ 175 | return nvim.buf_set_lines(state["buf-id"], 0, -1, true, a.map(trim_by_width, arr)) 176 | end 177 | end 178 | v_0_0 = write_arr_to_buf0 179 | _0_["write-arr-to-buf"] = v_0_0 180 | v_0_ = v_0_0 181 | end 182 | local t_0_ = (_0_)["aniseed/locals"] 183 | t_0_["write-arr-to-buf"] = v_0_ 184 | write_arr_to_buf = v_0_ 185 | end 186 | local clear_highlights 187 | do 188 | local v_0_ 189 | local function clear_highlights0() 190 | if state["win-id"] then 191 | for i, h in ipairs(vim.fn.getmatches(state["win-id"])) do 192 | vim.fn.matchdelete(h.id, state["win-id"]) 193 | end 194 | return nil 195 | end 196 | end 197 | v_0_ = clear_highlights0 198 | local t_0_ = (_0_)["aniseed/locals"] 199 | t_0_["clear-highlights"] = v_0_ 200 | clear_highlights = v_0_ 201 | end 202 | local clear_buf 203 | do 204 | local v_0_ 205 | do 206 | local v_0_0 207 | local function clear_buf0() 208 | clear_highlights() 209 | return write_arr_to_buf({}) 210 | end 211 | v_0_0 = clear_buf0 212 | _0_["clear-buf"] = v_0_0 213 | v_0_ = v_0_0 214 | end 215 | local t_0_ = (_0_)["aniseed/locals"] 216 | t_0_["clear-buf"] = v_0_ 217 | clear_buf = v_0_ 218 | end 219 | local window_info 220 | do 221 | local v_0_ 222 | do 223 | local v_0_0 224 | local function window_info0() 225 | if state["win-id"] then 226 | return a.first(vim.fn.getwininfo(state["win-id"])) 227 | end 228 | end 229 | v_0_0 = window_info0 230 | _0_["window-info"] = v_0_0 231 | v_0_ = v_0_0 232 | end 233 | local t_0_ = (_0_)["aniseed/locals"] 234 | t_0_["window-info"] = v_0_ 235 | window_info = v_0_ 236 | end 237 | local highlight_range 238 | do 239 | local v_0_ 240 | do 241 | local v_0_0 242 | local function highlight_range0(_3_) 243 | local _arg_0_ = _3_ 244 | local bottom = _arg_0_["bottom"] 245 | local top = _arg_0_["top"] 246 | if state["win-id"] then 247 | local hlgroup = config["get-in"]({"highlight", "group"}) 248 | for i = vim.fn.floor(top), vim.fn.ceil(bottom) do 249 | vim.fn.matchaddpos(hlgroup, {i}, 10, -1, {window = state["win-id"]}) 250 | end 251 | return nil 252 | end 253 | end 254 | v_0_0 = highlight_range0 255 | _0_["highlight-range"] = v_0_0 256 | v_0_ = v_0_0 257 | end 258 | local t_0_ = (_0_)["aniseed/locals"] 259 | t_0_["highlight-range"] = v_0_ 260 | highlight_range = v_0_ 261 | end 262 | -- (def buf (nvim.create_buf false true)) (def opts table: 0x7fbc063d0108) (nvim.open_win buf 0 opts) (make-buf-and-win) (open-win) (write-arr-to-buf table: 0x7fbc06245778) (write-arr-to-buf table: 0x7fbc05e8dc00) (clear-buf) (close-win) (window-info) 263 | return nil -------------------------------------------------------------------------------- /lua/nvim-minimap/main.lua: -------------------------------------------------------------------------------- 1 | local _2afile_2a = "fnl/nvim-minimap/main.fnl" 2 | local _0_ 3 | do 4 | local name_0_ = "nvim-minimap.main" 5 | local module_0_ 6 | do 7 | local x_0_ = package.loaded[name_0_] 8 | if ("table" == type(x_0_)) then 9 | module_0_ = x_0_ 10 | else 11 | module_0_ = {} 12 | end 13 | end 14 | module_0_["aniseed/module"] = name_0_ 15 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 16 | do end (module_0_)["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 17 | do end (package.loaded)[name_0_] = module_0_ 18 | _0_ = module_0_ 19 | end 20 | local autoload 21 | local function _1_(...) 22 | return (require("nvim-minimap.aniseed.autoload")).autoload(...) 23 | end 24 | autoload = _1_ 25 | local function _2_(...) 26 | local ok_3f_0_, val_0_ = nil, nil 27 | local function _2_() 28 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.config"), autoload("nvim-minimap.float"), autoload("nvim-minimap.minimap"), autoload("nvim-minimap.aniseed.nvim")} 29 | end 30 | ok_3f_0_, val_0_ = pcall(_2_) 31 | if ok_3f_0_ then 32 | _0_["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", config = "nvim-minimap.config", float = "nvim-minimap.float", minimap = "nvim-minimap.minimap", nvim = "nvim-minimap.aniseed.nvim"}} 33 | return val_0_ 34 | else 35 | return print(val_0_) 36 | end 37 | end 38 | local _local_0_ = _2_(...) 39 | local a = _local_0_[1] 40 | local config = _local_0_[2] 41 | local float = _local_0_[3] 42 | local minimap = _local_0_[4] 43 | local nvim = _local_0_[5] 44 | local _2amodule_2a = _0_ 45 | local _2amodule_name_2a = "nvim-minimap.main" 46 | do local _ = ({nil, _0_, nil, {{}, nil, nil, nil}})[2] end 47 | local state 48 | do 49 | local v_0_ = ((_0_)["aniseed/locals"].state or {["running-timer"] = nil, opened = false}) 50 | local t_0_ = (_0_)["aniseed/locals"] 51 | t_0_["state"] = v_0_ 52 | state = v_0_ 53 | end 54 | local viml__3elua 55 | do 56 | local v_0_ 57 | local function viml__3elua0(name, opts) 58 | return ("lua require('" .. _2amodule_name_2a .. "')['" .. name .. "'](" .. ((opts and opts.args) or "") .. ")") 59 | end 60 | v_0_ = viml__3elua0 61 | local t_0_ = (_0_)["aniseed/locals"] 62 | t_0_["viml->lua"] = v_0_ 63 | viml__3elua = v_0_ 64 | end 65 | local calc_display_range 66 | do 67 | local v_0_ 68 | local function calc_display_range0(scale_factor) 69 | local minimap_window = float["window-info"]() 70 | local display_lines = (minimap_window.height / scale_factor) 71 | local total = vim.fn.line("$") 72 | local cur_win_top = vim.fn.line("w0") 73 | local cur_win_bottom = vim.fn.line("w$") 74 | local cur_win_lines = (cur_win_bottom - cur_win_top) 75 | if (cur_win_lines > display_lines) then 76 | return {bottom = (cur_win_top + display_lines), current = {bottom = minimap_window.height, top = 1}, top = cur_win_top} 77 | else 78 | local hrest = ((display_lines - cur_win_lines) / 2) 79 | local top_canditate = (cur_win_top - vim.fn.floor(hrest)) 80 | local bottom_canditate = (cur_win_bottom + vim.fn.ceil(hrest)) 81 | if (top_canditate > 0) then 82 | if (bottom_canditate <= total) then 83 | return {bottom = bottom_canditate, current = {bottom = (minimap_window.height - (hrest * scale_factor)), top = (hrest * scale_factor)}, top = top_canditate} 84 | else 85 | return {bottom = "$", current = {bottom = ((hrest + cur_win_lines) * scale_factor), top = (hrest * scale_factor)}, top = top_canditate} 86 | end 87 | else 88 | if (display_lines <= total) then 89 | return {bottom = a.inc(display_lines), current = {bottom = (cur_win_bottom * scale_factor), top = (cur_win_top * scale_factor)}, top = 1} 90 | else 91 | return {bottom = "$", current = {bottom = (cur_win_bottom * scale_factor), top = (cur_win_top * scale_factor)}, top = 1} 92 | end 93 | end 94 | end 95 | end 96 | v_0_ = calc_display_range0 97 | local t_0_ = (_0_)["aniseed/locals"] 98 | t_0_["calc-display-range"] = v_0_ 99 | calc_display_range = v_0_ 100 | end 101 | local render 102 | do 103 | local v_0_ 104 | local function render0(buf) 105 | local scale_factor = 0.25 106 | local range = calc_display_range(scale_factor) 107 | float["write-arr-to-buf"](minimap.minimap(buf, {["scale-factor"] = scale_factor, bottom = range.bottom, top = range.top})) 108 | return float["highlight-range"](range.current) 109 | end 110 | v_0_ = render0 111 | local t_0_ = (_0_)["aniseed/locals"] 112 | t_0_["render"] = v_0_ 113 | render = v_0_ 114 | end 115 | local stop_timer 116 | do 117 | local v_0_ 118 | local function stop_timer0(timer) 119 | if not timer:is_closing() then 120 | timer:stop() 121 | return timer:close() 122 | end 123 | end 124 | v_0_ = stop_timer0 125 | local t_0_ = (_0_)["aniseed/locals"] 126 | t_0_["stop-timer"] = v_0_ 127 | stop_timer = v_0_ 128 | end 129 | local refresh 130 | do 131 | local v_0_ 132 | do 133 | local v_0_0 134 | local function refresh0() 135 | if state.opened then 136 | local buf = vim.fn.bufnr("%") 137 | local ft = nvim.bo[buf].ft 138 | local excludes_3f 139 | local function _3_(x) 140 | return (x == ft) 141 | end 142 | excludes_3f = a.some(_3_, config["get-in"]({"filetype", "excludes"})) 143 | if not excludes_3f then 144 | if state["running-timer"] then 145 | stop_timer(state["running-timer"]) 146 | state["running-timer"] = nil 147 | end 148 | local timer = vim.loop.new_timer() 149 | local function _5_() 150 | float["clear-buf"]() 151 | render(buf) 152 | return stop_timer(timer) 153 | end 154 | timer:start(20, 0, vim.schedule_wrap(_5_)) 155 | state["running-timer"] = timer 156 | return nil 157 | end 158 | end 159 | end 160 | v_0_0 = refresh0 161 | _0_["refresh"] = v_0_0 162 | v_0_ = v_0_0 163 | end 164 | local t_0_ = (_0_)["aniseed/locals"] 165 | t_0_["refresh"] = v_0_ 166 | refresh = v_0_ 167 | end 168 | local open 169 | do 170 | local v_0_ 171 | do 172 | local v_0_0 173 | local function open0() 174 | local buf = vim.fn.bufnr("%") 175 | state.opened = true 176 | float["open-win"]() 177 | return render(buf) 178 | end 179 | v_0_0 = open0 180 | _0_["open"] = v_0_0 181 | v_0_ = v_0_0 182 | end 183 | local t_0_ = (_0_)["aniseed/locals"] 184 | t_0_["open"] = v_0_ 185 | open = v_0_ 186 | end 187 | local close 188 | do 189 | local v_0_ 190 | do 191 | local v_0_0 192 | local function close0() 193 | state.opened = false 194 | return float["close-win"]() 195 | end 196 | v_0_0 = close0 197 | _0_["close"] = v_0_0 198 | v_0_ = v_0_0 199 | end 200 | local t_0_ = (_0_)["aniseed/locals"] 201 | t_0_["close"] = v_0_ 202 | close = v_0_ 203 | end 204 | local toggle 205 | do 206 | local v_0_ 207 | do 208 | local v_0_0 209 | local function toggle0() 210 | if state.opened then 211 | return close() 212 | else 213 | return open() 214 | end 215 | end 216 | v_0_0 = toggle0 217 | _0_["toggle"] = v_0_0 218 | v_0_ = v_0_0 219 | end 220 | local t_0_ = (_0_)["aniseed/locals"] 221 | t_0_["toggle"] = v_0_ 222 | toggle = v_0_ 223 | end 224 | local init_commands 225 | do 226 | local v_0_ 227 | local function init_commands0() 228 | nvim.ex.command_("MinimapOpen", viml__3elua("open", {})) 229 | nvim.ex.command_("MinimapClose", viml__3elua("close", {})) 230 | nvim.ex.command_("MinimapToggle", viml__3elua("toggle", {})) 231 | return nvim.ex.command_("MinimapRefresh", viml__3elua("refresh", {})) 232 | end 233 | v_0_ = init_commands0 234 | local t_0_ = (_0_)["aniseed/locals"] 235 | t_0_["init-commands"] = v_0_ 236 | init_commands = v_0_ 237 | end 238 | local init_autocmds 239 | do 240 | local v_0_ 241 | local function init_autocmds0() 242 | nvim.ex.augroup("MinimapAutocmds") 243 | nvim.ex.autocmd_() 244 | nvim.ex.autocmd("WinEnter,BufEnter,FocusGained,CursorMoved,CursorMovedI,VimResized", "*", ("silent! " .. viml__3elua("refresh", {}))) 245 | return nvim.ex.augroup("END") 246 | end 247 | v_0_ = init_autocmds0 248 | local t_0_ = (_0_)["aniseed/locals"] 249 | t_0_["init-autocmds"] = v_0_ 250 | init_autocmds = v_0_ 251 | end 252 | local define_highlights 253 | do 254 | local v_0_ 255 | local function define_highlights0() 256 | return nvim.ex.highlight("MinimapCurrentLine ctermfg=green guifg=green") 257 | end 258 | v_0_ = define_highlights0 259 | local t_0_ = (_0_)["aniseed/locals"] 260 | t_0_["define-highlights"] = v_0_ 261 | define_highlights = v_0_ 262 | end 263 | local init 264 | do 265 | local v_0_ 266 | do 267 | local v_0_0 268 | local function init0() 269 | init_commands() 270 | define_highlights() 271 | if (config["get-in"]({"default_auto_cmds_enabled"}) == 1) then 272 | return init_autocmds() 273 | end 274 | end 275 | v_0_0 = init0 276 | _0_["init"] = v_0_0 277 | v_0_ = v_0_0 278 | end 279 | local t_0_ = (_0_)["aniseed/locals"] 280 | t_0_["init"] = v_0_ 281 | init = v_0_ 282 | end 283 | -- (open) (close) (toggle) (render (vim.fn.bufnr %)) (refresh) 284 | return nil -------------------------------------------------------------------------------- /lua/nvim-minimap/minimap.lua: -------------------------------------------------------------------------------- 1 | local _2afile_2a = "fnl/nvim-minimap/minimap.fnl" 2 | local _0_ 3 | do 4 | local name_0_ = "nvim-minimap.minimap" 5 | local module_0_ 6 | do 7 | local x_0_ = package.loaded[name_0_] 8 | if ("table" == type(x_0_)) then 9 | module_0_ = x_0_ 10 | else 11 | module_0_ = {} 12 | end 13 | end 14 | module_0_["aniseed/module"] = name_0_ 15 | module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {}) 16 | do end (module_0_)["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {}) 17 | do end (package.loaded)[name_0_] = module_0_ 18 | _0_ = module_0_ 19 | end 20 | local autoload 21 | local function _1_(...) 22 | return (require("nvim-minimap.aniseed.autoload")).autoload(...) 23 | end 24 | autoload = _1_ 25 | local function _2_(...) 26 | local ok_3f_0_, val_0_ = nil, nil 27 | local function _2_() 28 | return {autoload("nvim-minimap.aniseed.core"), autoload("nvim-minimap.aniseed.nvim"), autoload("nvim-minimap.aniseed.string")} 29 | end 30 | ok_3f_0_, val_0_ = pcall(_2_) 31 | if ok_3f_0_ then 32 | _0_["aniseed/local-fns"] = {autoload = {a = "nvim-minimap.aniseed.core", nvim = "nvim-minimap.aniseed.nvim", string = "nvim-minimap.aniseed.string"}} 33 | return val_0_ 34 | else 35 | return print(val_0_) 36 | end 37 | end 38 | local _local_0_ = _2_(...) 39 | local a = _local_0_[1] 40 | local nvim = _local_0_[2] 41 | local string = _local_0_[3] 42 | local _2amodule_2a = _0_ 43 | local _2amodule_name_2a = "nvim-minimap.minimap" 44 | do local _ = ({nil, _0_, nil, {{}, nil, nil, nil}})[2] end 45 | local braille_table 46 | do 47 | local v_0_ = ((_0_)["aniseed/locals"]["braille-table"] or {"\226\160\128", "\226\160\129", "\226\160\130", "\226\160\131", "\226\160\132", "\226\160\133", "\226\160\134", "\226\160\135", "\226\161\128", "\226\161\129", "\226\161\130", "\226\161\131", "\226\161\132", "\226\161\133", "\226\161\134", "\226\161\135", "\226\160\136", "\226\160\137", "\226\160\138", "\226\160\139", "\226\160\140", "\226\160\141", "\226\160\142", "\226\160\143", "\226\161\136", "\226\161\137", "\226\161\138", "\226\161\139", "\226\161\140", "\226\161\141", "\226\161\142", "\226\161\143", "\226\160\144", "\226\160\145", "\226\160\146", "\226\160\147", "\226\160\148", "\226\160\149", "\226\160\150", "\226\160\151", "\226\161\144", "\226\161\145", "\226\161\146", "\226\161\147", "\226\161\148", "\226\161\149", "\226\161\150", "\226\161\151", "\226\160\152", "\226\160\153", "\226\160\154", "\226\160\155", "\226\160\156", "\226\160\157", "\226\160\158", "\226\160\159", "\226\161\152", "\226\161\153", "\226\161\154", "\226\161\155", "\226\161\156", "\226\161\157", "\226\161\158", "\226\161\159", "\226\160\160", "\226\160\161", "\226\160\162", "\226\160\163", "\226\160\164", "\226\160\165", "\226\160\166", "\226\160\167", "\226\161\160", "\226\161\161", "\226\161\162", "\226\161\163", "\226\161\164", "\226\161\165", "\226\161\166", "\226\161\167", "\226\160\168", "\226\160\169", "\226\160\170", "\226\160\171", "\226\160\172", "\226\160\173", "\226\160\174", "\226\160\175", "\226\161\168", "\226\161\169", "\226\161\170", "\226\161\171", "\226\161\172", "\226\161\173", "\226\161\174", "\226\161\175", "\226\160\176", "\226\160\177", "\226\160\178", "\226\160\179", "\226\160\180", "\226\160\181", "\226\160\182", "\226\160\183", "\226\161\176", "\226\161\177", "\226\161\178", "\226\161\179", "\226\161\180", "\226\161\181", "\226\161\182", "\226\161\183", "\226\160\184", "\226\160\185", "\226\160\186", "\226\160\187", "\226\160\188", "\226\160\189", "\226\160\190", "\226\160\191", "\226\161\184", "\226\161\185", "\226\161\186", "\226\161\187", "\226\161\188", "\226\161\189", "\226\161\190", "\226\161\191", "\226\162\128", "\226\162\129", "\226\162\130", "\226\162\131", "\226\162\132", "\226\162\133", "\226\162\134", "\226\162\135", "\226\163\128", "\226\163\129", "\226\163\130", "\226\163\131", "\226\163\132", "\226\163\133", "\226\163\134", "\226\163\135", "\226\162\136", "\226\162\137", "\226\162\138", "\226\162\139", "\226\162\140", "\226\162\141", "\226\162\142", "\226\162\143", "\226\163\136", "\226\163\137", "\226\163\138", "\226\163\139", "\226\163\140", "\226\163\141", "\226\163\142", "\226\163\143", "\226\162\144", "\226\162\145", "\226\162\146", "\226\162\147", "\226\162\148", "\226\162\149", "\226\162\150", "\226\162\151", "\226\163\144", "\226\163\145", "\226\163\146", "\226\163\147", "\226\163\148", "\226\163\149", "\226\163\150", "\226\163\151", "\226\162\152", "\226\162\153", "\226\162\154", "\226\162\155", "\226\162\156", "\226\162\157", "\226\162\158", "\226\162\159", "\226\163\152", "\226\163\153", "\226\163\154", "\226\163\155", "\226\163\156", "\226\163\157", "\226\163\158", "\226\163\159", "\226\162\160", "\226\162\161", "\226\162\162", "\226\162\163", "\226\162\164", "\226\162\165", "\226\162\166", "\226\162\167", "\226\163\160", "\226\163\161", "\226\163\162", "\226\163\163", "\226\163\164", "\226\163\165", "\226\163\166", "\226\163\167", "\226\162\168", "\226\162\169", "\226\162\170", "\226\162\171", "\226\162\172", "\226\162\173", "\226\162\174", "\226\162\175", "\226\163\168", "\226\163\169", "\226\163\170", "\226\163\171", "\226\163\172", "\226\163\173", "\226\163\174", "\226\163\175", "\226\162\176", "\226\162\177", "\226\162\178", "\226\162\179", "\226\162\180", "\226\162\181", "\226\162\182", "\226\162\183", "\226\163\176", "\226\163\177", "\226\163\178", "\226\163\179", "\226\163\180", "\226\163\181", "\226\163\182", "\226\163\183", "\226\162\184", "\226\162\185", "\226\162\186", "\226\162\187", "\226\162\188", "\226\162\189", "\226\162\190", "\226\162\191", "\226\163\184", "\226\163\185", "\226\163\186", "\226\163\187", "\226\163\188", "\226\163\189", "\226\163\190", "\226\163\191"}) 48 | local t_0_ = (_0_)["aniseed/locals"] 49 | t_0_["braille-table"] = v_0_ 50 | braille_table = v_0_ 51 | end 52 | local braille_idx 53 | do 54 | local v_0_ 55 | local function braille_idx0(x, y) 56 | return ((2 ^ y) * (16 ^ x)) 57 | end 58 | v_0_ = braille_idx0 59 | local t_0_ = (_0_)["aniseed/locals"] 60 | t_0_["braille-idx"] = v_0_ 61 | braille_idx = v_0_ 62 | end 63 | local __3ebraille 64 | do 65 | local v_0_ 66 | local function __3ebraille0(...) 67 | local function _3_(acc, x) 68 | return (acc + x) 69 | end 70 | return braille_table[a.inc(a.reduce(_3_, 0, {...}))] 71 | end 72 | v_0_ = __3ebraille0 73 | local t_0_ = (_0_)["aniseed/locals"] 74 | t_0_["->braille"] = v_0_ 75 | __3ebraille = v_0_ 76 | end 77 | local get_buffer_lines 78 | do 79 | local v_0_ 80 | local function get_buffer_lines0(buf, top, bottom) 81 | return vim.fn.getbufline(buf, top, bottom) 82 | end 83 | v_0_ = get_buffer_lines0 84 | local t_0_ = (_0_)["aniseed/locals"] 85 | t_0_["get-buffer-lines"] = v_0_ 86 | get_buffer_lines = v_0_ 87 | end 88 | local lines__3erange_list 89 | do 90 | local v_0_ 91 | local function lines__3erange_list0(lines) 92 | local f 93 | local function _3_(l) 94 | local ll = #l 95 | local t = {["end"] = 0, begin = ll} 96 | local idx_of 97 | local function _4_(l0, i) 98 | local idx = a.inc(i) 99 | return l0:sub(idx, idx) 100 | end 101 | idx_of = _4_ 102 | for i = 0, ll do 103 | if (t.begin < ll) then break end 104 | if not string["blank?"](idx_of(l, i)) then 105 | t.begin = i 106 | end 107 | end 108 | for i = ll, 0, -1 do 109 | if (t["end"] > 1) then break end 110 | if not string["blank?"](idx_of(l, i)) then 111 | t["end"] = i 112 | end 113 | end 114 | return t 115 | end 116 | f = _3_ 117 | return a.map(f, lines) 118 | end 119 | v_0_ = lines__3erange_list0 120 | local t_0_ = (_0_)["aniseed/locals"] 121 | t_0_["lines->range-list"] = v_0_ 122 | lines__3erange_list = v_0_ 123 | end 124 | local scale 125 | do 126 | local v_0_ 127 | local function scale0(factor, ls) 128 | local x_factor = factor 129 | local __3escale 130 | local function _4_(_3_) 131 | local _arg_0_ = _3_ 132 | local begin = _arg_0_["begin"] 133 | local _end = _arg_0_["end"] 134 | return {["end"] = (_end * x_factor), begin = (begin * x_factor)} 135 | end 136 | __3escale = _4_ 137 | return a.map(__3escale, ls) 138 | end 139 | v_0_ = scale0 140 | local t_0_ = (_0_)["aniseed/locals"] 141 | t_0_["scale"] = v_0_ 142 | scale = v_0_ 143 | end 144 | local __3echunks 145 | do 146 | local v_0_ 147 | local function __3echunks0(n, ls) 148 | local t = {i = 0, result = {}, tmp = {}} 149 | for i, l in ipairs(ls) do 150 | table.insert(t.tmp, l) 151 | if (t.i == a.dec(n)) then 152 | table.insert(t.result, t.tmp) 153 | t.tmp = {} 154 | t.i = 0 155 | else 156 | t.i = a.inc(t.i) 157 | end 158 | end 159 | if not a["empty?"](t.tmp) then 160 | table.insert(t.result, t.tmp) 161 | end 162 | return t.result 163 | end 164 | v_0_ = __3echunks0 165 | local t_0_ = (_0_)["aniseed/locals"] 166 | t_0_["->chunks"] = v_0_ 167 | __3echunks = v_0_ 168 | end 169 | local __3eline 170 | do 171 | local v_0_ 172 | local function __3eline0(chunk) 173 | local result = "" 174 | for i = 0, 100, 2 do 175 | local b_idx = 0 176 | for j, v in ipairs(chunk) do 177 | local _let_0_ = v 178 | local begin = _let_0_["begin"] 179 | local _end = _let_0_["end"] 180 | local di = a.dec(i) 181 | local dj = a.dec(j) 182 | if ((begin <= di) and (_end > di)) then 183 | b_idx = (b_idx + braille_idx(0, dj)) 184 | end 185 | if ((begin <= i) and (_end > i)) then 186 | b_idx = (b_idx + braille_idx(1, dj)) 187 | end 188 | end 189 | result = (result .. __3ebraille(b_idx)) 190 | end 191 | return result 192 | end 193 | v_0_ = __3eline0 194 | local t_0_ = (_0_)["aniseed/locals"] 195 | t_0_["->line"] = v_0_ 196 | __3eline = v_0_ 197 | end 198 | local __3eminimap_lines 199 | do 200 | local v_0_ 201 | local function __3eminimap_lines0(chunks) 202 | return a.map(__3eline, chunks) 203 | end 204 | v_0_ = __3eminimap_lines0 205 | local t_0_ = (_0_)["aniseed/locals"] 206 | t_0_["->minimap-lines"] = v_0_ 207 | __3eminimap_lines = v_0_ 208 | end 209 | local minimap 210 | do 211 | local v_0_ 212 | do 213 | local v_0_0 214 | local function minimap0(buf, _3_) 215 | local _arg_0_ = _3_ 216 | local bottom = _arg_0_["bottom"] 217 | local scale_factor = _arg_0_["scale-factor"] 218 | local top = _arg_0_["top"] 219 | return __3eminimap_lines(__3echunks(4, scale(scale_factor, lines__3erange_list(get_buffer_lines(buf, top, bottom))))) 220 | end 221 | v_0_0 = minimap0 222 | _0_["minimap"] = v_0_0 223 | v_0_ = v_0_0 224 | end 225 | local t_0_ = (_0_)["aniseed/locals"] 226 | t_0_["minimap"] = v_0_ 227 | minimap = v_0_ 228 | end 229 | -- (->braille (braille-idx 0 0)) (->braille (braille-idx 0 0) (braille-idx 1 0) (braille-idx 0 2)) (scale 0.25 table: 0x7fbc0617a220) (->chunks 4 table: 0x7fbc06209658) (->line table: 0x7fbc062b0010) (minimap (vim.fn.bufnr %)) 230 | return nil -------------------------------------------------------------------------------- /plugin/nvim-minimap.vim: -------------------------------------------------------------------------------- 1 | if has("nvim") 2 | lua require("nvim-minimap.main").init() 3 | endif 4 | -------------------------------------------------------------------------------- /scripts/dep.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Clones a GitHub repo into deps/{name} if it's not there already. 4 | # Will update the repository each time and ensure the right commit is checked out. 5 | # Args: GitHub user, repository name, checkout target. 6 | # Usage (after copying to your scripts directory): scripts/dep.sh Olical aniseed vX.Y.Z 7 | 8 | mkdir -p deps 9 | 10 | if [ ! -d "deps/$2" ]; then 11 | git clone "https://github.com/$1/$2.git" "deps/$2" 12 | fi 13 | 14 | cd "deps/$2" && git fetch && git checkout "$3" 15 | 16 | -------------------------------------------------------------------------------- /test/fnl/nvim-minimap/main-test.fnl: -------------------------------------------------------------------------------- 1 | (module nvim-minimap.main-test) 2 | 3 | (deftest something-simple 4 | (t.= 1 1 "1 should equal 1, I hope!")) 5 | --------------------------------------------------------------------------------