summaryrefslogtreecommitdiffstats
path: root/.config/nvim/lua/plugins.lua
blob: 1a36ce956813c43f490f79aee3a75a2f527c7b95 (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
-- ┌───────────────────┐
-- │   ▜       ▗       │
-- │▛▀▖▐ ▌ ▌▞▀▌▄ ▛▀▖▞▀▘│
-- │▙▄▘▐ ▌ ▌▚▄▌▐ ▌ ▌▝▀▖│
-- │▌   ▘▝▀▘▗▄▘▀▘▘ ▘▀▀ │
-- └───────────────────┘

return require('packer').startup(function(use)
    -- packer can manage itself
    use 'wbthomason/packer.nvim'

    -- improve startup time
    -- remove when merged
    -- https://github.com/neovim/neovim/pull/15436
    use 'lewis6991/impatient.nvim'

    -- latex suite
    use {'lervag/vimtex', ft = {'tex', 'latex', 'plaintext'}}

    -- treesitter
    use {
        'nvim-treesitter/nvim-treesitter',
        run = ':TSUpdate'
    }
    -- quickstart lsp config
    use 'neovim/nvim-lspconfig'
    -- visualize lsp progress
    use 'j-hui/fidget.nvim'
    -- extra rust-analyzer functionality
    use 'simrat39/rust-tools.nvim'


    -- annotation generator
    use {
        "danymat/neogen",
        config = function()
            require('neogen').setup {}
        end,
        requires = "nvim-treesitter/nvim-treesitter",
    }

    -- dashboard
    use {
        'goolord/alpha-nvim',
        requires = { 'kyazdani42/nvim-web-devicons' }
    }

    -- completion suite
    use 'hrsh7th/nvim-cmp'
    use ({
        'hrsh7th/cmp-nvim-lsp',
        'hrsh7th/cmp-buffer',
        'hrsh7th/cmp-path',
        'quangnguyen30192/cmp-nvim-ultisnips',
        after = { 'hrsh7th/nvim-cmp' },
        requires = { 'hrsh7th/nvim-cmp' },
    })

    -- find, filter, preview, pick
    use {
        'nvim-telescope/telescope.nvim',
        requires = { 'nvim-lua/plenary.nvim' }
    }
    use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }

    --  git integration for buffers
    use {
        'lewis6991/gitsigns.nvim',
        requires = {
            'nvim-lua/plenary.nvim'
        },
    }

    -- manages tag files
    use 'ludovicchabant/vim-gutentags'
    -- type in file send to repl
    use 'jpalardy/vim-slime'
    -- snippets to expand
    use {'SirVer/ultisnips', 'honza/vim-snippets'}
    -- autopairs for neovim
    use 'windwp/nvim-autopairs'
    -- indent guides
    use "lukas-reineke/indent-blankline.nvim"

    -- language packs
    use "nathom/filetype.nvim"
    -- i3 config filetype
    use 'mboughaba/i3config.vim'
    -- ledger filetype
    use 'ledger/vim-ledger'

    -- file explorer
    use 'kyazdani42/nvim-tree.lua'
    -- viewer & finder for lsp symbols and tags
    use 'liuchengxu/vista.vim'

    -- undo tree
    use {
        'mbbill/undotree',
        cmd = 'UndotreeToggle',
        config = [[vim.g.undotree_SetFocusWhenToggle = 1]],
    }

    -- highlight colors
    use 'norcalli/nvim-colorizer.lua'

    -- cutlass suite, x, d, \ys etc.
    use {
        'svermeulen/vim-cutlass',
        'svermeulen/vim-subversive',
        'svermeulen/vim-yoink'
    }

    -- personal wiki
    use 'vimwiki/vimwiki'
    -- change ASCII text to Turkish text
    use 'yigitsever/turkish-deasciifier.vim'

    -- text alignment \w :Tab
    use 'godlygeek/tabular'
    -- move selections up and down with alt+[j,k]
    use 'matze/vim-move'
    -- surround text objects; sa, sr and sd
    use 'machakann/vim-sandwich'
    -- see the contents of registers on "/<CTRL-R>
    use 'junegunn/vim-peekaboo'
    -- use <leader>k to highlight multiple words)
    use 'lfv89/vim-interestingwords'
    -- swap delimited items using g>, g<
    use 'machakann/vim-swap'

    -- sneak, but in l u a
    use 'ggandor/leap.nvim'
    -- -- jump to location by 2 characters, `
    -- use 'justinmk/vim-sneak'
    -- additional text objects, don't remove this ever again you fuck
    use 'wellle/targets.vim'
    -- enhanced increment/decrement plugin ala speeddating
    use 'monaqa/dial.nvim'
    -- comment helper
    use 'numToStr/Comment.nvim'

    -- statusline of the $CURRENT_YEAR
    use {
        'nvim-lualine/lualine.nvim',
        requires = {'kyazdani42/nvim-web-devicons', opt = true}
    }
    -- colour theme of the $CURRENT_YEAR
    use 'rose-pine/neovim'

    -- search for, substitute, and abbreviate multiple variants of a word
    use 'tpope/vim-abolish'
    -- enable repeating supported plugin maps with '.'
    use 'tpope/vim-repeat'
    -- pairs of handy bracket mappings
    use 'tpope/vim-unimpaired'
    -- git wrapper
    use {
        'tpope/vim-fugitive', cmd = {'Git', 'Gstatus', 'Gblame', 'Gpush', 'Gpull'}
    }
    -- provides ga, show unicode stuff of char under cursor
    use 'tpope/vim-characterize'
    -- asynchronous build and test dispatcher
    use {'tpope/vim-dispatch', opt = true, cmd = {'Dispatch', 'Make', 'Focus', 'Start'}}
    -- automatically adjust 'shiftwidth' and 'expandtab'
    use 'tpope/vim-sleuth'
end)