diff --git a/plugins/aerial/default.nix b/plugins/aerial/default.nix new file mode 100644 index 0000000..8da602b --- /dev/null +++ b/plugins/aerial/default.nix @@ -0,0 +1,51 @@ +{ lib, pkgs, ...}: +{ + extra = { + packages = [ + (import ./package.nix { inherit lib pkgs; }) + ]; + + config = '' + require("aerial").setup({ + backends = { "lsp", "treesitter", "markdown", "man" }, + layout = { min_width = 28, placement = "edge" }, + show_guides = true, + filter_kind = false, + + guides = { + mid_item = "├ ", + last_item = "└ ", + nested_top = "│ ", + whitespace = " ", + }, + autojump = true, + keymaps = { + ["[y"] = "actions.prev", + ["]y"] = "actions.next", + ["[Y"] = "actions.prev_up", + ["]Y"] = "actions.next_up", + ["{"] = false, + ["}"] = false, + ["[["] = false, + ["]]"] = false, + }, + attach_mode = "global", + }) + ''; + }; + + rootOpts.keymaps = [ + { + mode = "n"; + key = "lo"; + action.__raw = ''function() require("aerial").toggle() end''; + options.desc = "Symbols outline"; + } + { + mode = "n"; + key = "fs"; + action.__raw = ''require("telescope").extensions.aerial.aerial''; + options.desc = "Find symbols"; + } + ]; +} diff --git a/plugins/aerial/package.nix b/plugins/aerial/package.nix new file mode 100644 index 0000000..826cb31 --- /dev/null +++ b/plugins/aerial/package.nix @@ -0,0 +1,21 @@ +{ pkgs, ...}: +let + version = "2.1.0"; +in +pkgs.vimUtils.buildVimPlugin { + inherit version; + + name = "aerial"; + + # src = pkgs.fetchFromGitHub { + # owner = "stevearc"; + # repo = "aerial.nvim"; + # rev = "v${version}"; + # hash = "sha256:0ip8xmncp82svlbkphlas88xjvzrpzyy5b1c9x06dqbm4ifai0va"; + # }; + + src = builtins.fetchTarball { + url = "http://github.com/stevearc/aerial.nvim/archive/v2.1.0.tar.gz"; + sha256 = "sha256:0ip8xmncp82svlbkphlas88xjvzrpzyy5b1c9x06dqbm4ifai0va"; + }; +}