plugins.lua 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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. {
  47. 'ThePrimeagen/refactoring.nvim',
  48. dependencies = {
  49. 'nvim-lua/plenary.nvim',
  50. 'nvim-treesitter/nvim-treesitter',
  51. 'lewis6991/async.nvim',
  52. }
  53. },
  54. {
  55. 'Saghen/blink.cmp',
  56. dependencies = { 'saghen/blink.lib' },
  57. build = 'cargo build --release',
  58. },
  59. 'L3MON4D3/LuaSnip',
  60. -- Formatting & Linting
  61. 'stevearc/conform.nvim',
  62. 'mfussenegger/nvim-lint',
  63. -- Search & Edit utilities
  64. 'romainl/vim-cool',
  65. 'tpope/vim-commentary',
  66. 'preservim/tagbar',
  67. 'mattn/emmet-vim',
  68. 'justinmk/vim-sneak',
  69. 'mhinz/vim-startify',
  70. 'csch0/vim-startify-renderer-nerdfont',
  71. 'tpope/vim-surround',
  72. -- Treesitter
  73. {
  74. 'nvim-treesitter/nvim-treesitter',
  75. branch = 'main',
  76. build = ':TSUpdate'
  77. },
  78. -- Indentation
  79. 'lukas-reineke/indent-blankline.nvim',
  80. -- Telescope
  81. {
  82. 'nvim-telescope/telescope.nvim',
  83. dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope-media-files.nvim' }
  84. },
  85. -- Wilder
  86. {
  87. 'gelguy/wilder.nvim',
  88. build = ':UpdateRemotePlugins'
  89. },
  90. -- Markdown Preview
  91. {
  92. 'iamcco/markdown-preview.nvim',
  93. cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
  94. build = "cd app && npm install",
  95. init = function()
  96. vim.g.mkdp_filetypes = { "markdown" }
  97. end,
  98. ft = { "markdown" },
  99. },
  100. -- Which-Key
  101. 'folke/which-key.nvim',
  102. -- Whitespace
  103. 'ntpeters/vim-better-whitespace',
  104. -- Colorpicker
  105. 'KabbAmine/vCoolor.vim',
  106. -- Buffer resizing
  107. 'ahonn/resize.vim',
  108. -- Colorizer
  109. 'NvChad/nvim-colorizer.lua',
  110. -- Android
  111. 'hsanson/vim-android',
  112. -- Debugging (DAP)
  113. {
  114. 'mfussenegger/nvim-dap',
  115. dependencies = {
  116. 'rcarriga/nvim-dap-ui',
  117. 'nvim-neotest/nvim-nio',
  118. 'theHamsta/nvim-dap-virtual-text',
  119. 'mfussenegger/nvim-dap-python',
  120. },
  121. },
  122. -- Firenvim (neovim embedded in the browser)
  123. {
  124. 'glacambre/firenvim',
  125. build = ":call firenvim#install(0)"
  126. }
  127. })