diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-06-24 13:29:56 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-06-24 13:30:07 +0200 |
commit | 7fa70995b70a68ccd3510d195aa489ff058f5987 (patch) | |
tree | 38ec7c6c1214951de50586bf4a12032ad1e44e76 /modules/by-name/nv/nvim/plgs/femaco/lua | |
parent | modules/nvim/plgs: Remove unused plugins (diff) | |
download | nixos-config-7fa70995b70a68ccd3510d195aa489ff058f5987.zip |
modules/nvim/plgs/femaco: Use the nixvim module
We still import the config as lua file, as it is essentially just callback functions, which would result in strings and `__raw` in nix.
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/femaco/lua')
-rw-r--r-- | modules/by-name/nv/nvim/plgs/femaco/lua/femaco.lua | 50 |
1 files changed, 34 insertions, 16 deletions
diff --git a/modules/by-name/nv/nvim/plgs/femaco/lua/femaco.lua b/modules/by-name/nv/nvim/plgs/femaco/lua/femaco.lua index 1371a825..50a6cb23 100644 --- a/modules/by-name/nv/nvim/plgs/femaco/lua/femaco.lua +++ b/modules/by-name/nv/nvim/plgs/femaco/lua/femaco.lua @@ -8,7 +8,9 @@ -- You should have received a copy of the License along with this program. -- If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. + local clip_val = require("femaco.utils").clip_val + require("femaco").setup({ -- should prepare a new buffer and return the winid -- by default opens a floating window @@ -17,7 +19,8 @@ require("femaco").setup({ prepare_buffer = function(opts) local buf = vim.api.nvim_create_buf(false, false) return vim.api.nvim_open_win(buf, true, opts) - end, + end; + -- should return options passed to nvim_open_win -- @param code_block: data about the code-block with the keys -- * range @@ -25,30 +28,43 @@ require("femaco").setup({ -- * lang float_opts = function(code_block) return { - relative = "cursor", - width = clip_val(5, 120, vim.api.nvim_win_get_width(0) - 10), -- TODO: how to offset sign column etc? - height = clip_val(5, #code_block.lines, vim.api.nvim_win_get_height(0) - 6), - anchor = "NW", - row = 0, - col = 0, - style = "minimal", - border = "rounded", - zindex = 1, + relative = "cursor"; + width = clip_val(5, 120, vim.api.nvim_win_get_width(0) - 10); -- TODO how to offset sign column etc? + height = clip_val(5, #code_block.lines, vim.api.nvim_win_get_height(0) - 6); + anchor = "NW"; + row = 0; + col = 0; + style = "minimal"; + border = "rounded"; + zindex = 1; } - end, + end; + -- return filetype to use for a given lang -- lang can be nil - ft_from_lang = function(lang) return lang end, + ft_from_lang = function(lang) + return lang + end; + -- what to do after opening the float - post_open_float = function(winnr) vim.wo.signcolumn = "no" end, + post_open_float = function(winnr) + vim.wo.signcolumn = "no" + end; + -- create the path to a temporary file - create_tmp_filepath = function(filetype) return os.tmpname() end, + create_tmp_filepath = function(filetype) + return os.tmpname() + end; + -- if a newline should always be used, useful for multiline injections -- which separators needs to be on separate lines such as markdown, neorg etc -- @param base_filetype: The filetype which FeMaco is called from, not the -- filetype of the injected language (this is the current buffer so you can -- get it from vim.bo.filetyp). - ensure_newline = function(base_filetype) return false end, + ensure_newline = function(base_filetype) + return base_filetype == "nix" + end; + -- Return true if the indentation should be normalized. Useful when the -- injected language inherits indentation from the construction scope (e.g. an -- inline multiline sql string). If true, the leading indentation is detected, @@ -57,5 +73,7 @@ require("femaco").setup({ -- @param base_filetype: The filetype which FeMaco is called from, not the -- filetype of the injected language (this is the current buffer, so you can -- get it from vim.bo.filetype). - normalize_indent = function(base_filetype) return false end, + normalize_indent = function(base_filetype) + return base_filetype == "nix" + end; }) |