---@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', ';', 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', 'lua require"telescope.builtin".lsp_definitions({jump_type="vsplit"})', 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", "o", "Outline", { 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)