plugins.lua 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
  2. if not (vim.uv or vim.loop).fs_stat(lazypath) then
  3. vim.fn.system({
  4. "git",
  5. "clone",
  6. "--filter=blob:none",
  7. "https://github.com/folke/lazy.nvim.git",
  8. "--branch=stable", -- latest stable release
  9. lazypath,
  10. })
  11. end
  12. vim.opt.rtp:prepend(lazypath)
  13. require("lazy").setup({
  14. -- Colorschemes
  15. { 'navarasu/onedark.nvim', priority = 1000 },
  16. 'itchyny/landscape.vim',
  17. -- File Explorer (NvimTree)
  18. {
  19. 'nvim-tree/nvim-tree.lua',
  20. dependencies = { 'nvim-tree/nvim-web-devicons' },
  21. },
  22. -- CMake Tools
  23. {
  24. 'Civitasv/cmake-tools.nvim',
  25. lazy = true,
  26. cmd = { "CMakeGenerate", "CMakeBuild", "CMakeRun", "CMakeDebugTarget" },
  27. },
  28. -- Lualine
  29. {
  30. 'nvim-lualine/lualine.nvim',
  31. dependencies = { 'nvim-tree/nvim-web-devicons' }
  32. },
  33. -- Automatically close pairs like (), {}, etc.
  34. {
  35. 'windwp/nvim-autopairs',
  36. event = "InsertEnter",
  37. config = true
  38. -- use opts = {} for passing setup options
  39. -- this is equivalent to setup({}) function
  40. },
  41. -- Git
  42. 'tpope/vim-fugitive',
  43. 'lewis6991/gitsigns.nvim',
  44. -- LSP & Completion
  45. 'neovim/nvim-lspconfig',
  46. 'ThePrimeagen/refactoring.nvim',
  47. {
  48. 'Saghen/blink.cmp',
  49. build = 'cargo build --release',
  50. },
  51. 'L3MON4D3/LuaSnip',
  52. -- Formatting & Linting
  53. 'stevearc/conform.nvim',
  54. 'mfussenegger/nvim-lint',
  55. -- Search & Edit utilities
  56. 'romainl/vim-cool',
  57. 'tpope/vim-commentary',
  58. 'preservim/tagbar',
  59. 'mattn/emmet-vim',
  60. 'justinmk/vim-sneak',
  61. 'mhinz/vim-startify',
  62. 'csch0/vim-startify-renderer-nerdfont',
  63. 'tpope/vim-surround',
  64. -- Treesitter
  65. {
  66. 'nvim-treesitter/nvim-treesitter',
  67. branch = 'main',
  68. build = ':TSUpdate'
  69. },
  70. -- Indentation
  71. 'lukas-reineke/indent-blankline.nvim',
  72. -- Telescope
  73. {
  74. 'nvim-telescope/telescope.nvim',
  75. dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope-media-files.nvim' }
  76. },
  77. -- Wilder
  78. {
  79. 'gelguy/wilder.nvim',
  80. build = ':UpdateRemotePlugins'
  81. },
  82. -- Markdown Preview
  83. {
  84. 'iamcco/markdown-preview.nvim',
  85. cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
  86. build = "cd app && npm install",
  87. init = function()
  88. vim.g.mkdp_filetypes = { "markdown" }
  89. end,
  90. ft = { "markdown" },
  91. },
  92. -- Which-Key
  93. 'folke/which-key.nvim',
  94. -- Whitespace
  95. 'ntpeters/vim-better-whitespace',
  96. -- Colorpicker
  97. 'KabbAmine/vCoolor.vim',
  98. -- Buffer resizing
  99. 'ahonn/resize.vim',
  100. -- Colorizer
  101. 'NvChad/nvim-colorizer.lua',
  102. -- Android
  103. 'hsanson/vim-android',
  104. -- Debugging (DAP)
  105. {
  106. 'mfussenegger/nvim-dap',
  107. dependencies = {
  108. 'rcarriga/nvim-dap-ui',
  109. 'nvim-neotest/nvim-nio',
  110. 'theHamsta/nvim-dap-virtual-text',
  111. 'mfussenegger/nvim-dap-python',
  112. },
  113. }
  114. })