Further migration of expressive functionality to fennel

This commit is contained in:
2026-07-14 13:18:18 +01:00
parent 1b314768f1
commit 7a7221ff0d
4 changed files with 56 additions and 57 deletions
+29
View File
@@ -0,0 +1,29 @@
;; Neovim autocommands and runtime logic in Fennel
;; Highlight on yank
(vim.api.nvim_create_autocmd :TextYankPost
{:desc "Highlight when yanking (copying) text"
:group (vim.api.nvim_create_augroup :kickstart-highlight-yank {:clear true})
:callback #(vim.highlight.on_yank)})
;; FileType custom commentstrings
(vim.api.nvim_create_autocmd :FileType
{:pattern ["nix" "flake"]
:callback #(set vim.bo.commentstring "# %s")})
(vim.api.nvim_create_autocmd :FileType
{:pattern ["scallop"]
:callback #(set vim.bo.commentstring "//%s")})
;; Root changer on VimEnter (Custom pipeline logic)
(vim.api.nvim_create_autocmd :VimEnter
{:desc "Change CWD to project root if inside git repo"
:callback (fn []
(let [current-file (vim.fn.expand "%:p")]
(when (not= current-file "")
(let [find-results (vim.fs.find [".git"] {:upward true :path (vim.fs.dirname current-file)})
git-dir (. find-results 1)]
(when git-dir
(let [root-dir (vim.fs.dirname git-dir)]
(vim.cmd.cd root-dir)
(print (.. "Root changed to: " root-dir))))))))})