Created
October 17, 2025 00:45
-
-
Save ktravis/a3c19752d7080c18acca36abd5cb77f9 to your computer and use it in GitHub Desktop.
nvim init.lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) | |
| vim.g.mapleader = ' ' | |
| vim.g.maplocalleader = ' ' | |
| -- Set to true if you have a Nerd Font installed and selected in the terminal | |
| vim.g.have_nerd_font = true | |
| -- [[ Setting options ]] | |
| vim.opt.number = true | |
| -- vim.o.termguicolors = true | |
| vim.opt.mouse = 'a' | |
| vim.opt.showmode = false | |
| -- Sync clipboard between OS and Neovim. | |
| -- Schedule the setting after `UiEnter` because it can increase startup-time. | |
| -- Remove this option if you want your OS clipboard to remain independent. | |
| -- See `:help 'clipboard'` | |
| vim.schedule(function() | |
| vim.opt.clipboard = 'unnamedplus' | |
| end) | |
| vim.opt.breakindent = true | |
| vim.opt.undofile = true | |
| -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term | |
| vim.opt.ignorecase = true | |
| vim.opt.smartcase = true | |
| vim.opt.signcolumn = 'yes' | |
| -- Decrease update time | |
| vim.opt.updatetime = 250 | |
| -- Decrease mapped sequence wait time | |
| -- Displays which-key popup sooner | |
| vim.opt.timeoutlen = 300 | |
| -- Configure how new splits should be opened | |
| vim.opt.splitright = true | |
| vim.opt.splitbelow = true | |
| vim.opt.list = true | |
| vim.opt.listchars = { tab = 'Β» ', trail = 'Β·', nbsp = 'β£' } | |
| -- Preview substitutions live, as you type! | |
| vim.opt.inccommand = 'split' | |
| -- Show which line your cursor is on | |
| vim.opt.cursorline = false | |
| -- Minimal number of screen lines to keep above and below the cursor. | |
| vim.opt.scrolloff = 5 | |
| -- [[ Basic Keymaps ]] | |
| -- Clear highlights on search when pressing <Esc> in normal mode | |
| vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>') | |
| -- Diagnostic keymaps | |
| vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) | |
| vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Display diagnostic ([e]rror) message in modal' }) | |
| vim.diagnostic.config { | |
| virtual_text = true, | |
| severity_sort = true, | |
| -- virtual_lines = true, | |
| } | |
| -- Change diagnostic symbols in the sign column (gutter) | |
| if vim.g.have_nerd_font then | |
| local signs = { ERROR = 'ξͺ', WARN = '', INFO = 'ξ©΄', HINT = 'ξ©‘' } | |
| local diagnostic_signs = {} | |
| for type, icon in pairs(signs) do | |
| diagnostic_signs[vim.diagnostic.severity[type]] = icon | |
| end | |
| vim.diagnostic.config { signs = { text = diagnostic_signs } } | |
| end | |
| -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier | |
| -- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which | |
| -- is not what someone will guess without a bit more experience. | |
| -- | |
| -- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping | |
| -- or just use <C-\><C-n> to exit terminal mode | |
| vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) | |
| -- Keybinds to make split navigation easier. | |
| -- Use CTRL+<hjkl> to switch between windows | |
| vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' }) | |
| vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' }) | |
| vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' }) | |
| vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' }) | |
| vim.keymap.set('n', ';', ':', { nowait = true }) | |
| vim.keymap.set('n', 'H', '^', { desc = 'Go to beginning of line', nowait = true }) | |
| vim.keymap.set('n', 'L', '$', { desc = 'Go to end of line', nowait = true }) | |
| vim.keymap.set('v', 'H', '^', { desc = 'Go to beginning of line', nowait = true }) | |
| vim.keymap.set('v', 'L', '$', { desc = 'Go to end of line', nowait = true }) | |
| vim.keymap.set('i', 'jk', '<esc>', { silent = true, nowait = true }) | |
| -- Remap for dealing with word wrap | |
| vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) | |
| vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) | |
| -- [[ Basic Autocommands ]] | |
| -- Highlight when yanking (copying) text | |
| vim.api.nvim_create_autocmd('TextYankPost', { | |
| desc = 'Highlight when yanking (copying) text', | |
| group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }), | |
| callback = function() | |
| vim.highlight.on_yank() | |
| end, | |
| }) | |
| -- Bootstrap lazy.nvim | |
| local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' | |
| if not (vim.uv or vim.loop).fs_stat(lazypath) then | |
| local lazyrepo = 'https://github.com/folke/lazy.nvim.git' | |
| local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath } | |
| if vim.v.shell_error ~= 0 then | |
| vim.api.nvim_echo({ | |
| { 'Failed to clone lazy.nvim:\n', 'ErrorMsg' }, | |
| { out, 'WarningMsg' }, | |
| { '\nPress any key to exit...' }, | |
| }, true, {}) | |
| vim.fn.getchar() | |
| os.exit(1) | |
| end | |
| end | |
| vim.opt.rtp:prepend(lazypath) | |
| vim.g.rustaceanvim = { | |
| server = { | |
| -- on_attach = function(client, bufnr) | |
| -- vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) | |
| -- if vim.g.lsp_on_attach ~= nil then | |
| -- vim.g.lsp_on_attach(client, bufnr) | |
| -- end | |
| -- end, | |
| settings = { | |
| ['rust-analyzer'] = { | |
| cargo = { | |
| buildScripts = { enable = true }, | |
| }, | |
| procMacro = { enable = true }, | |
| }, | |
| }, | |
| }, | |
| dap = {}, | |
| } | |
| vim.keymap.del('n', 'grn') | |
| vim.keymap.del('n', 'gra') | |
| vim.keymap.del('n', 'grr') | |
| vim.keymap.del('n', 'gri') | |
| vim.keymap.del('n', 'grt') | |
| vim.keymap.del('n', 'gO') | |
| -- [[ Configure and install plugins ]] | |
| require('lazy').setup({ | |
| { | |
| 'folke/tokyonight.nvim', | |
| lazy = false, | |
| priority = 1000, -- Make sure to load this before all the other start plugins. | |
| config = function() | |
| vim.cmd [[colorscheme tokyonight-night]] | |
| end, | |
| }, | |
| { | |
| 'folke/flash.nvim', | |
| event = 'VeryLazy', | |
| ---@type Flash.Config | |
| opts = {}, | |
| -- stylua: ignore | |
| keys = { | |
| { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, | |
| { "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, | |
| { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, | |
| { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, | |
| { "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, | |
| }, | |
| }, | |
| { | |
| 'lewis6991/gitsigns.nvim', | |
| opts = { | |
| signs = { | |
| add = { text = '+' }, | |
| change = { text = '~' }, | |
| delete = { text = '_' }, | |
| topdelete = { text = 'βΎ' }, | |
| changedelete = { text = '~' }, | |
| }, | |
| }, | |
| }, | |
| { | |
| 'folke/which-key.nvim', | |
| event = 'VimEnter', -- Sets the loading event to 'VimEnter' | |
| opts = { | |
| preset = 'helix', | |
| icons = { | |
| -- set icon mappings to true if you have a Nerd Font | |
| mappings = vim.g.have_nerd_font, | |
| -- If you are using a Nerd Font: set icons.keys to an empty table which will use the | |
| -- default which-key.nvim defined Nerd Font icons, otherwise define a string table | |
| keys = vim.g.have_nerd_font and {} or { | |
| Up = '<Up> ', | |
| Down = '<Down> ', | |
| Left = '<Left> ', | |
| Right = '<Right> ', | |
| C = '<C-β¦> ', | |
| M = '<M-β¦> ', | |
| D = '<D-β¦> ', | |
| S = '<S-β¦> ', | |
| CR = '<CR> ', | |
| Esc = '<Esc> ', | |
| ScrollWheelDown = '<ScrollWheelDown> ', | |
| ScrollWheelUp = '<ScrollWheelUp> ', | |
| NL = '<NL> ', | |
| BS = '<BS> ', | |
| Space = '<Space> ', | |
| Tab = '<Tab> ', | |
| F1 = '<F1>', | |
| F2 = '<F2>', | |
| F3 = '<F3>', | |
| F4 = '<F4>', | |
| F5 = '<F5>', | |
| F6 = '<F6>', | |
| F7 = '<F7>', | |
| F8 = '<F8>', | |
| F9 = '<F9>', | |
| F10 = '<F10>', | |
| F11 = '<F11>', | |
| F12 = '<F12>', | |
| }, | |
| }, | |
| -- Document existing key chains | |
| spec = { | |
| { '<leader>c', group = '[C]ode', mode = { 'n', 'x' } }, | |
| { '<leader>d', group = '[D]ocument' }, | |
| { '<leader>r', group = '[R]ename' }, | |
| { '<leader>s', group = '[S]earch' }, | |
| { '<leader>w', group = '[W]orkspace' }, | |
| { '<leader>t', group = '[T]oggle' }, | |
| { '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } }, | |
| }, | |
| }, | |
| }, | |
| 'nvim-neotest/nvim-nio', | |
| 'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically | |
| 'tpope/vim-surround', | |
| 'folke/zen-mode.nvim', | |
| { | |
| 'nvim-lualine/lualine.nvim', | |
| opts = { | |
| options = { | |
| icons_enabled = false, | |
| theme = 'auto', | |
| component_separators = '|', | |
| section_separators = '', | |
| }, | |
| }, | |
| }, | |
| { | |
| 'lukas-reineke/indent-blankline.nvim', | |
| main = 'ibl', | |
| opts = {}, | |
| }, | |
| { | |
| 'folke/ts-comments.nvim', | |
| opts = {}, | |
| event = 'VeryLazy', | |
| enabled = vim.fn.has 'nvim-0.10.0' == 1, | |
| }, | |
| { | |
| 'nvim-telescope/telescope.nvim', | |
| event = 'VimEnter', | |
| branch = '0.1.x', | |
| dependencies = { | |
| 'nvim-lua/plenary.nvim', | |
| { | |
| 'nvim-telescope/telescope-fzf-native.nvim', | |
| build = 'make', | |
| cond = function() | |
| return vim.fn.executable 'make' == 1 | |
| end, | |
| }, | |
| { 'nvim-telescope/telescope-ui-select.nvim' }, | |
| -- Useful for getting pretty icons, but requires a Nerd Font. | |
| { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, | |
| }, | |
| config = function() | |
| require('telescope').setup { | |
| defaults = { | |
| mappings = { | |
| i = { | |
| ['<C-u>'] = false, | |
| ['<C-d>'] = false, | |
| }, | |
| }, | |
| }, | |
| -- pickers = {} | |
| extensions = { | |
| ['ui-select'] = { | |
| require('telescope.themes').get_dropdown(), | |
| }, | |
| }, | |
| } | |
| -- Enable Telescope extensions if they are installed | |
| pcall(require('telescope').load_extension, 'fzf') | |
| pcall(require('telescope').load_extension, 'ui-select') | |
| -- See `:help telescope.builtin` | |
| local builtin = require 'telescope.builtin' | |
| vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' }) | |
| vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' }) | |
| vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' }) | |
| vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' }) | |
| vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' }) | |
| vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' }) | |
| vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' }) | |
| vim.keymap.set('n', '<leader>wd', builtin.diagnostics, { desc = '[W]orkplace [D]iagnostics' }) | |
| vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' }) | |
| vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) | |
| vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' }) | |
| vim.keymap.set('n', '<leader>/', function() | |
| builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { | |
| winblend = 10, | |
| previewer = false, | |
| }) | |
| end, { desc = '[/] Fuzzily search in current buffer' }) | |
| vim.keymap.set('n', '<leader>s/', function() | |
| builtin.live_grep { | |
| grep_open_files = true, | |
| prompt_title = 'Live Grep in Open Files', | |
| } | |
| end, { desc = '[S]earch [/] in Open Files' }) | |
| -- Shortcut for searching your Neovim configuration files | |
| vim.keymap.set('n', '<leader>sn', function() | |
| builtin.find_files { cwd = vim.fn.stdpath 'config' } | |
| end, { desc = '[S]earch [N]eovim files' }) | |
| end, | |
| }, | |
| { | |
| 'folke/lazydev.nvim', | |
| ft = 'lua', | |
| opts = { | |
| library = { | |
| { path = 'luvit-meta/library', words = { 'vim%.uv' } }, | |
| }, | |
| }, | |
| dependencies = { | |
| { 'Bilal2453/luvit-meta', lazy = true }, | |
| }, | |
| }, | |
| { | |
| 'mason-org/mason-lspconfig.nvim', | |
| opts = {}, | |
| dependencies = { | |
| { | |
| 'mason-org/mason.nvim', | |
| opts = { | |
| ui = { | |
| border = 'rounded', | |
| }, | |
| }, | |
| }, | |
| 'neovim/nvim-lspconfig', | |
| }, | |
| }, | |
| { | |
| 'neovim/nvim-lspconfig', | |
| dependencies = { | |
| { 'j-hui/fidget.nvim', opts = {} }, | |
| }, | |
| config = function() | |
| vim.api.nvim_create_autocmd('LspAttach', { | |
| group = vim.api.nvim_create_augroup('lsp-attach', { clear = true }), | |
| callback = function(event) | |
| local map = function(keys, func, desc, mode) | |
| mode = mode or 'n' | |
| vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) | |
| end | |
| map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') | |
| map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') | |
| map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') | |
| map('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') | |
| map('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') | |
| map('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') | |
| map('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame') | |
| map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction', { 'n', 'x' }) | |
| map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') | |
| map('K', function() | |
| vim.lsp.buf.hover { | |
| border = 'rounded', | |
| max_height = 25, | |
| max_width = 120, | |
| } | |
| end, 'Show Hover Docs') | |
| local client = vim.lsp.get_client_by_id(event.data.client_id) | |
| if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then | |
| local highlight_augroup = vim.api.nvim_create_augroup('lsp-highlight', { clear = false }) | |
| vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { | |
| buffer = event.buf, | |
| group = highlight_augroup, | |
| callback = vim.lsp.buf.document_highlight, | |
| }) | |
| vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { | |
| buffer = event.buf, | |
| group = highlight_augroup, | |
| callback = vim.lsp.buf.clear_references, | |
| }) | |
| vim.api.nvim_create_autocmd('LspDetach', { | |
| group = vim.api.nvim_create_augroup('lsp-detach', { clear = true }), | |
| callback = function(event2) | |
| vim.lsp.buf.clear_references() | |
| vim.api.nvim_clear_autocmds { group = 'lsp-highlight', buffer = event2.buf } | |
| end, | |
| }) | |
| end | |
| if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then | |
| vim.lsp.inlay_hint.enable(true) | |
| map('<leader>th', function() | |
| vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf }) | |
| end, '[T]oggle Inlay [H]ints') | |
| end | |
| end, | |
| }) | |
| end, | |
| }, | |
| { | |
| 'stevearc/conform.nvim', | |
| event = { 'BufWritePre' }, | |
| cmd = { 'ConformInfo' }, | |
| keys = { | |
| { | |
| '<leader>f', | |
| function() | |
| require('conform').format { async = true, lsp_format = 'fallback' } | |
| end, | |
| mode = '', | |
| desc = '[F]ormat buffer', | |
| }, | |
| }, | |
| opts = { | |
| notify_on_error = false, | |
| format_on_save = function(bufnr) | |
| -- Disable "format_on_save lsp_fallback" for languages that don't | |
| -- have a well standardized coding style. You can add additional | |
| -- languages here or re-enable it for the disabled ones. | |
| local disable_filetypes = { c = true, cpp = true } | |
| local lsp_format_opt | |
| if disable_filetypes[vim.bo[bufnr].filetype] then | |
| lsp_format_opt = 'never' | |
| else | |
| lsp_format_opt = 'fallback' | |
| end | |
| return { | |
| timeout_ms = 500, | |
| lsp_format = lsp_format_opt, | |
| } | |
| end, | |
| formatters_by_ft = { | |
| lua = { 'stylua' }, | |
| -- Conform can also run multiple formatters sequentially | |
| -- python = { "isort", "black" }, | |
| -- | |
| -- You can use 'stop_after_first' to run the first available formatter from the list | |
| -- javascript = { "prettierd", "prettier", stop_after_first = true }, | |
| }, | |
| }, | |
| }, | |
| { | |
| 'saghen/blink.cmp', | |
| version = '1.*', | |
| -- optional: provides snippets for the snippet source | |
| dependencies = { 'rafamadriz/friendly-snippets' }, | |
| ---@module 'blink.cmp' | |
| ---@type blink.cmp.Config | |
| opts = { | |
| keymap = { preset = 'default' }, | |
| appearance = { | |
| -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' | |
| -- Adjusts spacing to ensure icons are aligned | |
| nerd_font_variant = 'mono', | |
| }, | |
| completion = { | |
| documentation = { | |
| auto_show = true, | |
| window = { border = 'rounded' }, | |
| }, | |
| ghost_text = { enabled = true }, | |
| menu = { border = 'rounded' }, | |
| }, | |
| sources = { | |
| default = { 'lazydev', 'lsp', 'path', 'snippets', 'buffer' }, | |
| providers = { | |
| lazydev = { | |
| name = 'LazyDev', | |
| module = 'lazydev.integrations.blink', | |
| -- make lazydev completions top priority (see `:h blink.cmp`) | |
| score_offset = 100, | |
| }, | |
| }, | |
| }, | |
| signature = { | |
| enabled = true, | |
| window = { border = 'single' }, | |
| }, | |
| fuzzy = { | |
| sorts = { 'exact', 'score', 'sort_text' }, | |
| }, | |
| }, | |
| opts_extend = { 'sources.default' }, | |
| }, | |
| -- { | |
| -- 'folke/trouble.nvim', | |
| -- cmd = 'Trouble', | |
| -- opts = { | |
| -- modes = { | |
| -- test = { | |
| -- mode = 'diagnostics', | |
| -- preview = { | |
| -- type = 'split', | |
| -- relative = 'win', | |
| -- position = 'right', | |
| -- size = 0.3, | |
| -- }, | |
| -- }, | |
| -- }, | |
| -- }, | |
| -- }, | |
| { | |
| 'folke/todo-comments.nvim', | |
| event = 'VimEnter', | |
| dependencies = { 'nvim-lua/plenary.nvim' }, | |
| opts = { signs = false }, | |
| }, | |
| { | |
| 'nvim-treesitter/nvim-treesitter', | |
| build = ':TSUpdate', | |
| main = 'nvim-treesitter.configs', -- Sets main module to use for opts | |
| -- [[ Configure Treesitter ]] See `:help nvim-treesitter` | |
| opts = { | |
| ensure_installed = { | |
| 'bash', | |
| 'c', | |
| 'cpp', | |
| 'diff', | |
| 'go', | |
| 'html', | |
| 'lua', | |
| 'luadoc', | |
| 'markdown', | |
| 'markdown_inline', | |
| 'python', | |
| 'query', | |
| 'rust', | |
| 'typescript', | |
| 'vim', | |
| 'vimdoc', | |
| 'wgsl', | |
| }, | |
| auto_install = true, | |
| highlight = { | |
| enable = true, | |
| -- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules. | |
| -- If you are experiencing weird indenting issues, add the language to | |
| -- the list of additional_vim_regex_highlighting and disabled languages for indent. | |
| additional_vim_regex_highlighting = { 'ruby' }, | |
| }, | |
| indent = { enable = true, disable = { 'ruby' } }, | |
| }, | |
| }, | |
| { | |
| 'MeanderingProgrammer/render-markdown.nvim', | |
| dependencies = { | |
| 'nvim-treesitter/nvim-treesitter', | |
| }, | |
| ---@module 'render-markdown' | |
| ---@type render.md.UserConfig | |
| opts = {}, | |
| }, | |
| { | |
| 'mrcjkb/rustaceanvim', | |
| version = '^6', | |
| lazy = false, | |
| dependencies = { | |
| 'nvim-telescope/telescope.nvim', | |
| }, | |
| -- opts = { | |
| -- -- Plugin configuration | |
| -- tools = { | |
| -- executor = exec | |
| -- }, | |
| -- -- LSP configuration | |
| -- server = { | |
| -- on_attach = function(client, bufnr) | |
| -- vim.lsp.inlay_hint.enable(bufnr, true) | |
| -- end, | |
| -- settings = { | |
| -- ['rust-analyzer'] = {}, | |
| -- }, | |
| -- }, | |
| -- -- DAP configuration | |
| -- dap = { | |
| -- }, | |
| -- }, | |
| }, | |
| { | |
| 'saecki/crates.nvim', | |
| tag = 'stable', | |
| event = { 'BufRead Cargo.toml' }, | |
| config = function() | |
| require('crates').setup { | |
| popup = { | |
| border = 'rounded', | |
| }, | |
| } | |
| end, | |
| }, | |
| }, { | |
| ui = { | |
| border = 'rounded', | |
| -- If you are using a Nerd Font: set icons to an empty table which will use the | |
| -- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table | |
| icons = vim.g.have_nerd_font and {} or { | |
| cmd = 'β', | |
| config = 'π ', | |
| event = 'π ', | |
| ft = 'π', | |
| init = 'β', | |
| keys = 'π', | |
| plugin = 'π', | |
| runtime = 'π»', | |
| require = 'π', | |
| source = 'π', | |
| start = 'π', | |
| task = 'π', | |
| lazy = 'π€ ', | |
| }, | |
| }, | |
| }) | |
| -- vim: ts=2 sts=2 sw=2 et |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
boss