aboutsummaryrefslogtreecommitdiff
path: root/fnl
diff options
context:
space:
mode:
authoramelia squires <[email protected]>2024-10-22 23:40:30 -0500
committeramelia squires <[email protected]>2024-10-22 23:40:30 -0500
commit0b7b1684d87b7d0b01b5645713b413e317699fd0 (patch)
tree70d54faa4536e97894754e63061f0d2fad99079c /fnl
readme
Diffstat (limited to 'fnl')
-rw-r--r--fnl/defaults.fnl8
-rw-r--r--fnl/keybinds.fnl60
-rw-r--r--fnl/opt.fnl13
-rw-r--r--fnl/plugins/cmp.fnl23
-rw-r--r--fnl/plugins/lsp_signature.fnl1
-rw-r--r--fnl/plugins/lspconfig.fnl10
-rw-r--r--fnl/plugins/neo_tree.fnl20
-rw-r--r--fnl/plugins/notify.fnl1
-rw-r--r--fnl/plugins/toggleterm.fnl1
-rw-r--r--fnl/plugins/treesitter.fnl3
-rw-r--r--fnl/plugins/which_key.fnl14
-rw-r--r--fnl/plugins/wilder.fnl21
-rw-r--r--fnl/plugins/winshift.fnl1
-rw-r--r--fnl/settings.fnl16
14 files changed, 192 insertions, 0 deletions
diff --git a/fnl/defaults.fnl b/fnl/defaults.fnl
new file mode 100644
index 0000000..aa75f3a
--- /dev/null
+++ b/fnl/defaults.fnl
@@ -0,0 +1,8 @@
+(lambda default [key value ?force]
+ (when (or (= (. _G.settings key) nil) ?force) (tset _G.settings key value)))
+
+(lambda defaults [force]
+ (default :colorscheme :oxocarbon force)
+ (default :lsp "lua_ls,clangd,zls,csharp_ls,ts_ls" force))
+
+(defaults false)
diff --git a/fnl/keybinds.fnl b/fnl/keybinds.fnl
new file mode 100644
index 0000000..f3ad8f2
--- /dev/null
+++ b/fnl/keybinds.fnl
@@ -0,0 +1,60 @@
+(require-macros :hibiscus.vim)
+
+(vim.opt.whichwrap:append {
+ :< true
+ :> true
+ "[" true
+ "]" true
+ :h true
+ :l true})
+
+(map! [n] :<c-k> "<cmd>:wincmd k<CR>")
+(map! [n] :<c-j> "<cmd>:wincmd j<CR>")
+(map! [n] :<c-h> "<cmd>:wincmd h<CR>")
+(map! [n] :<c-l> "<cmd>:wincmd l<CR>")
+
+;; floating mode
+
+(local libmodal (require :libmodal))
+
+(local move_win (lambda [drow dcol]
+ (local win (vim.api.nvim_win_get_config 0))
+ (when (= win.relative "") (lua "return nil"))
+ (tset win :row (+ win.row drow))
+ (tset win :col (+ win.col dcol))
+ (vim.api.nvim_win_set_config 0 win)))
+
+(local resize_win (lambda [drow dcol]
+ (local win (vim.api.nvim_win_get_config 0))
+ (tset win :height (+ win.height drow))
+ (tset win :width (+ win.width dcol))
+ (vim.api.nvim_win_set_config 0 win)))
+
+
+(local t (lambda []
+ (local win (vim.api.nvim_win_get_config 0))
+ (tset win :bufpos [0 100])
+ (vim.api.nvim_win_set_config 0 win)))
+
+(local aww (fn []
+ (local keys {
+ (vim.keycode :<c-j>) (fn [] (resize_win 2 0))
+ (vim.keycode :<c-k>) (fn [] (resize_win -2 0))
+ (vim.keycode :<c-h>) (fn [] (resize_win 0 -2))
+ (vim.keycode :<c-l>) (fn [] (resize_win 0 2))
+
+ :j (fn [] (move_win 2 0))
+ :k (fn [] (move_win -2 0))
+ :h (fn [] (move_win 0 -2))
+ :l (fn [] (move_win 0 2))
+
+ :d (fn [] (t))})
+
+ (local float_mode (libmodal.mode.new :floating keys))
+ (float_mode:enter)))
+
+(map! [n] :<c-f> (fn [] (aww)))
+
+;; exit terminal mode like a normal human
+(map! [t] :<esc> "<C-\\><C-n>")
+
diff --git a/fnl/opt.fnl b/fnl/opt.fnl
new file mode 100644
index 0000000..e28645c
--- /dev/null
+++ b/fnl/opt.fnl
@@ -0,0 +1,13 @@
+(tset vim.opt :wrap false)
+(tset vim.opt :linebreak false)
+
+(tset vim.opt :tabstop 2)
+(tset vim.opt :shiftwidth 2)
+(tset vim.bo :softtabstop 2)
+(tset vim.opt :expandtab true)
+
+(tset vim.opt :number true)
+(tset vim.o :signcolumn :yes)
+(tset vim.opt :termguicolors true)
+;--vim.opt.fillchars = { eob = ""}
+(vim.cmd (.. "colorscheme " _G.settings.colorscheme))
diff --git a/fnl/plugins/cmp.fnl b/fnl/plugins/cmp.fnl
new file mode 100644
index 0000000..8d13986
--- /dev/null
+++ b/fnl/plugins/cmp.fnl
@@ -0,0 +1,23 @@
+(local cmp (require :cmp))
+
+((. cmp :setup) {
+ :snippet {
+ :expand (fn [args]
+ (vim.snippet.expand args.body)
+ ;((. vim.fn "vsnip#anonymous") args.body) ;for older neovim version (< 0.10)
+ )}
+ :mapping (cmp.mapping.preset.insert {
+ :<C-b> (cmp.mapping.scroll_docs -4)
+ :<C-f> (cmp.mapping.scroll_docs 4)
+ :<C-Space> (cmp.mapping.complete)
+ :<C-e> (cmp.mapping.abort)
+ :<CR> (cmp.mapping.confirm {select true})
+ :<Tab> (cmp.mapping (cmp.mapping.select_next_item) [:i :s])
+ })
+ :sources (cmp.config.sources [
+ {:name :nvim_lsp}
+ ;{:name :vsnip}
+ ] [{:name :buffer}])
+ })
+
+
diff --git a/fnl/plugins/lsp_signature.fnl b/fnl/plugins/lsp_signature.fnl
new file mode 100644
index 0000000..9b5509d
--- /dev/null
+++ b/fnl/plugins/lsp_signature.fnl
@@ -0,0 +1 @@
+((. (require :lsp_signature) :setup))
diff --git a/fnl/plugins/lspconfig.fnl b/fnl/plugins/lspconfig.fnl
new file mode 100644
index 0000000..7034e33
--- /dev/null
+++ b/fnl/plugins/lspconfig.fnl
@@ -0,0 +1,10 @@
+(var capabilities (require :cmp_nvim_lsp))
+(set capabilities (capabilities.default_capabilities))
+(local lsp _G.settings.lsp)
+(local config_table {})
+(local lspconfig (require :lspconfig))
+
+(each [language (lsp:gmatch "([^,]+)")]
+ (when (= (. config_table language) nil) (tset config_table language {}))
+ (tset (. config_table language) :capabilities capabilities)
+ ((. (. lspconfig language) :setup) (. config_table language)))
diff --git a/fnl/plugins/neo_tree.fnl b/fnl/plugins/neo_tree.fnl
new file mode 100644
index 0000000..76bf708
--- /dev/null
+++ b/fnl/plugins/neo_tree.fnl
@@ -0,0 +1,20 @@
+((. (require :neo-tree) :setup) {
+ :close_if_last_window true
+ :default_component_configs {
+ :git_status {
+ :symbols {
+ :added :+
+ :modified :m
+ :deleted :x
+ :renamed :->
+
+ :untracked " "
+ :ignored " "
+ :unstaged :*
+ :staged " "
+ :conflict ":("}}}
+ :window {
+ :position :left
+ :width 30}
+ :filesystem {
+ :use_libuv_file_watcher true}})
diff --git a/fnl/plugins/notify.fnl b/fnl/plugins/notify.fnl
new file mode 100644
index 0000000..4084871
--- /dev/null
+++ b/fnl/plugins/notify.fnl
@@ -0,0 +1 @@
+(tset vim :notify (require :notify))
diff --git a/fnl/plugins/toggleterm.fnl b/fnl/plugins/toggleterm.fnl
new file mode 100644
index 0000000..aed1edc
--- /dev/null
+++ b/fnl/plugins/toggleterm.fnl
@@ -0,0 +1 @@
+((. (require :toggleterm) :setup) {:persist_mode true :persistant_size true})
diff --git a/fnl/plugins/treesitter.fnl b/fnl/plugins/treesitter.fnl
new file mode 100644
index 0000000..4b2a687
--- /dev/null
+++ b/fnl/plugins/treesitter.fnl
@@ -0,0 +1,3 @@
+((. (require :nvim-treesitter.configs) :setup)
+ {:highlight {
+ :enable true}})
diff --git a/fnl/plugins/which_key.fnl b/fnl/plugins/which_key.fnl
new file mode 100644
index 0000000..959e0a6
--- /dev/null
+++ b/fnl/plugins/which_key.fnl
@@ -0,0 +1,14 @@
+(local whichkey (require :which-key))
+(whichkey.setup)
+
+(local mappings {
+ 1 {1 " f" 2 "<cmd>Neotree toggle<CR>" :desc "fs"}
+ 2 {1 " w" 2 "<cmd>WinShift<CR>" :desc "win shift"}
+ 3 {1 " t" 2 "<cmd>ToggleTerm direction=horizontal<CR>" :desc "hterm"}
+
+ :mode [:n :v]
+ :silent true
+ :noremap true
+ :nowait true})
+
+(whichkey.add mappings)
diff --git a/fnl/plugins/wilder.fnl b/fnl/plugins/wilder.fnl
new file mode 100644
index 0000000..56b4155
--- /dev/null
+++ b/fnl/plugins/wilder.fnl
@@ -0,0 +1,21 @@
+(local gradient [:#74d7ec :#96cde2 :#b9c3d9 :#dcb9d0 :#ffafc7 :#ffafc7 :#fec1d2 :#fdd4de
+ :#fce6e9 :#fbf9f5 :#fbf9f5 :#fce8ea :#fdd7e0 :#fec6d5 :#ffb5cb :#ffb5cb :#dcbdd2 :#b9c5da
+ :#96cde2 :#73d5ea])
+
+(local wilder (require :wilder))
+(wilder.setup {:modes [:: :/ :?]})
+
+;this like 'builds' the gradient? idk
+(each [i fg (ipairs gradient)]
+ (tset gradient i
+ (wilder.make_hl (.. :WilderGradient i) :Pmenu [{:a 1} {:a 1} {:foreground fg}])))
+
+(wilder.set_option :renderer (wilder.wildmenu_renderer {
+ :separator " . "
+ :left [" "]
+ :right [" "]
+
+ :highlights {:gradient gradient}
+
+ :highlighter (wilder.highlighter_with_gradient [
+ (wilder.basic_highlighter)])}))
diff --git a/fnl/plugins/winshift.fnl b/fnl/plugins/winshift.fnl
new file mode 100644
index 0000000..542f15c
--- /dev/null
+++ b/fnl/plugins/winshift.fnl
@@ -0,0 +1 @@
+((. (require :winshift) :setup))
diff --git a/fnl/settings.fnl b/fnl/settings.fnl
new file mode 100644
index 0000000..0a4178c
--- /dev/null
+++ b/fnl/settings.fnl
@@ -0,0 +1,16 @@
+(local path (.. (vim.fn.stdpath :data) :/_owo_))
+
+(lambda _get [_ key]
+ (local file (io.open (.. path key) :rb))
+ (when (= file nil) nil)
+
+ (local value (file:read :*a))
+ (io.close file)
+ value)
+
+(lambda _set [_ key value]
+ (local file (io.open (.. path key) :w))
+ (file:write value)
+ (io.close file))
+
+(setmetatable {} {:__index _get :__newindex _set})