pact.nvim
hibiscus.nvim
pact.nvim | hibiscus.nvim | |
---|---|---|
1 | 7 | |
43 | 99 | |
- | - | |
0.0 | 5.4 | |
over 1 year ago | 6 months ago | |
Fennel | Fennel | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pact.nvim
-
Hibiscus πΊ -- Fennel eye-candy for neovim
Macros are pretty attractive, because you suddenly feel really unconstrained by syntax. You can write a fennel macro to handle really weird non-uniform syntax which can be exciting. In the end, it's generally less hassle to go with functions though. Often I'll write a macro, then tune it, then tune it again, then realise I just need a function function, i.e this was all a macro initially but now the macro is simply sugar to let you go (await (my-func 10)), and even then it's pretty debatable if simply accepting a function name and arguments is particularly worse (i.e: (await my-func 10) where await is just a function), I really just wanted to retain the "call style" on the day I wrote it. They do give you a lot of power though, one of the first things I wrote after Hotpot was a macro to set keymaps to functions directly, with closure scope which would have been pretty annoying without the macro - possible as the macro is just lua in the end, but pretty annoying, annoying enough that most people didn't bind "one shot" functions. I think that is where macros really shine, allowing you to actually patch short comings, not just alter syntax. Apart from that - which is now deprecated by 0.7 - I think I have one other macro in my config which ... could actually just be a function.
hibiscus.nvim
-
Configuring Neovim with Fennel
local function bootstrap(url, ref) local name = url:gsub(".*/", "") local path = vim.fn.stdpath [[data]] .. "/lazy/" .. name if vim.fn.isdirectory(path) == 0 then print(name .. ": installing in data dir...") vim.fn.system { "git", "clone", url, path } if ref then vim.fn.system { "git", "-C", path, "checkout", ref } end vim.cmd [[redraw]] print(name .. ": finished installing") end vim.opt.runtimepath:prepend(path) end bootstrap("https://github.com/udayvir-singh/tangerine.nvim") -- Optional and only needed if you also want the macros bootstrap("https://github.com/udayvir-singh/hibiscus.nvim") require 'tangerine'.setup { target = vim.fn.stdpath [[data]] .. "/tangerine", -- compile files in &rtp rtpdirs = { "ftplugin", }, compiler = { -- disable popup showing compiled files verbose = false, -- compile every time changes are made to fennel files or on entering vim hooks = { "onsave", "oninit" } }, }
-
Swapping to Fennel
I can recommend using Fennel with Tangerine (integration) and Hibiscus (macros). My config here for inspiration.
-
Whenever I'm looking for plugins these days [OC]
For ease of use, you can use conjure for evaluating the code, cmp-conjure for nvim completions, hibiscus.nvim and nyoom.nvim macros for macros, and you can also use nyoom.nvim as a base config.
-
Hibiscus πΊ -- Fennel eye-candy for neovim
Hibiscus.nvim:
-
Configurando Neovim com Fennel
local function bootstrap (name, url, path) if vim.fn.isdirectory(path) == 0 then print(name .. ": installing in data dir...") vim.fn.system {"git", "clone", "--depth", "1", url, path} vim.cmd [[redraw]] print(name .. ": finished installing") end end bootstrap ( "tangerine.nvim", "https://github.com/udayvir-singh/tangerine.nvim", vim.fn.stdpath "data" .. "/site/pack/packer/start/tangerine.nvim" ) bootstrap ( "hibiscus.nvim", "https://github.com/udayvir-singh/hibiscus.nvim", vim.fn.stdpath "data" .. "/site/pack/packer/start/hibiscus.nvim" ) require'tangerine'.setup{ compiler = { verbose = false, hooks = { "onsave", "oninit" } } }
-
Disable diagnostic while expanding luasnip snippets
Fennel with hibiscus:
-
π Tangerine - Painless Fennel integration in Neovim
But, you can use another plugin of mine Hibiscus which contains bulk of zest and aniseed macros.
What are some alternatives?
nvim-lua
tangerine.nvim - π Sweet Fennel integration for Neovim
neorg - Modernity meets insane extensibility. The future of organizing your life in Neovim.
fennel-language-server - Fennel language server protocol (LSP) support.
lightspeed.nvim - deprecated in favor of leap.nvim
vim-commentary - commentary.vim: comment stuff out
hotpot.nvim - :stew: Carl Weathers #1 Neovim Plugin.
Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
leap.nvim - Neovim's answer to the mouse π¦
aniseed - Neovim configuration and plugins in Fennel (Lisp compiled to Lua)
vim-tmux-navigator - Seamless navigation between tmux panes and vim splits
vim-easy-align - :sunflower: A Vim alignment plugin