aboutsummaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins.lua
blob: 7356e436d2ee95ae81c1454526babad22b01c589 (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
vim.cmd [[ packadd packer.nvim ]]

return require('packer').startup(function()
    use 'wbthomason/packer.nvim'    -- plugin manager (can manage itself)
    use 'junegunn/vim-easy-align'   -- align
    use 'AndrewRadev/sideways.vim'  -- Move arguments sideways
    use 'FooSoft/vim-argwrap'       -- Put arguments on multiple lines
    use 'tpope/vim-eunuch'          -- basic commands on current file (Rename/Remove)
    use 'romainl/vim-cool'          -- only highlight search matches when searching
    use 'neovim/nvim-lspconfig'     -- nvim lsp configuration

    use {
        'numToStr/Comment.nvim',
        config = function()
            require('Comment').setup()
        end
    }

    -- color scheme
    use {
        'ellisonleao/gruvbox.nvim', 
        requires = {'rktjmp/lush.nvim'},
        config = function()
            vim.opt.termguicolors = true
            vim.opt.background = "dark"
            vim.cmd [[ colorscheme gruvbox ]]
            vim.g.gruvbox_italic = 1
            vim.g.gruvbox_bold = 1
            vim.g.gruvbox_termcolors = 256
            vim.g.gruvbox_contrast_dark = 'medium'
            vim.g.gruvbox_contrast_light = 'hard'
            vim.g.gruvbox_invert_selection = 0
        end
    }
    -- status line
    use {
        'nvim-lualine/lualine.nvim',
        requires = {'kyazdani42/nvim-web-devicons', opt = true},
        config = function()
            require('lualine').setup {
                options = {
                    theme = 'gruvbox',
                    icons_enabled = true,
                    section_separators = '',
                    component_separators = ''
                }
            }
        end
    }
    -- better syntax highlight for everything
    use {
        'nvim-treesitter/nvim-treesitter',
        run = ':TSUpdate',
        config = function()
            require('nvim-treesitter.configs').setup {
                highlight = {
                    enable = true
                },
                -- indent = { enable = true },
                -- TODO: could be neat
                -- incremental_selection = {
                --     enable = true,
                --     keymaps = {
                --         init_selection = "gnn",
                --         node_incremental = "grn",
                --         scope_incremental = "grc",
                --         node_decremental = "grm",
                --     }
                -- }
            }
            vim.cmd [[ highlight link pythonTSKeywordOperator Keyword ]]
        end
    }
    -- fuzzy finder (replace fzf.vim or ctrlp.vim)
    use {
        'nvim-telescope/telescope.nvim',
        requires = {
            {'nvim-lua/plenary.nvim'},
            {'kyazdani42/nvim-web-devicons', opt = true},
        },
        config = function()
            local actions = require('telescope.actions')
            require('telescope').setup {
                defaults = {
                    mappings = {
                        i = {
                            ['<C-j>'] = actions.move_selection_next,
                            ['<C-k>'] = actions.move_selection_previous,
                            ['<esc>'] = actions.close,
                            ['kj'] = actions.close,
                        }
                    },
                }
            }
        end

    }
    -- todos,fix,etc.. highlight and list
    use {
        'folke/todo-comments.nvim',
        requires = 'nvim-lua/plenary.nvim',
        config = function()
            require('todo-comments').setup {
                signs = false
            }
        end
    }
end)