diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:40:16 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:40:16 +0000 |
| commit | b94eefa6b58f274bb61db4e792105c3959cf2022 (patch) | |
| tree | 3d2896fb46ebc769e4fea8cf4f02ce3104e1f974 /nvim/lua/sixfourtwelve/lazy.lua | |
Diffstat (limited to 'nvim/lua/sixfourtwelve/lazy.lua')
| -rw-r--r-- | nvim/lua/sixfourtwelve/lazy.lua | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/nvim/lua/sixfourtwelve/lazy.lua b/nvim/lua/sixfourtwelve/lazy.lua new file mode 100644 index 0000000..a89a964 --- /dev/null +++ b/nvim/lua/sixfourtwelve/lazy.lua @@ -0,0 +1,272 @@ +---@diagnostic disable: undefined-global +--- +vim.g.mapleader = " " +vim.g.maplocalleader = "," + +return require("lazy").setup({ + { + 'b0o/incline.nvim', + config = function() + local helpers = require 'incline.helpers' + local devicons = require 'nvim-web-devicons' + require('incline').setup({ + render = function(props) + local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ':t') + if filename == '' then + filename = '[No Name]' + end + local ft_icon, ft_color = devicons.get_icon_color(filename) + return { + ft_icon and { ' ', ft_icon, ' ', guibg = "", guifg = helpers.contrast_color(ft_color) } or '', + ' ', + { filename }, + ' ', + guibg = '', + } + end, + }) + end, + event = 'VeryLazy', + }, + { + 'Bekaboo/dropbar.nvim', + -- optional, but required for fuzzy finder support + dependencies = { + 'nvim-telescope/telescope-fzf-native.nvim', + build = 'make' + }, + config = function() + local dropbar_api = require('dropbar.api') + vim.keymap.set('n', '<Leader>;', dropbar_api.pick, { desc = 'Pick symbols in winbar' }) + vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' }) + vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' }) + end + }, + { + "webhooked/kanso.nvim", + lazy = false, + priority = 1000, + config = function() + require("kanso").setup { + bold = false, + italics = false, + keywordStyle = { italic = false }, + background = { + dark = "zen", + light = "pearl" + }, + foreground = { + -- dark = "saturated", + -- light = "saturated" + } + } + vim.cmd("colorscheme kanso") + vim.defer_fn(function() + for _, group in ipairs({ + "DiagnosticUnderlineError", + "DiagnosticUnderlineWarn", + "DiagnosticUnderlineInfo", + "DiagnosticUnderlineHint", + }) do + local hl = vim.api.nvim_get_hl(0, { name = group }) + hl.undercurl = false + hl.underline = true + hl.bold = false + vim.api.nvim_set_hl(0, group, hl) + end + end, 50) + + end + }, + {"folke/twilight.nvim"}, + {"edkolev/tmuxline.vim"}, + {"nvim-lualine/lualine.nvim"}, + {"Tsuzat/NeoSolarized.nvim"}, + {"lifepillar/vim-solarized8"}, + { + "seblyng/roslyn.nvim", + ---@module 'roslyn.config' + ---@type RoslynNvimConfig + opts = {}, + }, + { "Decodetalkers/csharpls-extended-lsp.nvim" }, + { + "folke/snacks.nvim", + opts = { + indent = { + indent = { + enabled = false, + }, + chunk = { + enabled = true, + char = { + horizontal = '─', + vertical = '│', + corner_top = '╭', + corner_bottom = '╰', + arrow = '─', + }, + }, + }, + }, + }, + { "onsails/lspkind.nvim" }, + { "RRethy/vim-illuminate" }, +-- {"windwp/windline.nvim", +-- config = function() +-- require("wlsample.airline") +-- end, +-- }, + { + "scalameta/nvim-metals", + dependencies = { + "nvim-lua/plenary.nvim", + }, + ft = { "scala", "sbt", "java" }, + opts = function() + local metals_config = require("metals").bare_config() + + local options = { buffer = bufnr, remap = false } + metals_config.on_attach = function(client, bufnr) + vim.keymap.set('n', 'gd', '<cmd>lua require"telescope.builtin".lsp_definitions({jump_type="vsplit"})<CR>', + options) + -- vim.keymap.set('n', 'gd', function() vim.lsp.buf.definition() end, options) + vim.keymap.set("n", "gr", function() vim.lsp.buf.references() end, options) + vim.keymap.set("n", "bh", function() vim.lsp.buf.hover() end, options) + vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, options) + vim.keymap.set("n", "cr", function() vim.lsp.buf.rename() end, options) + vim.keymap.set("n", "gv", function() vim.lsp.buf.signature_help() end, options) + vim.keymap.set("n", "gl", function() vim.diagnostic.open_float() end, options) + vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, options) + vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, options) + end + + return metals_config + end, + config = function(self, metals_config) + local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }) + vim.api.nvim_create_autocmd("FileType", { + pattern = self.ft, + callback = function() + require("metals").initialize_or_attach(metals_config) + end, + group = nvim_metals_group, + }) + end + }, + { "reasonml-editor/vim-reason-plus" }, + { + 'echasnovski/mini.nvim', + config = function() + require('mini.ai').setup { n_lines = 500 } + require('mini.sessions').setup({}) + + require('mini.icons').setup({ + style = 'glyph', + }) + -- require('mini.tabline').setup({ + -- show_icons = true, + -- tabpage_section = 'right', + -- }) + -- + local starter = require('mini.starter') + starter.setup({ + evaluate_single = true, + items = { + starter.sections.builtin_actions(), + starter.sections.recent_files(10, false), + starter.sections.recent_files(10, true), + starter.sections.sessions(5, true) + }, + content_hooks = { + starter.gen_hook.adding_bullet(), + starter.gen_hook.indexing('all', { 'Builtin actions' }), + starter.gen_hook.padding(3, 2), + }, + }) + end + }, + { "folke/tokyonight.nvim" }, + { 'dmmulroy/ts-error-translator.nvim' }, + { + 'Olical/conjure', + ft = { "clojure", "fennel", "racket", "scheme", "lisp" }, + lazy = true, + enabled = true, + }, + { "ocaml-mlx/ocaml_mlx.nvim" }, + { + "karb94/neoscroll.nvim", + config = function() + require('neoscroll').setup({}) + end + }, + -- { 'fatih/vim-go' }, + { "nvim-treesitter/nvim-treesitter", build = ':TSUpdate', lazy = false, dependencies = { "OXY2DEV/markview.nvim" } }, + { "nvim-treesitter/playground" }, + { + "ThePrimeagen/harpoon", + lazy = true, + }, + { "tpope/vim-fugitive" }, + { "chrisbra/Colorizer" }, + { "lewis6991/gitsigns.nvim" }, + { "f-person/git-blame.nvim" }, + { "j-hui/fidget.nvim" }, + { 'MunifTanjim/nui.nvim' }, + { "folke/noice.nvim" }, + { + "hedyhli/outline.nvim", + config = function() + vim.keymap.set("n", "<leader>o", "<cmd>Outline<CR>", + { desc = "Toggle Outline" }) + + require("outline").setup { + outline_window = { + width = 25, + relative_width = true, + focus_on_open = true, + auto_jump = false + }, + preview_window = { + auto_preview = true, + open_hover_on_preview = true, + width = 50, + min_width = 50, + relative_width = true, + border = 'single', + winhl = 'NormalFloat:', + }, + } + end, + }, + { 'windwp/nvim-autopairs' }, + { 'neovim/nvim-lspconfig' }, + { + 'williamboman/mason.nvim', + }, + { 'williamboman/mason-lspconfig.nvim' }, + + { 'hrsh7th/nvim-cmp' }, + { 'hrsh7th/cmp-buffer' }, + { 'hrsh7th/cmp-path' }, + { 'saadparwaiz1/cmp_luasnip' }, + { 'hrsh7th/cmp-nvim-lsp' }, + { 'hrsh7th/cmp-nvim-lua' }, + + { 'L3MON4D3/LuaSnip' }, + { 'rafamadriz/friendly-snippets' }, + + { + 'VonHeikemen/lsp-zero.nvim', + lazy = false, + -- branch = 'v1.x', + }, + { "kyazdani42/nvim-web-devicons" }, + { 'mhartington/formatter.nvim' }, + { 'kyazdani42/nvim-tree.lua' }, + { 'nvim-telescope/telescope.nvim', dependencies = { { 'nvim-lua/plenary.nvim' } } }, + { "mbbill/undotree" }, + { "nvim-treesitter/nvim-treesitter-context" }, + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, +}, opts) |