aboutsummaryrefslogtreecommitdiffstats
path: root/hm/soispha/conf/nvim/plgs/flatten-nvim
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:06:57 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:14:24 +0200
commit5156e1aae36a153be98b6832ab3ced7be2b2faee (patch)
tree3f050d3bc567af4c72f87e0925d21c3521436e45 /hm/soispha/conf/nvim/plgs/flatten-nvim
parentrefactor(hm/conf/zsh): Remove old zsh-prompt file (diff)
downloadnixos-config-5156e1aae36a153be98b6832ab3ced7be2b2faee.zip
refactor(hm): Rename to `modules/home`
Diffstat (limited to 'hm/soispha/conf/nvim/plgs/flatten-nvim')
-rw-r--r--hm/soispha/conf/nvim/plgs/flatten-nvim/default.nix20
-rw-r--r--hm/soispha/conf/nvim/plgs/flatten-nvim/lua/flatten-nvim.lua106
2 files changed, 0 insertions, 126 deletions
diff --git a/hm/soispha/conf/nvim/plgs/flatten-nvim/default.nix b/hm/soispha/conf/nvim/plgs/flatten-nvim/default.nix
deleted file mode 100644
index cd6f8bcc..00000000
--- a/hm/soispha/conf/nvim/plgs/flatten-nvim/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- pkgs,
- lib,
- ...
-}: {
- programs.nixvim = {
- # TODO: package flatten-nvim though a module
-
- extraConfigLuaPre = ''
- ${lib.strings.fileContents ./lua/flatten-nvim.lua}
- if os.getenv("NVIM") ~= nil then
- -- Avoid loading plugins because the host will take control of the instance anyways
- return
- end
- '';
- extraPlugins = [
- pkgs.vimPlugins.flatten-nvim
- ];
- };
-}
diff --git a/hm/soispha/conf/nvim/plgs/flatten-nvim/lua/flatten-nvim.lua b/hm/soispha/conf/nvim/plgs/flatten-nvim/lua/flatten-nvim.lua
deleted file mode 100644
index 42ea1eb6..00000000
--- a/hm/soispha/conf/nvim/plgs/flatten-nvim/lua/flatten-nvim.lua
+++ /dev/null
@@ -1,106 +0,0 @@
----Types:
---
--- Passed to callbacks that handle opening files
----@alias BufInfo { fname: string, bufnr: buffer }
---
--- Needed aliases
----@alias buffer integer: Buffer id
----@alias window integer: Window id
---
--- The first argument is a list of BufInfo tables representing the newly opened files.
--- The third argument is a single BufInfo table, only provided when a buffer is created from stdin.
---
--- IMPORTANT: For `block_for` to work, you need to return a buffer number OR a buffer number and a window number.
--- The `winnr` return value is not required, `vim.fn.bufwinid(bufnr)` is used if it is not provided.
--- The `filetype` of this buffer will determine whether block should happen or not.
---
----@alias OpenHandler fun(files: BufInfo[], argv: string[], stdin_buf: BufInfo, guest_cwd: string):window, buffer
---
-require("flatten").setup({
- callbacks = {
- ---Called to determine if a nested session should wait for the host to close the file.
- ---param argv: a list of all the arguments in the nested session
- ---@type fun(argv: table): boolean
- should_block = require("flatten").default_should_block,
-
- ---If this returns true, the nested session will be opened.
- ---If false, default behavior is used, and
- ---config.nest_if_no_args is respected.
- ---@type fun(host: channel):boolean
- should_nest = require("flatten").default_should_nest,
-
- ---Called before a nested session is opened.
- pre_open = function() end,
-
- ---Called after a nested session is opened.
- ---@param bufnr buffer
- ---@param winnr window
- ---@param filetype string
- ---@param is_blocking boolean
- ---@param is_diff boolean
- post_open = function(bufnr, winnr, filetype, is_blocking, is_diff)
- -- If the file is a git commit, create one-shot autocmd to delete its buffer on write
- if filetype == "gitcommit" or filetype == "gitrebase" then
- vim.api.nvim_create_autocmd("BufWritePost", {
- buffer = bufnr,
- once = true,
- callback = vim.schedule_wrap(function()
- vim.api.nvim_buf_delete(bufnr, {})
- end),
- })
- end
- end,
-
- ---Called when a nested session is done waiting for the host.
- ---@param filetype string
- block_end = function(filetype) end,
- },
- -- <String, Bool> dictionary of filetypes that should be blocking
- block_for = {
- gitcommit = true,
- },
- -- Command passthrough
- allow_cmd_passthrough = true,
- -- Allow a nested session to open if Neovim is opened without arguments
- nest_if_no_args = false,
- -- Window options
- window = {
- -- Options:
- -- current -> open in current window (default)
- -- alternate -> open in alternate window (recommended)
- -- tab -> open in new tab
- -- split -> open in split
- -- vsplit -> open in vsplit
- -- smart -> smart open (avoids special buffers)
- -- OpenHandler -> allows you to handle file opening yourself (see Types)
- --
- -- TODO: Open gitcommit filetypes in the current buffer, everything else in a new tab <2023-08-29>
- open = "split",
-
- -- Options:
- -- vsplit -> opens files in diff vsplits
- -- split -> opens files in diff splits
- -- tab_vsplit -> creates a new tabpage, and opens diff vsplits
- -- tab_split -> creates a new tabpage, and opens diff splits
- -- OpenHandler -> allows you to handle file opening yourself (see Types)
- diff = "tab_vsplit",
-
- -- Affects which file gets focused when opening multiple at once
- -- Options:
- -- "first" -> open first file of new files (default)
- -- "last" -> open last file of new files
- focus = "first",
- },
- -- Override this function to use a different socket to connect to the host
- -- On the host side this can return nil or the socket address.
- -- On the guest side this should return the socket address
- -- or a non-zero channel id from `sockconnect`
- -- flatten.nvim will detect if the address refers to this instance of nvim, to determine if this is a host or a guest
- pipe_path = require("flatten").default_pipe_path,
- -- The `default_pipe_path` will treat the first nvim instance within a single kitty/wezterm session as the host
- -- You can configure this behaviour using the following:
- one_per = {
- kitty = true, -- Flatten all instance in the current Kitty session
- wezterm = true, -- Flatten all instance in the current Wezterm session
- },
-})