local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' if not vim.uv.fs_stat(lazypath) then local output = vim.fn.system({ 'git', 'clone', '--filter=blob:none', '--branch=stable', 'https://github.com/folke/lazy.nvim.git', lazypath, }) if vim.v.shell_error ~= 0 then error('Could not install lazy.nvim: ' .. output) end end vim.opt.rtp:prepend(lazypath) -- Home Manager links the checked-in snapshot into the read-only Nix store. -- Seed a writable lockfile once. After :Lazy update, copy the state lockfile -- back to lazy-lock.json in this repo to commit reviewed plugin revisions. local lockfile = vim.fn.stdpath('state') .. '/lazy-lock.json' local snapshot = vim.fn.stdpath('config') .. '/lazy-lock.json' if not vim.uv.fs_stat(lockfile) and vim.uv.fs_stat(snapshot) then vim.fn.mkdir(vim.fn.fnamemodify(lockfile, ':h'), 'p') vim.fn.writefile(vim.fn.readfile(snapshot), lockfile) end require('lazy').setup({ -- LSP and completion { 'neovim/nvim-lspconfig', lazy = false }, { 'hrsh7th/nvim-cmp', dependencies = { 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-path', 'dcampos/nvim-snippy', 'dcampos/cmp-snippy', }, lazy = false }, -- Appearance and syntax { 'drewtempelmeyer/palenight.vim', lazy = false, priority = 1000 }, 'nvim-tree/nvim-web-devicons', 'sheerun/vim-polyglot', 'https://codeberg.org/ziglang/zig.vim', 'styled-components/vim-styled-components', 'dominikduda/vim_current_word', { 'lukas-reineke/indent-blankline.nvim', main = 'ibl', ft = { 'yaml', 'helm' }, opts = { scope = { enabled = false }, } }, 'itchyny/lightline.vim', 'itchyny/vim-gitbranch', { 'tribela/transparent.nvim', opts = {} }, -- Navigation and search 'airblade/vim-rooter', { 'nvim-telescope/telescope.nvim', tag = 'v0.1.9', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope-ui-select.nvim', }, config = function() require('nv-telescope') end }, { 'stevearc/oil.nvim', opts = {} }, { 'MagicDuck/grug-far.nvim', opts = {} }, -- Diagnostics, Git, and editing { 'folke/trouble.nvim', opts = {} }, { 'lewis6991/gitsigns.nvim', opts = {} }, 'jiangmiao/auto-pairs', { 'fatih/vim-go', init = function() vim.g.go_code_completion_enabled = 0 vim.g.go_gopls_enabled = 0 vim.g.go_fmt_command = 'gofmt' vim.g.go_fmt_options = { gofmt = '-s' } vim.g.go_imports_mode = 'goimports' vim.g.go_doc_keywordprg_enabled = 0 vim.g.go_def_mapping_enabled = 0 vim.g.go_search_bin_path_first = 0 vim.g.go_template_use_pkg = 1 vim.g.go_highlight_operators = 1 vim.g.go_highlight_types = 1 vim.g.go_highlight_extra_types = 1 vim.g.go_highlight_functions = 1 vim.g.go_highlight_function_calls = 1 end }, { 'stevearc/conform.nvim', opts = { formatters_by_ft = { ocaml = { 'ocamlformat' } }, } }, 'tpope/vim-commentary', 'tpope/vim-surround', 'psliwka/vim-smoothie', }, { lockfile = lockfile, checker = { enabled = false }, change_detection = { notify = false }, })