summaryrefslogtreecommitdiffstats
path: root/.config/nvim/lua/plugins.lua
blob: 93a5aa2f8bcf5581459c2e4d556215320d95352f (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
-- ┌───────────────────┐
-- │   ▜       ▗       │
-- │▛▀▖▐ ▌ ▌▞▀▌▄ ▛▀▖▞▀▘│
-- │▙▄▘▐ ▌ ▌▚▄▌▐ ▌ ▌▝▀▖│
-- │▌   ▘▝▀▘▗▄▘▀▘▘ ▘▀▀ │
-- └───────────────────┘

return require('packer').startup(function()
    -- packer can manage itself
    use 'wbthomason/packer.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'

    -- dashboard
    use 'glepnir/dashboard-nvim'

    -- completion suite
    use 'hrsh7th/nvim-cmp'
    use 'hrsh7th/cmp-nvim-lsp'
    use 'hrsh7th/cmp-buffer'
    use 'kdheepak/cmp-latex-symbols'
    use 'quangnguyen30192/cmp-nvim-ultisnips'

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

    -- manages tag files
    use 'ludovicchabant/vim-gutentags'
    -- run tests (todo: write tests)
    use 'janko/vim-test'
    -- type in file send to repl
    use 'jpalardy/vim-slime'
    -- snippets to expand
    use {'SirVer/ultisnips', 'honza/vim-snippets'}
    -- auto pair plugin, people hate these
    use 'tmsvg/pear-tree'
    -- git diff in the sign column
    use 'airblade/vim-gitgutter'
    -- completion preview of floating window
    use 'ncm2/float-preview.nvim'

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

    -- file explorer
    use 'lambdalisue/fern.vim'
    -- bug in neovim, so required for now
    -- https://github.com/lambdalisue/fern.vim/issues/120
    use 'antoinemadec/FixCursorHold.nvim'

    -- 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',
        ft = {'css', 'javascript', 'vim', 'html', 'dosini'},
        config = [[require('colorizer').setup {'css', 'javascript', 'vim', 'html', 'dosini'}]],
    }

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

    -- personal wiki
    use 'vimwiki/vimwiki'
    -- centers the writing
    use 'junegunn/goyo.vim'
    -- highlights the current paragraph
    use 'junegunn/limelight.vim'
    -- 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'
    -- provide additional text objects
    use 'wellle/targets.vim'
    -- indentation level text object, ia, ii
    use 'michaeljsmith/vim-indent-object'
    -- visual feedback for substitute holy shit this is amazing
    use 'markonm/traces.vim'
    -- 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'
    -- jump to location by 2 characters, `
    use 'justinmk/vim-sneak'
    -- reopen files at your last edit position
    use 'farmergreg/vim-lastplace'
    -- flash cursor on jump
    use 'DanilaMihailov/beacon.nvim'

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

    -- 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'}
    }
    -- increment dates, times & more
    use 'tpope/vim-speeddating'
    -- search, substitute and abbreviate
    use 'tpope/vim-abolish'
    -- provides ga, show unicode stuff of char under cursor
    use 'tpope/vim-characterize'
    -- comment helper
    -- https://github.com/numToStr/Comment.nvim hip & cool
    use 'tpope/vim-commentary'
    -- asynchronous build and test dispatcher
    use {'tpope/vim-dispatch', opt = true, cmd = {'Dispatch', 'Make', 'Focus', 'Start'}}
end)