summaryrefslogtreecommitdiff
path: root/fnl/conf
diff options
context:
space:
mode:
authorMike Vink <>2023-04-11 22:39:59 +0200
committerMike Vink <>2023-04-11 22:39:59 +0200
commited09c3ecc940138fda9a63288ec1df18ea9d8f38 (patch)
tree0e9b7fc5a4b40803e7a342d2274fc83b25ad56ac /fnl/conf
parent73d25fc971ecd3f166d8fd6da663d3494933caad (diff)
move stuff
Diffstat (limited to 'fnl/conf')
-rw-r--r--fnl/conf/exctl/init.fnl28
-rw-r--r--fnl/conf/wict-nvim/builder.fnl (renamed from fnl/conf/exctl/builder.fnl)55
-rw-r--r--fnl/conf/wict-nvim/effects.fnl (renamed from fnl/conf/exctl/effects.fnl)0
-rw-r--r--fnl/conf/wict-nvim/frames/frame.fnl (renamed from fnl/conf/exctl/frames/frame.fnl)2
-rw-r--r--fnl/conf/wict-nvim/frames/vec.fnl (renamed from fnl/conf/exctl/frames/vec.fnl)0
-rw-r--r--fnl/conf/wict-nvim/init.fnl33
-rw-r--r--fnl/conf/wictl-nvim/init.fnl30
7 files changed, 103 insertions, 45 deletions
diff --git a/fnl/conf/exctl/init.fnl b/fnl/conf/exctl/init.fnl
deleted file mode 100644
index 0e07bba..0000000
--- a/fnl/conf/exctl/init.fnl
+++ /dev/null
@@ -1,28 +0,0 @@
-(tset package.loaded :conf.exctl.frames.vec nil)
-(local vec (require :conf.exctl.frames.vec))
-
-(tset package.loaded :conf.exctl.frames.frame nil)
-(local frame (require :conf.exctl.frames.frame))
-
-(tset package.loaded :conf.exctl.builder nil)
-(local builder (require :conf.exctl.builder))
-
-(tset package.loaded :conf.exctl.effects nil)
-(local effects (require :conf.exctl.effects))
-
-(local root-frame (frame (vec.vec 0 0) (vec.vec vim.o.columns 0)
- (vec.vec 0 vim.o.lines)))
-
-(local painter (-> (builder:new)
- (builder.For {:buffer (fn [] 0)
- :maps [{:mode [:n :v :o]
- :lhs :q
- :rhs (fn [effects window]
- (fn []
- (effects:close)))}]})
- (builder.Padding 5)
- (builder.Beside (-> (builder:new)
- (builder.For {:buffer (fn [] 0)})))
- (builder.Build (effects:new))))
-
-(painter root-frame)
diff --git a/fnl/conf/exctl/builder.fnl b/fnl/conf/wict-nvim/builder.fnl
index eb02b2b..177b773 100644
--- a/fnl/conf/exctl/builder.fnl
+++ b/fnl/conf/wict-nvim/builder.fnl
@@ -1,6 +1,6 @@
-(tset package.loaded :conf.exctl.frames.frame nil)
-(local vec (require :conf.exctl.frames.vec))
-(local frame (require :conf.exctl.frames.frame))
+(tset package.loaded :conf.wict-nvim.frames.frame nil)
+(local vec (require :conf.wict-nvim.frames.vec))
+(local frame (require :conf.wict-nvim.frames.frame))
(local m {})
;; Creates a new painter that wraps the paint and close methods of a painter
@@ -24,18 +24,34 @@
(vec.vec pad-width (- 1 pad-height))))
(transformed frm))))
+(local beside (fn [p1 p2 size]
+ (local size (or size 0.5))
+ (local left
+ (transform-painter p1 (vec.vec 0 0) (vec.vec size 0)
+ (vec.vec 0 1)))
+ (local right
+ (transform-painter p2 (vec.vec size 0) (vec.vec 1 0)
+ (vec.vec size 1)))
+ (fn [frm]
+ (left frm)
+ (right frm))))
+
(local builder {})
-;;
-(fn builder.For [self partial-painter ...]
- (table.insert self.partial-painters partial-painter)
- self)
(fn builder.Padding [self size]
(table.insert self.partial-painters {:op :pad : size})
self)
-(fn builder.Beside [self partial-builder]
- (table.insert self.partial-painters {:op :beside : partial-builder})
+(fn builder.Beside [self partial-builder size]
+ (table.insert self.partial-painters {:op :beside : partial-builder : size})
+ self)
+
+(fn builder.LeftOf [self partial-builder size]
+ (table.insert self.partial-painters {:op :left : partial-builder : size})
+ self)
+
+(fn builder.RightOf [self partial-builder size]
+ (table.insert self.partial-painters {:op :right : partial-builder : size})
self)
(fn builder.build-painter [self effects]
@@ -44,9 +60,17 @@
(match partial-painter
{:op :pad : size} (do
(pad painter size))
+ {:op :left : partial-builder} (do
+ (beside painter
+ (partial-builder:build-painter effects)
+ partial-painter.size))
+ {:op :right : partial-builder} (do
+ (beside (partial-builder:build-painter effects)
+ painter partial-painter.size))
{:op :beside : partial-builder} (do
- (P (partial-builder:build-painter effects))
- painter)
+ (beside painter
+ (partial-builder:build-painter effects)
+ partial-painter.size))
{: maps : buffer} (do
(local window (effects:new-window maps))
(local painter-ptr painter)
@@ -61,16 +85,15 @@
_ painter))))
(fn builder.Build [self effects]
- ;; TODO(mike): probably nice to model effects as pub sub pattern to make it rely less on references to mutable tables.
(local painter (self:build-painter effects))
(fn [frm]
(effects:attach)
(painter frm)))
-(fn builder.new [self]
- (local bldr {:partial-painters []})
- (setmetatable bldr self)
- (set self.__index self)
+(fn builder.For [partial-painter]
+ (local bldr {:partial-painters [partial-painter]})
+ (setmetatable bldr builder)
+ (set builder.__index builder)
bldr)
builder
diff --git a/fnl/conf/exctl/effects.fnl b/fnl/conf/wict-nvim/effects.fnl
index 160fbce..160fbce 100644
--- a/fnl/conf/exctl/effects.fnl
+++ b/fnl/conf/wict-nvim/effects.fnl
diff --git a/fnl/conf/exctl/frames/frame.fnl b/fnl/conf/wict-nvim/frames/frame.fnl
index e7cd1e9..d32c9b5 100644
--- a/fnl/conf/exctl/frames/frame.fnl
+++ b/fnl/conf/wict-nvim/frames/frame.fnl
@@ -1,4 +1,4 @@
-(local vec (require :conf.exctl.frames.vec))
+(local vec (require :conf.wict-nvim.frames.vec))
(local m {})
(local frame {})
diff --git a/fnl/conf/exctl/frames/vec.fnl b/fnl/conf/wict-nvim/frames/vec.fnl
index 4a9515d..4a9515d 100644
--- a/fnl/conf/exctl/frames/vec.fnl
+++ b/fnl/conf/wict-nvim/frames/vec.fnl
diff --git a/fnl/conf/wict-nvim/init.fnl b/fnl/conf/wict-nvim/init.fnl
new file mode 100644
index 0000000..bf712e2
--- /dev/null
+++ b/fnl/conf/wict-nvim/init.fnl
@@ -0,0 +1,33 @@
+(tset package.loaded :conf.wict-nvim.frames.vec nil)
+(local vec (require :conf.wict-nvim.frames.vec))
+
+(tset package.loaded :conf.wict-nvim.frames.frame nil)
+(local frame (require :conf.wict-nvim.frames.frame))
+
+(tset package.loaded :conf.wict-nvim.builder nil)
+(local builder (require :conf.wict-nvim.builder))
+
+(tset package.loaded :conf.wict-nvim.effects nil)
+(local effects (require :conf.wict-nvim.effects))
+
+(local m {})
+
+(local root-frame (frame (vec.vec 0 0) (vec.vec vim.o.columns 0)
+ (vec.vec 0 vim.o.lines)))
+
+(local painter (-> (builder.For {:buffer (fn [] 0)
+ :maps [{:mode [:n :v :o]
+ :lhs :q
+ :rhs (fn [effects window]
+ (fn []
+ (effects:close)))}]})
+ (builder.Beside (-> (builder.For {:buffer (fn [] 0)
+ :maps []}))
+ 0.5)
+ (builder.Padding 5)
+ (builder.Build (effects:new))))
+
+; (painter root-frame)
+{: root-frame
+ : builder
+ : effects}
diff --git a/fnl/conf/wictl-nvim/init.fnl b/fnl/conf/wictl-nvim/init.fnl
new file mode 100644
index 0000000..a6aca91
--- /dev/null
+++ b/fnl/conf/wictl-nvim/init.fnl
@@ -0,0 +1,30 @@
+(tset package.loaded :conf.wict-nvim nil)
+(local wict (require :conf.wict-nvim))
+
+(local bld wict.builder)
+(local eff wict.effects)
+
+(local m {})
+
+(local WictlConfig {})
+;; {
+;; ["/path/to/project"] = {
+;; jobs = [...]
+;; terms = [{cmd = "k9s"}]
+;; }
+(var last-buf -1)
+(local ui (-> (bld.For {:buffer (fn [] (P last-buf)
+ last-buf)
+ :maps [{:mode [:n :v :o]
+ :lhs :q
+ :rhs (fn [effects window]
+ (fn [] (effects:close)))}]})
+ (bld.Padding 1)
+ (bld.RightOf (-> (bld.For {:buffer (fn []
+ (P last-buf)
+ last-buf)
+ :maps []})
+ (bld.Padding 1)) 0.2)
+ (bld.Build (eff:new))))
+
+(ui wict.root-frame)