diff options
| author | Mike Vink <> | 2023-04-13 00:31:22 +0200 |
|---|---|---|
| committer | Mike Vink <> | 2023-04-13 00:31:22 +0200 |
| commit | 6c077a58826feddf831cd3a9c2d9c17899be0b68 (patch) | |
| tree | 2169b8279b23f7ba992b39b611b8c028b14c6b65 /fnl/conf | |
| parent | b53108c413d6cb25e5a6ae55aef13a8173c052c9 (diff) | |
little bit
Diffstat (limited to 'fnl/conf')
| -rw-r--r-- | fnl/conf/wict-nvim/effects.fnl | 9 | ||||
| -rw-r--r-- | fnl/conf/wictl-nvim/init.fnl | 5 | ||||
| -rw-r--r-- | fnl/conf/wictl-nvim/term.fnl | 51 |
3 files changed, 58 insertions, 7 deletions
diff --git a/fnl/conf/wict-nvim/effects.fnl b/fnl/conf/wict-nvim/effects.fnl index 160fbce..e4321da 100644 --- a/fnl/conf/wict-nvim/effects.fnl +++ b/fnl/conf/wict-nvim/effects.fnl @@ -2,7 +2,7 @@ (local window {}) (local aug vim.api.nvim_create_augroup) -(local del-aug vim.api.nvim_del_augroup_by_id) +(local del-aug (fn [] (vim.api.nvim_create_augroup :EffectsMgr {:clear true}))) (local au vim.api.nvim_create_autocmd) (local winvar (fn [...] (pcall vim.api.nvim_win_get_var ...))) (local unmap (fn [{: mode : lhs : opts}] (pcall vim.keymap.del mode lhs opts))) @@ -15,6 +15,8 @@ (fn window.open [self buf frame] (set frame.style :minimal) (set self.handle (vim.api.nvim_open_win buf false frame)) + (P self.handle :before-setvar) + (vim.api.nvim_buf_set_var buf :effect-window self) (vim.api.nvim_win_set_var self.handle :effect-window self) (if self.enter (vim.api.nvim_set_current_win self.handle))) @@ -47,11 +49,13 @@ (fn m.attach [self] (set self.augroup (aug :EffectsMgr {:clear true})) - (au [:WinEnter :BufEnter] + (au [:WinEnter] {:group self.augroup :pattern "*" :callback (fn [cb-info] + (P :effectEnter) (local (ok? win) (winvar 0 :effect-window)) + (P ok? win) (if (not ok?) (self:close) (do @@ -59,6 +63,7 @@ (self:win-maps win)))))})) (fn m.win-maps [self win] + (P win) (if self.unmap (self.unmap)) (set self.unmap (fn [] diff --git a/fnl/conf/wictl-nvim/init.fnl b/fnl/conf/wictl-nvim/init.fnl index 3aeeb9b..bd04182 100644 --- a/fnl/conf/wictl-nvim/init.fnl +++ b/fnl/conf/wictl-nvim/init.fnl @@ -33,7 +33,8 @@ (local ensure-complete-project (fn [config] (var config (or config {:terms []})) (if (not config.terms) - (set config.terms [{:name :k9s :cmd :k9s}])) + (set config.terms + [{:name :k9s :cmd :bash}])) config)) (local get-project (fn [] @@ -53,3 +54,5 @@ (m.Save) (m.Read cache_config) (m.Get-Terms-Config) + +m diff --git a/fnl/conf/wictl-nvim/term.fnl b/fnl/conf/wictl-nvim/term.fnl index 1aea597..51e263a 100644 --- a/fnl/conf/wictl-nvim/term.fnl +++ b/fnl/conf/wictl-nvim/term.fnl @@ -1,11 +1,54 @@ -(local ui-bld (require :conf.wict-nvim)) +(tset package.loaded :conf.wict-nvim nil) +(local ui (require :conf.wict-nvim)) +(tset package.loaded :conf.wict-nvim.effects nil) (local ui-eff (require :conf.wict-nvim.effects)) + +(tset package.loaded :conf.wictl-nvim nil) +(local wictl (require :conf.wictl-nvim)) + +(local Resolver (require :conf.wictl-nvim.resolvers)) +(local ui-bld ui.builder) (local M {}) (local ProjectBufs {}) -(local ui (-> (ui-bld.For {:buffer M.selected-buffer}))) +(var selected nil) +(local term-ui (-> (ui-bld.For {:buffer (fn [] selected) + :maps [{:mode [:n :v :o] + :lhs :q + :rhs (fn [effects window] + (fn [] + (P :quitting!) + (effects:close)))}]}) + (ui-bld.Padding 2) + (ui-bld.Build (ui-eff:new)))) + +(fn M.open [idx] + (local new-term-buf (fn [] + (local (buf_handle term_handle) (M.start idx)) + (tset ProjectBufs (Resolver.project_key) idx + {: buf_handle : term_handle}) + {: buf_handle : term_handle})) + (local proj (or (. ProjectBufs (Resolver.project_key)) + (do + (local p []) + (tset ProjectBufs (Resolver.project_key) p) + p))) + (var term (or (. proj idx) (new-term-buf))) + (if (or (not (vim.api.nvim_buf_is_valid term.buf_handle)) + (not (vim.api.nvim_buf_get_var term.buf_handle :terminal_job_id))) + (set term (new-term-buf))) + (set selected term.buf_handle) + (term-ui ui.root-frame)) -(fn M.open [idx]) -(fn M.start []) +(fn M.start [idx] + (P :starting) + (local term (. (wictl.Get-Terms-Config) idx)) + (local prestart-buf (vim.api.nvim_get_current_buf)) + (vim.cmd (.. "edit term://" term.cmd)) + (local buf_handle (vim.api.nvim_get_current_buf)) + (local term_handle vim.b.terminal_job_id) + (vim.api.nvim_buf_set_option buf_handle :bufhidden :hide) + (vim.api.nvim_set_current_buf prestart-buf) + (values buf_handle term_handle)) M |
