summaryrefslogtreecommitdiff
path: root/lua/jacksontaylorxyz/packer.lua
blob: 8827ff2cc6f235875bef331a9284bfe8d8d1926c (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
-- Packer package manager found here: https://github.com/wbthomason/packer.nvim
--
-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]

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

  -- Quality of life things
  use 'tpope/vim-commentary'                                          -- Really nice commenting functions
  use 'ap/vim-css-color'                                              -- highlights color codes in that color
  use 'preservim/nerdtree'                                            -- Folder tree on the left
  use 'Raimondi/delimitMate'                                          -- Auto delimits characters
  use 'sheerun/vim-polyglot'                                          -- Syntax highlighting for a ton of languages
  use {                                                               -- Finder bar (Kinda like fzf)
    'nvim-telescope/telescope.nvim', tag = '0.1.1',
    requires = { {'nvim-lua/plenary.nvim'} }
  }
  use 'nvim-tree/nvim-web-devicons'                                   -- Icons for other plugins
  use 'preservim/tagbar'                                              -- Ctags but in memory. Typescript does not work very well with exuberant ctags. Might work better with Universal ctags
  use 'qpkorr/vim-bufkill'                                            -- Closes buffer, but doesn't effect the window placement (splits)
  use {                                                               -- Highlights TODO comments
    "folke/todo-comments.nvim",
    requires = "nvim-lua/plenary.nvim",
    config = function()
      require("todo-comments").setup {
        -- leave this empty to use the default settings
        -- https://github.com/folke/todo-comments.nvim#%EF%B8%8F-configuration
        -- TODO: Change up colors maybe, and provide alternate words so that FIX also triggers FIXME colors/settings for example
      }
    end
  }
  use "junegunn/goyo.vim"                                             -- "Zen" mode
  use "mattn/calendar-vim"                                            -- Calendar for use with 
  use "lukas-reineke/indent-blankline.nvim"                           -- Provides whitespace/indent markers
  use 'HiPhish/rainbow-delimiters.nvim'                               -- This highlights things like curly braces in different colors so the matching one is seen easier

  -- Anything to do with git
  use 'tpope/vim-fugitive'                                            -- Git plugin
  use 'mhinz/vim-signify'                                             -- Shows line changes
  use 'APZelos/blamer.nvim'                                           -- Shows who changed the line last

  -- Different vim modes
  use {
    'vimwiki/vimwiki',                                                -- Diary and wiki suite
    config = function()
      -- Changes to this don't seem to take effect until I run PackerCompile
      vim.g.vimwiki_list = {
        {
          path = '~/vimwiki/personal/',
          path_html = '~/vimwiki/personal/html',
          syntax = 'markdown',
          ext = '.md',
          custom_wiki2html = 'wiki2html.sh',
        },
        {
          path = '~/vimwiki/test/',
          path_html = '~/vimwiki/test/html',
          syntax = 'markdown',
          ext = '.md'
        },
        {
          path = '~/vimwiki/work/',
          path_html = '~/vimwiki/work/html',
          -- syntax = 'default',
          -- ext = '.wiki'
          syntax = 'markdown',
          ext = '.md'
        },
      }
    end
  }

  -- Fancy stuff
  use 'vim-airline/vim-airline'                                       -- Fancy status bar
  use 'vim-airline/vim-airline-themes'                                -- Fancy status bar themes
  use 'mhinz/vim-startify'                                            -- Fancy startup script
  use "folke/which-key.nvim"                                          -- Fancy keybind menu
  use 'ryanoasis/vim-devicons'                                        -- Fancy icons for file types in nerdtree and other places

  -- Themes
  use 'ayu-theme/ayu-vim'                                             -- Nice blue theme. Closer to the gotham theme I had in VS code than the vim theme it was inspired by.
  use "rebelot/kanagawa.nvim"
  use "savq/melange-nvim"
  use 'rafi/awesome-vim-colorschemes'
  use "lunarvim/templeos.nvim"

  -- Language supports
  use 'SuneelFreimuth/vim-gemtext'                                    -- Syntax support for gemini markdown
  use {                                                               -- Better syntax highlighting
      'nvim-treesitter/nvim-treesitter',
      run = function()
          local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
          ts_update()
      end,
  }
  use {                                                               -- A super simple way to setup all the lsp stuff.
    'VonHeikemen/lsp-zero.nvim',
    branch = 'v1.x',
    requires = {
      -- LSP Support
      {'neovim/nvim-lspconfig'},             -- Required
      {'williamboman/mason.nvim'},           -- Optional              -- Package manager for LSPs, formatters and linters
      {'williamboman/mason-lspconfig.nvim'}, -- Optional              -- Manages the connection between what's installed with mason and the lsp config

      -- Autocompletion
      {'hrsh7th/nvim-cmp'},                  -- Required              -- Completion engine, gets what to complete from different sources (LSP for one)
      {'hrsh7th/cmp-nvim-lsp'},              -- Required
      {'hrsh7th/cmp-buffer'},                -- Optional
      {'hrsh7th/cmp-path'},                  -- Optional
      {'saadparwaiz1/cmp_luasnip'},          -- Optional
      {'hrsh7th/cmp-nvim-lua'},              -- Optional

      -- Snippets
      {'L3MON4D3/LuaSnip'},                  -- Required              -- Snippet engine
      {'rafamadriz/friendly-snippets'},      -- Optional              -- The actual snippets
    }
  }
  use {'fatih/vim-go', run = ':GoUpdateBinaries' }                    -- Nice Golang plugin
  use 'buoto/gotests-vim'                                             -- Better Golang Testing (generates tests for you)

end)