summaryrefslogtreecommitdiff
path: root/lua/plugins/init.lua
blob: bec9119b0135bf8966f431f5dfca24b6063dea54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
-- ~/.config/nvim/lua/plugins/init.lua
return {
    -- LSP
    {
      "neovim/nvim-lspconfig",
      config = function()
        require("config.lsp")()  -- note the () if your lsp.lua returns a function
      end,
    },

    -- TreeSitter
    {"nvim-treesitter/nvim-treesitter", branch = 'master', lazy = false, build = ":TSUpdate",
    config = function()
        require("config.treesitter")() 
    end,},
    {"nvim-treesitter/nvim-treesitter-textobjects", lazy = false, },

    -- Autopairs
    {
        'windwp/nvim-autopairs',
        event = "InsertEnter",
        config = true
        -- use opts = {} for passing setup options
        -- this is equivalent to setup({}) function
    },

    {
    "kylechui/nvim-surround",
    version = "^3.0.0", -- Use for stability; omit to use `main` branch for the latest features
    event = "VeryLazy",
    config = function()
        require("nvim-surround").setup({
            -- Configuration here, or leave empty to use defaults
        })
    end
    },

      {
        "hrsh7th/nvim-cmp",
        event = "InsertEnter",  -- lazy load when entering insert mode
        dependencies = {
          "hrsh7th/cmp-nvim-lsp",
          "hrsh7th/cmp-buffer",
          "hrsh7th/cmp-path",
          "saadparwaiz1/cmp_luasnip",
          "L3MON4D3/LuaSnip",
          "rafamadriz/friendly-snippets",
          "onsails/lspkind.nvim",
        },
        config = function()
          require("config.completion")()  -- load the separate config file
        end,
      },


    -- Autocompletion
    { "hrsh7th/nvim-cmp" },
    { "hrsh7th/cmp-nvim-lsp" },
    
    -- Snippets
  {
    "L3MON4D3/LuaSnip",
    version = "v2.*",
    dependencies = { "rafamadriz/friendly-snippets" },
    build = "make install_jsregexp",
    config = function()
      -- Call the returned function from your module
      require("config.luasnip")()
    end,
  },

    -- File Explorer
    { "nvim-tree/nvim-tree.lua", config = require("config.tree") },

    -- Icons
    { "nvim-tree/nvim-web-devicons" },

    -- Color Picker
    { "uga-rosa/ccc.nvim", config = require("config.colorpicker") },
    
    -- Status Line
    { "nvim-lualine/lualine.nvim", config = require("config.statusline"), opts = {} },
    
    -- Smooth Scrolling
    { "karb94/neoscroll.nvim", opts = {} },
    
    -- Telescope
    { "nvim-telescope/telescope.nvim", tag = "0.1.8", dependencies = { "nvim-lua/plenary.nvim" }, config = require("config.telescope") },
    
    -- Plenary
    { "nvim-lua/plenary.nvim" },

    -- LaTeX
    { "lervag/vimtex", ft = "tex", config = require("config.vimtex") },
    
    -- Grammar & Spell Checking
    { "rhysd/vim-grammarous", ft = "tex" },
    
    -- Tab Bar
    {
      "romgrk/barbar.nvim",
      dependencies = {
        "lewis6991/gitsigns.nvim",      -- optional: for git status
        "nvim-tree/nvim-web-devicons",  -- optional: for file icons
      },
      version = "^1.0.0",
      config = require("config.tabs"),
    },

    -- Dashboard
    { "nvimdev/dashboard-nvim", event = "VimEnter", dependencies = { "nvim-tree/nvim-web-devicons" }, config = require("config.dashboard") },
    
    -- Themes
    "martinsione/darkplus.nvim",
    "folke/tokyonight.nvim",
    "navarasu/onedark.nvim"
}