----------------------------------------------------------- -- Installing plugin manager 'lazy.nvim' local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) -- Installing plugins require('lazy').setup({ { "catppuccin/nvim", name = "catppuccin" }, -- Color scheme { dir = "./lua/term_powershell.lua", cond = function() return vim.fn.has('win32') == 1 end, event = "CmdlineEnter", config = function() require("term_powershell").setup { pwsh = true } end }, { 'folke/which-key.nvim', config = function() vim.o.timeout = true vim.o.timeoutlen = 300 require('which-key').setup { } end, }, { 'RRethy/vim-illuminate', }, -- highlight keywords under cursor { -- comment 'numToStr/Comment.nvim', config = function() require('Comment').setup() end, }, { -- auto pair 'windwp/nvim-autopairs', config = function() require('nvim-autopairs').setup { check_ts = true, -- use treesitter } end, event = "InsertEnter", }, { -- lualine(statusline) 'nvim-lualine/lualine.nvim', dependencies = { 'nvim-tree/nvim-web-devicons', lazy = true } }, { 'shellRaining/hlchunk.nvim', event = { "BufReadPre", "BufNewFile" }, config = function() require('hlchunk').setup { chunk = { enable = true, }, line_num = { enable = true, }, } end }, { 'lervag/vimtex', ft = { 'tex', 'latex' }, }, { 'hkupty/iron.nvim', ft = { 'julia', 'python', 'ruby', 'lua', }, }, { 'lewis6991/gitsigns.nvim', }, 'neovim/nvim-lspconfig', { 'hrsh7th/nvim-cmp', event = "InsertEnter", dependencies = { 'hrsh7th/cmp-nvim-lsp', -- LSP 'L3MON4D3/LuaSnip', -- snippets 'saadparwaiz1/cmp_luasnip', -- nvim-cmp source for LuaSnip 'hrsh7th/cmp-buffer', -- nvim-cmp source for buffer words 'hrsh7th/cmp-path', -- nvim-cmp source for filesystem paths 'hrsh7th/cmp-cmdline', -- command line 'hrsh7th/cmp-omni', -- source for omnifunc 'hrsh7th/cmp-nvim-lua', -- nvim lua 'hrsh7th/cmp-nvim-lsp-signature-help', 'nvim-orgmode/orgmode', { "mtoohey31/cmp-fish", ft = 'fish', cond = function() return vim.fn.has('win32') == 0 end }, }, }, { 'kdheepak/cmp-latex-symbols', -- latex math ft = { 'julia', 'typst', }, }, { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", dependencies = { "nvim-treesitter/nvim-treesitter-textobjects", { "nvim-treesitter/nvim-treesitter-context" } }, }, { "nvim-treesitter/playground", lazy = true, }, { "andymass/vim-matchup", }, { 'nvim-telescope/telescope.nvim', dependencies = { 'nvim-lua/plenary.nvim' }, }, { 'nvimtools/none-ls.nvim', dependencies = { 'nvim-lua/plenary.nvim', }, }, { 'folke/trouble.nvim', opts = {}, cmd = "Trouble", keys = { { "xx", "Trouble diagnostics toggle", desc = "Diagnostics (Trouble)", }, { "xX", "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics (Trouble)", }, { "cs", "Trouble symbols toggle focus=false", desc = "Symbols (Trouble)", }, { "cl", "Trouble lsp toggle focus=false win.position=bottom", desc = "LSP Definitions / references / ... (Trouble)", }, { "xL", "Trouble loclist toggle", desc = "Location List (Trouble)", }, { "xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)", }, }, }, { 'Julian/lean.nvim', event = { 'BufReadPre *.lean', 'BufNewFile *.lean' }, dependencies = { 'neovim/nvim-lspconfig', 'nvim-lua/plenary.nvim', 'hrsh7th/nvim-cmp', }, -- see Julian/lean.nvim readme opts = { lsp = { on_attach = require("lsp_config").on_attach, }, mappings = true, }, -- this currently disables all default settings in lean.nvim -- default lean.nvim config overwrites lspconfig -- TODO: migrate default settings from lean.nvim }, { 'nvim-orgmode/orgmode', dependencies = { { 'nvim-treesitter/nvim-treesitter', lazy = true }, }, -- event = 'VeryLazy', -- doesn't work with existing comp and treesitter config = function() -- Setup orgmode require('orgmode').setup({ org_agenda_files = '~/orgfiles/**/*', org_default_notes_file = '~/orgfiles/refile.org', org_todo_keywords = { "TODO(t)", "PLAN(p)", "NEXT(n)", "|", "DONE(d)", "CANCELED(c)", }, org_todo_keyword_faces = { -- TODO = ":foreground red", PLAN = ":foreground #F0BB61", NEXT = ":background #663333 :foreground #E0A0A0", CANCELED = ":foreground #99AA99", }, org_archive_location = '~/orgfiles/archives/%s_archive::', org_adapt_indentation = false, org_id_link_to_org_use_id = true, org_capture_templates = { t = { description = "Task", template = '* TODO %?\n%u' }, l = { description = "Log", template = '* %?\n%U' }, j = { description = "Journal", template = '* %?\n%U', target = '~/orgfiles/journal.org', }, }, }) end, }, { 'chomosuke/typst-preview.nvim', ft = 'typst', version = 'v1.*', build = function() require 'typst-preview'.update() end, config = function() require 'typst-preview'.setup { -- Setting this true will enable printing debug information with print() debug = false, -- Custom format string to open the output link provided with %s -- Example: open_cmd = 'firefox %s -P typst-preview --class typst-preview' open_cmd = nil, -- Setting this to 'always' will invert black and white in the preview -- Setting this to 'auto' will invert depending if the browser has enable -- dark mode -- Setting this to '{"rest": "