From 457ce9e6017c081e02a566895fa1fe488cd87b9c Mon Sep 17 00:00:00 2001
From: Michaël Ball <michael.ball@krotosaudio.com>
Date: Thu, 18 Jul 2024 09:07:05 +0100
Subject: Refactor plugins for lazy.nvim

---
 .gitignore                                         |   1 +
 neovim/.config/nvim/init.lua                       |   2 +-
 neovim/.config/nvim/lua/config/colourscheme.lua    |   2 +-
 .../.config/nvim/lua/config/colourscheme_dark.lua  |   6 -
 .../.config/nvim/lua/config/colourscheme_light.lua |   6 -
 neovim/.config/nvim/lua/config/galaxyline.lua      | 209 ---------
 neovim/.config/nvim/lua/config/gitsigns.lua        |  40 --
 neovim/.config/nvim/lua/config/goyo.lua            |  30 --
 .../.config/nvim/lua/config/indent_blankline.lua   |   3 -
 neovim/.config/nvim/lua/config/lazy.lua            |   2 +-
 neovim/.config/nvim/lua/config/lspsaga.lua         |  18 -
 neovim/.config/nvim/lua/config/neogit.lua          |  25 -
 neovim/.config/nvim/lua/config/nvim_cmp.lua        |  47 --
 neovim/.config/nvim/lua/config/nvim_dap.lua        |  82 ----
 neovim/.config/nvim/lua/config/nvim_lspconfig.lua  |  71 ---
 neovim/.config/nvim/lua/config/nvim_treesitter.lua |  25 -
 neovim/.config/nvim/lua/config/tabby.lua           |  30 --
 neovim/.config/nvim/lua/config/vimux.lua           |  15 -
 neovim/.config/nvim/lua/plugins.lua                | 204 --------
 neovim/.config/nvim/lua/plugins/csound.lua         |   6 +
 neovim/.config/nvim/lua/plugins/django_plus.lua    |   5 +
 neovim/.config/nvim/lua/plugins/galaxyline.lua     | 230 +++++++++
 neovim/.config/nvim/lua/plugins/gitsigns.lua       |  45 ++
 neovim/.config/nvim/lua/plugins/goyo.lua           |  43 ++
 .../.config/nvim/lua/plugins/indent_blankline.lua  |   9 +
 neovim/.config/nvim/lua/plugins/lspsaga.lua        |  24 +
 neovim/.config/nvim/lua/plugins/neo_tree.lua       |  15 +
 neovim/.config/nvim/lua/plugins/neogit.lua         |  36 ++
 neovim/.config/nvim/lua/plugins/nerdcommenter.lua  |   5 +
 neovim/.config/nvim/lua/plugins/nvim_cmp.lua       |  86 ++++
 neovim/.config/nvim/lua/plugins/nvim_dap.lua       |  94 ++++
 neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua |  80 ++++
 .../.config/nvim/lua/plugins/nvim_treesitter.lua   |  31 ++
 neovim/.config/nvim/lua/plugins/scvim.lua          |   9 +
 neovim/.config/nvim/lua/plugins/tabby.lua          |  41 ++
 neovim/.config/nvim/lua/plugins/tabular.lua        |   5 +
 neovim/.config/nvim/lua/plugins/telescope.lua      |  13 +
 neovim/.config/nvim/lua/plugins/tmux_plugins.lua   |  18 +
 neovim/.config/nvim/lua/plugins/undotree.lua       |   8 +
 neovim/.config/nvim/lua/plugins/venv_selector.lua  |  10 +
 neovim/.config/nvim/lua/plugins/vim_devicons.lua   |   5 +
 .../.config/nvim/lua/plugins/vim_jinja2_syntax.lua |   6 +
 neovim/.config/nvim/lua/plugins/vim_markdown.lua   |   9 +
 neovim/.config/nvim/lua/plugins/vim_prettier.lua   |   5 +
 neovim/.config/nvim/lua/settings.lua               |  14 +-
 neovim/.config/nvim/plugin/packer_compiled.lua     | 513 ---------------------
 46 files changed, 849 insertions(+), 1334 deletions(-)
 delete mode 100644 neovim/.config/nvim/lua/config/colourscheme_dark.lua
 delete mode 100644 neovim/.config/nvim/lua/config/colourscheme_light.lua
 delete mode 100644 neovim/.config/nvim/lua/config/galaxyline.lua
 delete mode 100644 neovim/.config/nvim/lua/config/gitsigns.lua
 delete mode 100644 neovim/.config/nvim/lua/config/goyo.lua
 delete mode 100644 neovim/.config/nvim/lua/config/indent_blankline.lua
 delete mode 100644 neovim/.config/nvim/lua/config/lspsaga.lua
 delete mode 100644 neovim/.config/nvim/lua/config/neogit.lua
 delete mode 100644 neovim/.config/nvim/lua/config/nvim_cmp.lua
 delete mode 100644 neovim/.config/nvim/lua/config/nvim_dap.lua
 delete mode 100644 neovim/.config/nvim/lua/config/nvim_lspconfig.lua
 delete mode 100644 neovim/.config/nvim/lua/config/nvim_treesitter.lua
 delete mode 100644 neovim/.config/nvim/lua/config/tabby.lua
 delete mode 100644 neovim/.config/nvim/lua/config/vimux.lua
 delete mode 100644 neovim/.config/nvim/lua/plugins.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/csound.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/django_plus.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/galaxyline.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/gitsigns.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/goyo.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/indent_blankline.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/lspsaga.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/neo_tree.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/neogit.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/nerdcommenter.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/nvim_cmp.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/nvim_dap.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/nvim_treesitter.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/scvim.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/tabby.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/tabular.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/telescope.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/tmux_plugins.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/undotree.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/venv_selector.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/vim_devicons.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/vim_jinja2_syntax.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/vim_markdown.lua
 create mode 100644 neovim/.config/nvim/lua/plugins/vim_prettier.lua
 delete mode 100644 neovim/.config/nvim/plugin/packer_compiled.lua

diff --git a/.gitignore b/.gitignore
index 45b435b..ee49fae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 neovim/.local/share/nvim/site/pack/
+neovim/.config/nvim/lazy-lock.json
diff --git a/neovim/.config/nvim/init.lua b/neovim/.config/nvim/init.lua
index 853b0fc..9f86514 100644
--- a/neovim/.config/nvim/init.lua
+++ b/neovim/.config/nvim/init.lua
@@ -1,2 +1,2 @@
-require("config.lazy")
 require('settings')
+require('config.lazy')
diff --git a/neovim/.config/nvim/lua/config/colourscheme.lua b/neovim/.config/nvim/lua/config/colourscheme.lua
index 62f453a..d5ffa34 100644
--- a/neovim/.config/nvim/lua/config/colourscheme.lua
+++ b/neovim/.config/nvim/lua/config/colourscheme.lua
@@ -1,4 +1,4 @@
-local colorscheme = "adwaita"
+local colorscheme = "xcode"
 vim.o.background = "light" -- or "light" for light mode
 local ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
 if not ok then
diff --git a/neovim/.config/nvim/lua/config/colourscheme_dark.lua b/neovim/.config/nvim/lua/config/colourscheme_dark.lua
deleted file mode 100644
index 7588132..0000000
--- a/neovim/.config/nvim/lua/config/colourscheme_dark.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-local colorscheme = "adwaita"
-vim.o.background = "dark" -- or "light" for light mode
-local ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
-if not ok then
-  vim.notify("colorscheme " .. colorscheme .. " not found!")
-end
diff --git a/neovim/.config/nvim/lua/config/colourscheme_light.lua b/neovim/.config/nvim/lua/config/colourscheme_light.lua
deleted file mode 100644
index 62f453a..0000000
--- a/neovim/.config/nvim/lua/config/colourscheme_light.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-local colorscheme = "adwaita"
-vim.o.background = "light" -- or "light" for light mode
-local ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
-if not ok then
-  vim.notify("colorscheme " .. colorscheme .. " not found!")
-end
diff --git a/neovim/.config/nvim/lua/config/galaxyline.lua b/neovim/.config/nvim/lua/config/galaxyline.lua
deleted file mode 100644
index a4bdf05..0000000
--- a/neovim/.config/nvim/lua/config/galaxyline.lua
+++ /dev/null
@@ -1,209 +0,0 @@
-local gl = require('galaxyline')
-local colors = {
-  yellow = vim.g.terminal_color_11,
-  cyan = vim.g.terminal_color_14,
-  darkblue = vim.g.terminal_color_4,
-  green = vim.g.terminal_color_10,
-  orange = vim.g.terminal_color_3,
-  violet = vim.g.terminal_color_5,
-  magenta = vim.g.terminal_color_13,
-  blue = vim.g.terminal_color_12,
-  red = vim.g.terminal_color_9,
-}
-local condition = require('galaxyline.condition')
-local gls = gl.section
-local lsp = require('galaxyline.provider_lsp')
-gl.short_line_list = {'nerdtree', 'NeogitStatus', 'vim-plug', 'lspsagaoutline'}
-
-gls.left[1] = {
-  RainbowBlue = {
-    provider = function() return '▊ ' end,
-    highlight = {colors.blue, 'StatusLine'}
-  },
-}
-gls.left[2] = {
-  ViMode = {
-    provider = function()
-      -- auto change color according the vim mode
-      local mode_color = {n = colors.red, i = colors.green,v=colors.blue,
-                          ['^V'] = colors.blue,V=colors.blue,
-                          c = colors.magenta,no = colors.red,s = colors.orange,
-                          S=colors.orange,['^S'] = colors.orange,
-                          ic = colors.yellow,R = colors.violet,Rv = colors.violet,
-                          cv = colors.red,ce=colors.red, r = colors.cyan,
-                          rm = colors.cyan, ['r?'] = colors.cyan,
-                          ['!']  = colors.red,t = colors.red}
-      vim.api.nvim_command('hi GalaxyViMode guifg='..mode_color[vim.fn.mode()])
-      return '  '
-    end,
-    highlight = {colors.red, 'StatusLine', 'bold'},
-  }, 
-}
-
-gls.left[3] = {
-  FileSize = {
-    provider = 'FileSize',
-    condition = condition.buffer_not_empty,
-    highlight = {'StatusLine', 'StatusLine'},
-  }
-}
-gls.left[4] ={
-  FileIcon = {
-    provider = 'FileIcon',
-    condition = function()
-        if vim.g.GtkGuiLoaded ~= nil and condition.buffer_not_empty() then
-            return true
-        end
-        return false
-    end,
-    highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color, 'StatusLine'},
-  },
-}
-
-gls.left[5] = {
-  FileName = {
-    provider = 'FileName',
-    condition = condition.buffer_not_empty,
-    highlight = {colors.magenta, 'StatusLine', 'bold'}
-  }
-}
-
-gls.left[6] = {
-  LineInfo = {
-    provider = 'LineColumn',
-    separator = ' ',
-    separator_highlight = {'NONE', 'StatusLine'},
-    highlight = {'NONE', 'StatusLine'},
-  },
-}
-
-gls.left[7] = {
-  PerCent = {
-    provider = 'LinePercent',
-    separator = ' ',
-    separator_highlight = {'NONE', 'StatusLine'},
-    highlight = {'NONE', 'StatusLine', 'bold'},
-  }
-}
-
-gls.left[8] = {
-  DiagnosticError = {
-    provider = 'DiagnosticError',
-    icon = '  ',
-    highlight = {colors.red, 'StatusLine'}
-  }
-}
-gls.left[9] = {
-  DiagnosticWarn = {
-    provider = 'DiagnosticWarn',
-    icon = '  ',
-    highlight = {colors.yellow, 'StatusLine'},
-  }
-}
-
-gls.left[10] = {
-  DiagnosticHint = {
-    provider = 'DiagnosticHint',
-    icon = '  ',
-    highlight = {colors.cyan, 'StatusLine'},
-  }
-}
-
-gls.left[11] = {
-  DiagnosticInfo = {
-    provider = 'DiagnosticInfo',
-    icon = '  ',
-    highlight = {colors.blue, 'StatusLine'},
-  }
-}
-
-gls.mid[1] = {
-  ShowLspClient = {
-    provider = 'GetLspClient',
-    condition = function ()
-      local tbl = {['dashboard'] = true,['']=true}
-      if tbl[vim.bo.filetype] then
-        return false
-      elseif lsp.get_lsp_client() == 'No Active Lsp' then
-        return false
-      end
-      return true
-    end,
-    icon = '⚙ LSP:',
-    highlight = {colors.cyan, 'StatusLine','bold'}
-  }
-}
-
-gls.right[1] = {
-  GitIcon = {
-    provider = function() return '  ' end,
-    condition = condition.check_git_workspace,
-    separator = ' ',
-    separator_highlight = {'NONE', 'StatusLine'},
-    highlight = {colors.violet, 'StatusLine', 'bold'},
-  }
-}
-
-gls.right[2] = {
-  GitBranch = {
-    provider = 'GitBranch',
-    condition = condition.check_git_workspace,
-    highlight = {colors.violet, 'StatusLine', 'bold'},
-  }
-}
-
-gls.right[3] = {
-  DiffAdd = {
-    provider = 'DiffAdd',
-    condition = condition.hide_in_width,
-    icon = ' +',
-    highlight = {colors.green, 'StatusLine'},
-  }
-}
-gls.right[4] = {
-  DiffModified = {
-    provider = 'DiffModified',
-    condition = condition.hide_in_width,
-    icon = ' ±',
-    highlight = {colors.orange, 'StatusLine'},
-  }
-}
-gls.right[5] = {
-  DiffRemove = {
-    provider = 'DiffRemove',
-    condition = condition.hide_in_width,
-    icon = ' -',
-    highlight = {colors.red, 'StatusLine'},
-  }
-}
-
-gls.right[6] = {
-  RainbowBlue = {
-    provider = function() return ' ▊' end,
-    highlight = {colors.blue, 'StatusLine'}
-  },
-}
-
-gls.short_line_left[1] = {
-  BufferType = {
-    provider = 'FileTypeName',
-    separator = ' ',
-    separator_highlight = {'NONE', 'StatusLine'},
-    highlight = {colors.blue, 'StatusLine', 'bold'}
-  }
-}
-
-gls.short_line_left[2] = {
-  SFileName = {
-    provider =  'SFileName',
-    condition = condition.buffer_not_empty,
-    highlight = {'StatusLine', 'StatusLine', 'bold'}
-  }
-}
-
-gls.short_line_right[1] = {
-  BufferIcon = {
-    provider= 'BufferIcon',
-    highlight = {'StatusLine', 'StatusLine'},
-  }
-}
diff --git a/neovim/.config/nvim/lua/config/gitsigns.lua b/neovim/.config/nvim/lua/config/gitsigns.lua
deleted file mode 100644
index 4f4e25c..0000000
--- a/neovim/.config/nvim/lua/config/gitsigns.lua
+++ /dev/null
@@ -1,40 +0,0 @@
-require('gitsigns').setup {
-  on_attach = function(bufnr)
-    local gs = package.loaded.gitsigns
-
-    local function map(mode, l, r, opts)
-      opts = opts or {}
-      opts.buffer = bufnr
-      vim.keymap.set(mode, l, r, opts)
-    end
-
-    -- Navigation
-    map('n', ']c', function()
-      if vim.wo.diff then return ']c' end
-      vim.schedule(function() gs.next_hunk() end)
-      return '<Ignore>'
-    end, {expr=true})
-
-    map('n', '[c', function()
-      if vim.wo.diff then return '[c' end
-      vim.schedule(function() gs.prev_hunk() end)
-      return '<Ignore>'
-    end, {expr=true})
-
-    -- Actions
-    map({'n', 'v'}, '<leader>hs', ':Gitsigns stage_hunk<CR>')
-    map({'n', 'v'}, '<leader>hr', ':Gitsigns reset_hunk<CR>')
-    map('n', '<leader>hS', gs.stage_buffer)
-    map('n', '<leader>hu', gs.undo_stage_hunk)
-    map('n', '<leader>hR', gs.reset_buffer)
-    map('n', '<leader>hp', gs.preview_hunk)
-    map('n', '<leader>hb', function() gs.blame_line{full=true} end)
-    map('n', '<leader>tb', gs.toggle_current_line_blame)
-    map('n', '<leader>hd', gs.diffthis)
-    map('n', '<leader>hD', function() gs.diffthis('~') end)
-    map('n', '<leader>td', gs.toggle_deleted)
- 
-    -- Text object
-    map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
-  end
-}
diff --git a/neovim/.config/nvim/lua/config/goyo.lua b/neovim/.config/nvim/lua/config/goyo.lua
deleted file mode 100644
index dcb7134..0000000
--- a/neovim/.config/nvim/lua/config/goyo.lua
+++ /dev/null
@@ -1,30 +0,0 @@
-vim.keymap.set('', '<Leader>z', '<cmd>Goyo<CR><CR>', {})
-vim.keymap.set('x', '<Leader>z', '<cmd>Goyo<CR>', {})
-
-local goyo_enter = function()
-  vim.opt.showmode = false
-  vim.opt.showcmd = false
-  vim.opt.scrolloff = 999
-  vim.cmd('Limelight')
-end
-
-local goyo_leave = function()
-  vim.opt.showmode = true
-  vim.opt.showcmd = true
-  vim.opt.scrolloff = 5
-  vim.cmd('Limelight!')
-end
-
-local goyo_augroup = vim.api.nvim_create_augroup('Goyo', { clear = true })
-vim.api.nvim_create_autocmd('User',
-  {
-    pattern = 'GoyoEnter',
-    group = goyo_augroup,
-    callback = goyo_enter,
-  })
-vim.api.nvim_create_autocmd('User',
-  {
-    pattern = 'GoyoLeave',
-    group = goyo_augroup,
-    callback = goyo_leave,
-  })
diff --git a/neovim/.config/nvim/lua/config/indent_blankline.lua b/neovim/.config/nvim/lua/config/indent_blankline.lua
deleted file mode 100644
index 16972b7..0000000
--- a/neovim/.config/nvim/lua/config/indent_blankline.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-require "ibl".setup({
-  indent = { char = '▏' },
-})
diff --git a/neovim/.config/nvim/lua/config/lazy.lua b/neovim/.config/nvim/lua/config/lazy.lua
index f5ee74c..ef4c1e0 100644
--- a/neovim/.config/nvim/lua/config/lazy.lua
+++ b/neovim/.config/nvim/lua/config/lazy.lua
@@ -18,7 +18,7 @@ vim.opt.rtp:prepend(lazypath)
 -- Make sure to setup `mapleader` and `maplocalleader` before
 -- loading lazy.nvim so that mappings are correct.
 -- This is also a good place to setup other settings (vim.opt)
-vim.g.mapleader = " "
+vim.g.mapleader = "\\"
 vim.g.maplocalleader = "\\"
 
 -- Setup lazy.nvim
diff --git a/neovim/.config/nvim/lua/config/lspsaga.lua b/neovim/.config/nvim/lua/config/lspsaga.lua
deleted file mode 100644
index 64a2624..0000000
--- a/neovim/.config/nvim/lua/config/lspsaga.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-local lspsaga = require 'lspsaga'
-lspsaga.setup({
-  symbol_in_winbar = {
-    respect_root = true,
-  },
-})
-
-vim.keymap.set("n", "gh", "<cmd>Lspsaga finder<CR>", { silent = true })
--- code action
-vim.keymap.set("n", "<leader>cx", "<cmd>Lspsaga code_action<CR>", { silent = true })
-vim.keymap.set("v", "<leader>cx", "<cmd><C-U>Lspsaga range_code_action<CR>", { silent = true })
--- hover doc
-vim.keymap.set("n", "K", "<cmd>Lspsaga hover_doc<CR>", { silent = true })
--- rename
-vim.keymap.set("n", "<leader>rn", "<cmd>Lspsaga rename<CR>", { silent = true })
--- jump to diagnostics
-vim.keymap.set("n", "[g", "<cmd>Lspsaga diagnostic_jump_next<CR>", { silent = true })
-vim.keymap.set("n", "]g", "<cmd>Lspsaga diagnostic_jump_prev<CR>", { silent = true })
diff --git a/neovim/.config/nvim/lua/config/neogit.lua b/neovim/.config/nvim/lua/config/neogit.lua
deleted file mode 100644
index 6c4a36a..0000000
--- a/neovim/.config/nvim/lua/config/neogit.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local neogit = require("neogit")
-
-neogit.setup {
-  disable_commit_confirmation = true,
-  auto_refresh = true,
-  kind = 'tab',
-  commit_editor = {
-    kind = 'auto',
-  },
-  integrations = {
-    -- Neogit only provides inline diffs. If you want a more traditional way to look at diffs, you can use `sindrets/diffview.nvim`.
-    -- The diffview integration enables the diff popup, which is a wrapper around `sindrets/diffview.nvim`.
-    --
-    -- Requires you to have `sindrets/diffview.nvim` installed.
-    -- use { 
-    --   'TimUntersberger/neogit', 
-    --   requires = { 
-    --     'nvim-lua/plenary.nvim',
-    --     'sindrets/diffview.nvim' 
-    --   }
-    -- }
-    --
-    diffview = true
-  }
-}
diff --git a/neovim/.config/nvim/lua/config/nvim_cmp.lua b/neovim/.config/nvim/lua/config/nvim_cmp.lua
deleted file mode 100644
index 2fe93f5..0000000
--- a/neovim/.config/nvim/lua/config/nvim_cmp.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local cmp = require'cmp'
-
-cmp.setup({
-  snippet = {
-    -- REQUIRED - you must specify a snippet engine
-    expand = function(args)
-      vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
-    end,
-  },
-  view = {
-    entries = {name = 'custom', selection_order = 'near_cursor' } 
-  },
-  mapping = cmp.mapping.preset.insert({
-    ['<C-b>'] = cmp.mapping.scroll_docs(-4),
-    ['<C-f>'] = cmp.mapping.scroll_docs(4),
-    ['<C-Space>'] = cmp.mapping.complete(),
-    ['<C-e>'] = cmp.mapping.abort(),
-    ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
-  }),
-  sources = cmp.config.sources({
-    { name = 'nvim_lsp' },
-    { name = 'nvim_lsp_signature_help' },
-    { name = 'vsnip' }, -- For vsnip users.
-  }, {
-    { name = 'buffer' },
-  }, {
-    { name = 'tmux' },
-  })
-})
-
--- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
-cmp.setup.cmdline('/', {
-  sources = cmp.config.sources({
-    { name = 'nvim_lsp_document_symbol' }
-  }, {
-    { name = 'buffer' }
-  })
-})
-
--- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
-cmp.setup.cmdline(':', {
-  sources = cmp.config.sources({
-    { name = 'path' }
-  }, {
-    { name = 'cmdline' }
-  })
-})
diff --git a/neovim/.config/nvim/lua/config/nvim_dap.lua b/neovim/.config/nvim/lua/config/nvim_dap.lua
deleted file mode 100644
index 4d0180b..0000000
--- a/neovim/.config/nvim/lua/config/nvim_dap.lua
+++ /dev/null
@@ -1,82 +0,0 @@
-local dap = require'dap'
-vim.fn.sign_define('DapBreakpoint', {
-    text = '⬤',
-    texthl = 'ErrorMsg',
-    linehl = '',
-    numhl = 'ErrorMsg'
-})
-
-vim.fn.sign_define('DapBreakpointCondition', {
-    text = '⬤',
-    texthl = 'ErrorMsg',
-    linehl = '',
-    numhl = 'SpellBad'
-})
-
-local pythonPath = function()
-  local cwd = vim.loop.cwd()
-  if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then
-    return cwd .. '/venv/bin/python'
-  else
-    return '/Users/michael/.pyenv/shims/python3'
-  end
-end
-
-local set_python_dap = function()
-  require('dap-python').setup() -- earlier so setup the various defaults ready to be replaced
-  dap.configurations.python = {
-    {
-      type = 'python';
-      request = 'launch';
-      name = "Launch file";
-      program = "${file}";
-      pythonPath = pythonPath()
-    },
-    {
-      type = 'python',
-      request = 'launch',
-      name = 'DAP Django',
-      program = vim.loop.cwd() .. '/manage.py',
-      args = {'runserver', '--noreload'},
-      justMyCode = true,
-      django = true,
-      console = "integratedTerminal",
-    },
-    {
-      type = 'python';
-      request = 'attach';
-      name = 'Attach remote';
-      connect = function()
-        return {
-          host = '127.0.0.1',
-          port = 5678
-        }
-      end;
-    },
-    {
-      type = 'python';
-      request = 'launch';
-      name = 'Launch file with arguments';
-      program = '${file}';
-      args = function()
-        local args_string = vim.fn.input('Arguments: ')
-        return vim.split(args_string, " +")
-      end;
-      console = "integratedTerminal",
-      pythonPath = pythonPath()
-    }
-  }
-
-  dap.adapters.python = {
-    type = 'executable',
-    command = pythonPath(),
-    args = {'-m', 'debugpy.adapter'}
-  }
-end
-
-set_python_dap()
-vim.api.nvim_create_autocmd({"DirChanged"}, {
-  callback = function() set_python_dap() end,
-})
-
-require("dapui").setup()
diff --git a/neovim/.config/nvim/lua/config/nvim_lspconfig.lua b/neovim/.config/nvim/lua/config/nvim_lspconfig.lua
deleted file mode 100644
index abbf878..0000000
--- a/neovim/.config/nvim/lua/config/nvim_lspconfig.lua
+++ /dev/null
@@ -1,71 +0,0 @@
-local nvim_lsp = require('lspconfig')
-local capabilities = require('cmp_nvim_lsp').default_capabilities()
--- Use a loop to conveniently call 'setup' on multiple servers and
--- map buffer local keybindings when the language server attaches
-local servers = { "bashls", "clangd", "cssls", "gopls", "html", "jsonls", "pylsp", "rust_analyzer", "yamlls" }
-for _, lsp in ipairs(servers) do
-  nvim_lsp[lsp].setup {
-    capabilities = capabilities,
-    flags = {
-      debounce_text_changes = 150,
-    }
-  }
-end
-
-require'lspconfig'.lua_ls.setup {
-  on_init = function(client)
-    local path = client.workspace_folders[1].name
-    if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then
-      return
-    end
-
-    client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
-      runtime = {
-        -- Tell the language server which version of Lua you're using
-        -- (most likely LuaJIT in the case of Neovim)
-        version = 'LuaJIT'
-      },
-      -- Make the server aware of Neovim runtime files
-      workspace = {
-        checkThirdParty = false,
-        library = {
-          vim.env.VIMRUNTIME
-          -- Depending on the usage, you might want to add additional paths here.
-          -- "${3rd}/luv/library"
-          -- "${3rd}/busted/library",
-        }
-        -- or pull in all of 'runtimepath'. NOTE: this is a lot slower
-        -- library = vim.api.nvim_get_runtime_file("", true)
-      }
-    })
-  end,
-  settings = {
-    Lua = {}
-  },
-  capabilities = capabilities,
-}
-
-require'lspconfig'.tsserver.setup {
-  filetypes = { 'typescript', 'typescriptreact', 'typescript.tsx' },
-  capabilities = capabilities,
-  flags = {
-    debounce_text_changes = 150,
-  },
-}
-
--- Use LspAttach autocommand to only map the following keys
--- after the language server attaches to the current buffer
-vim.api.nvim_create_autocmd('LspAttach', {
-  group = vim.api.nvim_create_augroup('UserLspConfig', {}),
-  callback = function(ev)
-    -- Enable completion triggered by <c-x><c-o>
-    vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
-
-    local opts = { buffer = ev.buf }
-    vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', { noremap = true })
-    vim.keymap.set('x', '<leader>f', '<cmd>lua vim.lsp.buf.range_formatting()<CR>', {})
-    vim.keymap.set('n', '<leader>f', function()
-      vim.lsp.buf.format { async = true }
-    end, opts)
-  end,
-})
diff --git a/neovim/.config/nvim/lua/config/nvim_treesitter.lua b/neovim/.config/nvim/lua/config/nvim_treesitter.lua
deleted file mode 100644
index 0a3a71f..0000000
--- a/neovim/.config/nvim/lua/config/nvim_treesitter.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-require'nvim-treesitter.configs'.setup {
-  ensure_installed = { "bash", "c", "cmake", "cpp", "css", "go", "html", "json", "lua", "make", "markdown", "markdown_inline", "python", "rust", "toml", "typescript", "vim" }, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
-  ignore_install = {}, -- List of parsers to ignore installing
-  highlight = {
-    enable = true,              -- false will disable the whole extension
-    disable = {},  -- list of language that will be disabled
-    -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-    -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-    -- Using this option may slow down your editor, and you may see some duplicate highlights.
-    -- Instead of true it can also be a list of languages
-    additional_vim_regex_highlighting = true,
-  },
-  incremental_selection = {
-    enable = true,
-    keymaps = {
-      init_selection = "gnn",
-      node_incremental = "grn",
-      scope_incremental = "grc",
-      node_decremental = "grm",
-    },
-  },
-  indent = {
-    enable = true
-  }
-}
diff --git a/neovim/.config/nvim/lua/config/tabby.lua b/neovim/.config/nvim/lua/config/tabby.lua
deleted file mode 100644
index 1b64ac6..0000000
--- a/neovim/.config/nvim/lua/config/tabby.lua
+++ /dev/null
@@ -1,30 +0,0 @@
-local theme = {
-  fill = 'TabLineFill',
-  -- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' }
-  head = 'TabLine',
-  current_tab = 'TabLineSel',
-  tab = 'TabLine',
-  win = 'TabLine',
-  tail = 'TabLine',
-}
-require('tabby.tabline').set(function(line)
-  return {
-    {
-      line.sep('', theme.head, theme.fill),
-    },
-    line.tabs().foreach(function(tab)
-      local hl = tab.is_current() and theme.current_tab or theme.tab
-      return {
-        line.sep('', hl, theme.fill),
-        tab.is_current() and '' or '',
-        tab.number(),
-        tab.name(),
-        tab.close_btn(''),
-        line.sep('', hl, theme.fill),
-        hl = hl,
-        margin = ' ',
-      }
-    end),
-    hl = theme.fill,
-  }
-end)
diff --git a/neovim/.config/nvim/lua/config/vimux.lua b/neovim/.config/nvim/lua/config/vimux.lua
deleted file mode 100644
index 16348dc..0000000
--- a/neovim/.config/nvim/lua/config/vimux.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-vim.g.VimuxUseNearest = 0
-vim.gVimuxResetSequence = ""
-
--- Prompt for a command to run
-vim.keymap.set('', '<Leader>vp', '<cmd>VimuxPromptCommand<CR>', {})
--- Run last command executed by VimuxRunCommand
-vim.keymap.set('', '<Leader>vl', '<cmd>VimuxRunLastCommand<CR>', {})
--- Inspect runner pane
-vim.keymap.set('', '<Leader>vi', '<cmd>VimuxInspectRunner<CR>', {})
--- Close vim tmux runner opened by VimuxRunCommand
-vim.keymap.set('', '<Leader>vq', '<cmd>VimuxCloseRunner<CR>', {})
--- Interrupt any command running in the runner pane
-vim.keymap.set('', '<Leader>vx', '<cmd>VimuxPromptInterruptRunner<CR>', {})
--- Zoom the runner pane (use <bind-key> z to restore runner pane)
-vim.keymap.set('', '<Leader>vz', '<cmd>call VimuxZoomRunner()<CR>', {})
diff --git a/neovim/.config/nvim/lua/plugins.lua b/neovim/.config/nvim/lua/plugins.lua
deleted file mode 100644
index 349059a..0000000
--- a/neovim/.config/nvim/lua/plugins.lua
+++ /dev/null
@@ -1,204 +0,0 @@
-return {
-  {
-    'luisjure/csound-vim',
-    ft = 'csound',
-  },
-  {
-    'nvimdev/galaxyline.nvim',
-    branch = 'main',
-    dependencies = {
-      'nvim-tree/nvim-web-devicons',
-    },
-    config = [[require('config.galaxyline')]],
-    after = { 'vim-colors-xcode' },
-  },
-  {
-    'lewis6991/gitsigns.nvim',
-    config = [[require('config.gitsigns')]],
-  },
-  {
-    'junegunn/goyo.vim',
-    cond = function() return vim.fn.exists('g:gui_vimr') == 1 end,
-    dependencies = {
-      {
-        'junegunn/limelight.vim',
-      },
-    },
-    config = [[require('config.goyo')]],
-  },
-  {
-    'lukas-reineke/indent-blankline.nvim',
-    config = [[require('config.indent_blankline')]],
-  },
-  {
-    'nvimdev/lspsaga.nvim',
-    after = { 'nvim-lspconfig' },
-    dependencies = {
-      'nvim-tree/nvim-web-devicons',
-    },
-    config = [[require('config.lspsaga')]],
-  },
-  {
-    'preservim/nerdcommenter'
-  },
-	{
-		"nvim-neo-tree/neo-tree.nvim",
-    branch = "v3.x",
-    dependencies = { 
-      "nvim-lua/plenary.nvim",
-      "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
-      "MunifTanjim/nui.nvim",
-      -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
-    },
-    init = function ()
-      vim.keymap.set('', '<F8>', '<cmd>Neotree toggle<CR>', { noremap = true })
-    end
-  },
-  {
-    'NeogitOrg/neogit',
-    cmd = 'Neogit',
-    dependencies = {
-      'nvim-lua/plenary.nvim',
-      'sindrets/diffview.nvim',
-    },
-    config = [[require('config.neogit')]],
-    init = function()
-      vim.keymap.set('', '<leader>g', '<cmd>Neogit<CR>', {})
-    end,
-  },
-  {
-    'hrsh7th/nvim-cmp',
-    dependencies = {
-      {
-        'andersevenrud/cmp-tmux',
-        cond = function() return vim.fn.exists('g:gui_vimr') == 0 end
-      },
-      {
-        'hrsh7th/cmp-nvim-lsp'
-      },
-      {
-        'hrsh7th/cmp-nvim-lsp-signature-help'
-      },
-      {
-        'hrsh7th/cmp-nvim-lsp-document-symbol'
-      },
-      {
-        'hrsh7th/cmp-buffer'
-      },
-      {
-        'hrsh7th/cmp-path'
-      },
-      {
-        'hrsh7th/cmp-cmdline'
-      },
-      {
-        'hrsh7th/cmp-vsnip',
-        dependencies = {
-          'hrsh7th/vim-vsnip',
-        },
-      }
-    },
-    config = [[require('config.nvim_cmp')]],
-  },
-  {
-    'arzg/vim-colors-xcode',
-    lazy = false,
-    priority = 1000,
-    config = function ()
-      vim.cmd[[colorscheme xcode]]
-    end,
-  },
-  {
-    'mfussenegger/nvim-dap',
-    dependencies = {
-      'mfussenegger/nvim-dap-python',
-      'rcarriga/nvim-dap-ui',
-      'nvim-neotest/nvim-nio',
-    },
-    config = [[require('config.nvim_dap')]],
-  },
-  {
-    'neovim/nvim-lspconfig',
-    config = [[require('config.nvim_lspconfig')]],
-  },
-  {
-    'prettier/vim-prettier',
-  },
-  {
-    'nvim-treesitter/nvim-treesitter',
-    run = ':TSUpdate',
-    config = [[require('config.nvim_treesitter')]],
-  },
-  {
-    'nvim-telescope/telescope.nvim',
-    dependencies = {
-      'nvim-lua/plenary.nvim',
-    },
-    config = function()
-      vim.keymap.set('n', '<F3>', '<cmd>Telescope buffers<CR>', { noremap = true })
-      vim.keymap.set('n', '<F4>', '<cmd>Telescope find_files<CR>', { noremap = true })
-      vim.keymap.set('n', '<F6>', '<cmd>Telescope live_grep<CR>', { noremap = true })
-    end,
-  },
-  {
-    'supercollider/scvim',
-    config = function()
-      vim.g.scFlash = 1
-    end,
-    ft = 'supercollider',
-  },
-  {
-    'nanozuki/tabby.nvim',
-    dependencies = {
-      'nvim-tree/nvim-web-devicons',
-    },
-    config = [[require('config.tabby')]],
-    cond = function() return vim.fn.has('gui_running') == 0 end,
-  },
-  {
-    'godlygeek/tabular'
-  },
-  {
-    'mbbill/undotree',
-    cmd = 'UndotreeToggle',
-    init = function()
-      vim.keymap.set('n', '<F5>', '<cmd>UndotreeToggle<CR>', { noremap = true })
-    end,
-  },
-  {
-    'linux-cultist/venv-selector.nvim',
-    branch = 'regexp',
-    config = function ()
-      require'venv-selector'.setup()
-      vim.keymap.set('n', ',v', '<cmd>VenvSelect<CR>', { noremap = true })
-    end
-  },
-  {
-    'ryanoasis/vim-devicons'
-  },
-  {
-    'Glench/Vim-Jinja2-Syntax',
-    ft = 'jinja',
-  },
-  {
-    'plasticboy/vim-markdown',
-    config = function()
-      vim.g.vim_markdown_folding_disabled = 1
-    end,
-    ft = 'markdown',
-  },
-  'junegunn/vim-plug'
-  {
-    'tmux-plugins/vim-tmux',
-    cond = function() return vim.fn.exists('g:gui_vimr') == 0 end,
-  },
-  {
-    'tmux-plugins/vim-tmux-focus-events',
-    cond = function() return vim.fn.exists('g:gui_vimr') == 0 end,
-  },
-  {
-    'benmills/vimux',
-    cond = function() return vim.fn.exists('g:gui_vimr') == 0 end,
-    config = [[require('config.vimux')]],
-  }
-}
diff --git a/neovim/.config/nvim/lua/plugins/csound.lua b/neovim/.config/nvim/lua/plugins/csound.lua
new file mode 100644
index 0000000..dce88e2
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/csound.lua
@@ -0,0 +1,6 @@
+return {
+  {
+    'luisjure/csound-vim',
+    ft = 'csound',
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/django_plus.lua b/neovim/.config/nvim/lua/plugins/django_plus.lua
new file mode 100644
index 0000000..2ca10a4
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/django_plus.lua
@@ -0,0 +1,5 @@
+return {
+    {
+        'tweekmonster/django-plus.vim',
+    }
+}
diff --git a/neovim/.config/nvim/lua/plugins/galaxyline.lua b/neovim/.config/nvim/lua/plugins/galaxyline.lua
new file mode 100644
index 0000000..9f58157
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/galaxyline.lua
@@ -0,0 +1,230 @@
+return {
+  {
+    'nvimdev/galaxyline.nvim',
+    branch = 'main',
+    dependencies = {
+      {
+        'nvim-tree/nvim-web-devicons',
+      },
+      {
+        'arzg/vim-colors-xcode',
+        lazy = false,
+        priority = 1000,
+        config = function()
+          vim.cmd[[colorscheme xcode]]
+        end
+      },
+    },
+    config = function()
+      local gl = require('galaxyline')
+      local colors = {
+        yellow = vim.g.terminal_color_11,
+        cyan = vim.g.terminal_color_14,
+        darkblue = vim.g.terminal_color_4,
+        green = vim.g.terminal_color_10,
+        orange = vim.g.terminal_color_3,
+        violet = vim.g.terminal_color_5,
+        magenta = vim.g.terminal_color_13,
+        blue = vim.g.terminal_color_12,
+        red = vim.g.terminal_color_9,
+      }
+      local condition = require('galaxyline.condition')
+      local gls = gl.section
+      local lsp = require('galaxyline.provider_lsp')
+      gl.short_line_list = {'nerdtree', 'NeogitStatus', 'vim-plug', 'lspsagaoutline'}
+
+      gls.left[1] = {
+        RainbowBlue = {
+          provider = function() return '▊ ' end,
+          highlight = {colors.blue, 'StatusLine'}
+        },
+      }
+      gls.left[2] = {
+        ViMode = {
+          provider = function()
+            -- auto change color according the vim mode
+            local mode_color = {n = colors.red, i = colors.green,v=colors.blue,
+                                ['^V'] = colors.blue,V=colors.blue,
+                                c = colors.magenta,no = colors.red,s = colors.orange,
+                                S=colors.orange,['^S'] = colors.orange,
+                                ic = colors.yellow,R = colors.violet,Rv = colors.violet,
+                                cv = colors.red,ce=colors.red, r = colors.cyan,
+                                rm = colors.cyan, ['r?'] = colors.cyan,
+                                ['!']  = colors.red,t = colors.red}
+            vim.api.nvim_command('hi GalaxyViMode guifg='..mode_color[vim.fn.mode()])
+            return '  '
+          end,
+          highlight = {colors.red, 'StatusLine', 'bold'},
+        }, 
+      }
+
+      gls.left[3] = {
+        FileSize = {
+          provider = 'FileSize',
+          condition = condition.buffer_not_empty,
+          highlight = {'StatusLine', 'StatusLine'},
+        }
+      }
+      gls.left[4] ={
+        FileIcon = {
+          provider = 'FileIcon',
+          condition = function()
+              if vim.g.GtkGuiLoaded ~= nil and condition.buffer_not_empty() then
+                  return true
+              end
+              return false
+          end,
+          highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color, 'StatusLine'},
+        },
+      }
+
+      gls.left[5] = {
+        FileName = {
+          provider = 'FileName',
+          condition = condition.buffer_not_empty,
+          highlight = {colors.magenta, 'StatusLine', 'bold'}
+        }
+      }
+
+      gls.left[6] = {
+        LineInfo = {
+          provider = 'LineColumn',
+          separator = ' ',
+          separator_highlight = {'NONE', 'StatusLine'},
+          highlight = {'NONE', 'StatusLine'},
+        },
+      }
+
+      gls.left[7] = {
+        PerCent = {
+          provider = 'LinePercent',
+          separator = ' ',
+          separator_highlight = {'NONE', 'StatusLine'},
+          highlight = {'NONE', 'StatusLine', 'bold'},
+        }
+      }
+
+      gls.left[8] = {
+        DiagnosticError = {
+          provider = 'DiagnosticError',
+          icon = '  ',
+          highlight = {colors.red, 'StatusLine'}
+        }
+      }
+      gls.left[9] = {
+        DiagnosticWarn = {
+          provider = 'DiagnosticWarn',
+          icon = '  ',
+          highlight = {colors.yellow, 'StatusLine'},
+        }
+      }
+
+      gls.left[10] = {
+        DiagnosticHint = {
+          provider = 'DiagnosticHint',
+          icon = '  ',
+          highlight = {colors.cyan, 'StatusLine'},
+        }
+      }
+
+      gls.left[11] = {
+        DiagnosticInfo = {
+          provider = 'DiagnosticInfo',
+          icon = '  ',
+          highlight = {colors.blue, 'StatusLine'},
+        }
+      }
+
+      gls.mid[1] = {
+        ShowLspClient = {
+          provider = 'GetLspClient',
+          condition = function ()
+            local tbl = {['dashboard'] = true,['']=true}
+            if tbl[vim.bo.filetype] then
+              return false
+            elseif lsp.get_lsp_client() == 'No Active Lsp' then
+              return false
+            end
+            return true
+          end,
+          icon = '⚙ LSP:',
+          highlight = {colors.cyan, 'StatusLine','bold'}
+        }
+      }
+
+      gls.right[1] = {
+        GitIcon = {
+          provider = function() return '  ' end,
+          condition = condition.check_git_workspace,
+          separator = ' ',
+          separator_highlight = {'NONE', 'StatusLine'},
+          highlight = {colors.violet, 'StatusLine', 'bold'},
+        }
+      }
+
+      gls.right[2] = {
+        GitBranch = {
+          provider = 'GitBranch',
+          condition = condition.check_git_workspace,
+          highlight = {colors.violet, 'StatusLine', 'bold'},
+        }
+      }
+
+      gls.right[3] = {
+        DiffAdd = {
+          provider = 'DiffAdd',
+          condition = condition.hide_in_width,
+          icon = ' +',
+          highlight = {colors.green, 'StatusLine'},
+        }
+      }
+      gls.right[4] = {
+        DiffModified = {
+          provider = 'DiffModified',
+          condition = condition.hide_in_width,
+          icon = ' ±',
+          highlight = {colors.orange, 'StatusLine'},
+        }
+      }
+      gls.right[5] = {
+        DiffRemove = {
+          provider = 'DiffRemove',
+          condition = condition.hide_in_width,
+          icon = ' -',
+          highlight = {colors.red, 'StatusLine'},
+        }
+      }
+
+      gls.right[6] = {
+        RainbowBlue = {
+          provider = function() return ' ▊' end,
+          highlight = {colors.blue, 'StatusLine'}
+        },
+      }
+
+      gls.short_line_left[1] = {
+        BufferType = {
+          provider = 'FileTypeName',
+          separator = ' ',
+          separator_highlight = {'NONE', 'StatusLine'},
+          highlight = {colors.blue, 'StatusLine', 'bold'}
+        }
+      }
+
+      gls.short_line_left[2] = {
+        SFileName = {
+          provider =  'SFileName',
+          condition = condition.buffer_not_empty,
+          highlight = {'StatusLine', 'StatusLine', 'bold'}
+        }
+      }
+
+      gls.short_line_right[1] = {
+        BufferIcon = {
+          provider= 'BufferIcon',
+          highlight = {'StatusLine', 'StatusLine'},
+        }
+      }
+    end,
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/gitsigns.lua b/neovim/.config/nvim/lua/plugins/gitsigns.lua
new file mode 100644
index 0000000..91ec74d
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/gitsigns.lua
@@ -0,0 +1,45 @@
+return {
+  {
+    'lewis6991/gitsigns.nvim',
+    opts = {
+      on_attach = function(bufnr)
+        local gs = package.loaded.gitsigns
+
+        local function map(mode, l, r, opts)
+          opts = opts or {}
+          opts.buffer = bufnr
+          vim.keymap.set(mode, l, r, opts)
+        end
+
+        -- Navigation
+        map('n', ']c', function()
+          if vim.wo.diff then return ']c' end
+          vim.schedule(function() gs.next_hunk() end)
+          return '<Ignore>'
+        end, {expr=true})
+
+        map('n', '[c', function()
+          if vim.wo.diff then return '[c' end
+          vim.schedule(function() gs.prev_hunk() end)
+          return '<Ignore>'
+        end, {expr=true})
+
+        -- Actions
+        map({'n', 'v'}, '<leader>hs', ':Gitsigns stage_hunk<CR>')
+        map({'n', 'v'}, '<leader>hr', ':Gitsigns reset_hunk<CR>')
+        map('n', '<leader>hS', gs.stage_buffer)
+        map('n', '<leader>hu', gs.undo_stage_hunk)
+        map('n', '<leader>hR', gs.reset_buffer)
+        map('n', '<leader>hp', gs.preview_hunk)
+        map('n', '<leader>hb', function() gs.blame_line{full=true} end)
+        map('n', '<leader>tb', gs.toggle_current_line_blame)
+        map('n', '<leader>hd', gs.diffthis)
+        map('n', '<leader>hD', function() gs.diffthis('~') end)
+        map('n', '<leader>td', gs.toggle_deleted)
+     
+        -- Text object
+        map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
+      end
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/goyo.lua b/neovim/.config/nvim/lua/plugins/goyo.lua
new file mode 100644
index 0000000..7de7150
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/goyo.lua
@@ -0,0 +1,43 @@
+return {
+  {
+    'junegunn/goyo.vim',
+    cond = function() return vim.fn.exists('g:gui_vimr') == 1 end,
+    dependencies = {
+      {
+        'junegunn/limelight.vim',
+      },
+    },
+    keys = {
+      { '<leader>z', '<cmd>Goyo<CR>', desc = 'Goyo' },
+    },
+    config = function()
+      local goyo_enter = function()
+        vim.opt.showmode = false
+        vim.opt.showcmd = false
+        vim.opt.scrolloff = 999
+        vim.cmd('Limelight')
+      end
+
+      local goyo_leave = function()
+        vim.opt.showmode = true
+        vim.opt.showcmd = true
+        vim.opt.scrolloff = 5
+        vim.cmd('Limelight!')
+      end
+
+      local goyo_augroup = vim.api.nvim_create_augroup('Goyo', { clear = true })
+      vim.api.nvim_create_autocmd('User',
+        {
+          pattern = 'GoyoEnter',
+          group = goyo_augroup,
+          callback = goyo_enter,
+        })
+      vim.api.nvim_create_autocmd('User',
+        {
+          pattern = 'GoyoLeave',
+          group = goyo_augroup,
+          callback = goyo_leave,
+        })
+    end,
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/indent_blankline.lua b/neovim/.config/nvim/lua/plugins/indent_blankline.lua
new file mode 100644
index 0000000..0991c0c
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/indent_blankline.lua
@@ -0,0 +1,9 @@
+return {
+  {
+    'lukas-reineke/indent-blankline.nvim',
+    main = 'ibl',
+    opts = {
+      indent = { char = '▏' },
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/lspsaga.lua b/neovim/.config/nvim/lua/plugins/lspsaga.lua
new file mode 100644
index 0000000..1fe1194
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/lspsaga.lua
@@ -0,0 +1,24 @@
+return {
+  {
+    'nvimdev/lspsaga.nvim',
+    lazy = false,
+    priority = 500,
+    dependencies = {
+      'nvim-tree/nvim-web-devicons',
+    },
+    opts = {
+      symbol_in_winbar = {
+        respect_root = true,
+      },
+    },
+    keys = {
+      { "gh", "<cmd>Lspsaga finder<CR>", desc = "Lspsaga finder" },
+      { "<leader>cx", "<cmd>Lspsaga code_action<CR>", desc = "Lspsaga codeaction" },
+      { "<leader>cx", "<cmd><C-U>Lspsaga range_code_action<CR>", mode = "v", desc = "Lspsaga codeaction" },
+      { "K", "<cmd>Lspsaga hover_doc<CR>", desc = "Lspsaga hover doc" },
+      { "<leader>rn", "<cmd>Lspsaga rename<CR>", desc = "Lspsaga rename" },
+      { "[g", "<cmd>Lspsaga diagnostic_jump_next<CR>", desc = "Lspsaga jump to next diagnostic" },
+      { "]g", "<cmd>Lspsaga diagnostic_jump_prev<CR>", desc = "Lspsaga jump to previous diagnostic" },
+    }
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/neo_tree.lua b/neovim/.config/nvim/lua/plugins/neo_tree.lua
new file mode 100644
index 0000000..f2ea5d2
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/neo_tree.lua
@@ -0,0 +1,15 @@
+return {
+  {
+		"nvim-neo-tree/neo-tree.nvim",
+    branch = "v3.x",
+    dependencies = { 
+      "nvim-lua/plenary.nvim",
+      "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
+      "MunifTanjim/nui.nvim",
+      -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
+    },
+    keys = {
+      { '<F8>', '<cmd>Neotree toggle<CR>', desc = 'Neotree toggle' },
+    }
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/neogit.lua b/neovim/.config/nvim/lua/plugins/neogit.lua
new file mode 100644
index 0000000..a0a3f90
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/neogit.lua
@@ -0,0 +1,36 @@
+return {
+  {
+    'NeogitOrg/neogit',
+    cmd = 'Neogit',
+    dependencies = {
+      'nvim-lua/plenary.nvim',
+      'sindrets/diffview.nvim',
+    },
+    opts = {
+      disable_commit_confirmation = true,
+      auto_refresh = true,
+      kind = 'tab',
+      commit_editor = {
+        kind = 'auto',
+      },
+      integrations = {
+        -- Neogit only provides inline diffs. If you want a more traditional way to look at diffs, you can use `sindrets/diffview.nvim`.
+        -- The diffview integration enables the diff popup, which is a wrapper around `sindrets/diffview.nvim`.
+        --
+        -- Requires you to have `sindrets/diffview.nvim` installed.
+        -- use { 
+        --   'TimUntersberger/neogit', 
+        --   requires = { 
+        --     'nvim-lua/plenary.nvim',
+        --     'sindrets/diffview.nvim' 
+        --   }
+        -- }
+        --
+        diffview = true
+      }
+    },
+    keys = {
+      { '<leader>g', '<cmd>Neogit<CR>', desc = 'Neogit toggle' },
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/nerdcommenter.lua b/neovim/.config/nvim/lua/plugins/nerdcommenter.lua
new file mode 100644
index 0000000..280dd8e
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/nerdcommenter.lua
@@ -0,0 +1,5 @@
+return {
+  {
+    'preservim/nerdcommenter'
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/nvim_cmp.lua b/neovim/.config/nvim/lua/plugins/nvim_cmp.lua
new file mode 100644
index 0000000..0958eac
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/nvim_cmp.lua
@@ -0,0 +1,86 @@
+return {
+  {
+    'hrsh7th/nvim-cmp',
+    priority = 900,
+    lazy = false,
+    dependencies = {
+      {
+        'andersevenrud/cmp-tmux',
+        cond = function() return vim.fn.exists('g:gui_vimr') == 0 end
+      },
+      {
+        'hrsh7th/cmp-nvim-lsp'
+      },
+      {
+        'hrsh7th/cmp-nvim-lsp-signature-help'
+      },
+      {
+        'hrsh7th/cmp-nvim-lsp-document-symbol'
+      },
+      {
+        'hrsh7th/cmp-buffer'
+      },
+      {
+        'hrsh7th/cmp-path'
+      },
+      {
+        'hrsh7th/cmp-cmdline'
+      },
+      {
+        'hrsh7th/cmp-vsnip',
+        dependencies = {
+          'hrsh7th/vim-vsnip',
+        },
+      }
+    },
+    config = function ()
+      local cmp = require('cmp')
+
+      cmp.setup({
+        snippet = {
+          -- REQUIRED - you must specify a snippet engine
+          expand = function(args)
+            vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
+          end,
+        },
+        view = {
+          entries = {name = 'custom', selection_order = 'near_cursor' } 
+        },
+        mapping = cmp.mapping.preset.insert({
+          ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+          ['<C-f>'] = cmp.mapping.scroll_docs(4),
+          ['<C-Space>'] = cmp.mapping.complete(),
+          ['<C-e>'] = cmp.mapping.abort(),
+          ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
+        }),
+        sources = cmp.config.sources({
+          { name = 'nvim_lsp' },
+          { name = 'nvim_lsp_signature_help' },
+          { name = 'vsnip' }, -- For vsnip users.
+        }, {
+          { name = 'buffer' },
+        }, {
+          { name = 'tmux' },
+        }),
+      })
+
+      -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
+      cmp.setup.cmdline('/', {
+        sources = cmp.config.sources({
+          { name = 'nvim_lsp_document_symbol' }
+        }, {
+          { name = 'buffer' }
+        })
+      })
+
+      -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
+      cmp.setup.cmdline(':', {
+        sources = cmp.config.sources({
+          { name = 'path' }
+        }, {
+          { name = 'cmdline' }
+        })
+      })
+    end,
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/nvim_dap.lua b/neovim/.config/nvim/lua/plugins/nvim_dap.lua
new file mode 100644
index 0000000..1a3a12a
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/nvim_dap.lua
@@ -0,0 +1,94 @@
+return {
+  {
+    'mfussenegger/nvim-dap',
+    dependencies = {
+      'mfussenegger/nvim-dap-python',
+      'rcarriga/nvim-dap-ui',
+      'nvim-neotest/nvim-nio',
+    },
+    config = function()
+      local dap = require'dap'
+      vim.fn.sign_define('DapBreakpoint', {
+          text = '⬤',
+          texthl = 'ErrorMsg',
+          linehl = '',
+          numhl = 'ErrorMsg'
+      })
+
+      vim.fn.sign_define('DapBreakpointCondition', {
+          text = '⬤',
+          texthl = 'ErrorMsg',
+          linehl = '',
+          numhl = 'SpellBad'
+      })
+
+      local pythonPath = function()
+        local cwd = vim.loop.cwd()
+        if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then
+          return cwd .. '/venv/bin/python'
+        else
+          return '/Users/michael/.pyenv/shims/python3'
+        end
+      end
+
+      local set_python_dap = function()
+        require('dap-python').setup() -- earlier so setup the various defaults ready to be replaced
+        dap.configurations.python = {
+          {
+            type = 'python';
+            request = 'launch';
+            name = "Launch file";
+            program = "${file}";
+            pythonPath = pythonPath()
+          },
+          {
+            type = 'python',
+            request = 'launch',
+            name = 'DAP Django',
+            program = vim.loop.cwd() .. '/manage.py',
+            args = {'runserver', '--noreload'},
+            justMyCode = true,
+            django = true,
+            console = "integratedTerminal",
+          },
+          {
+            type = 'python';
+            request = 'attach';
+            name = 'Attach remote';
+            connect = function()
+              return {
+                host = '127.0.0.1',
+                port = 5678
+              }
+            end;
+          },
+          {
+            type = 'python';
+            request = 'launch';
+            name = 'Launch file with arguments';
+            program = '${file}';
+            args = function()
+              local args_string = vim.fn.input('Arguments: ')
+              return vim.split(args_string, " +")
+            end;
+            console = "integratedTerminal",
+            pythonPath = pythonPath()
+          }
+        }
+
+        dap.adapters.python = {
+          type = 'executable',
+          command = pythonPath(),
+          args = {'-m', 'debugpy.adapter'}
+        }
+      end
+
+      set_python_dap()
+      vim.api.nvim_create_autocmd({"DirChanged"}, {
+        callback = function() set_python_dap() end,
+      })
+
+      require("dapui").setup()
+    end,
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua b/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua
new file mode 100644
index 0000000..f03db19
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua
@@ -0,0 +1,80 @@
+return {
+  {
+    'neovim/nvim-lspconfig',
+    lazy = false,
+    priority = 800,
+    config = function()
+      local nvim_lsp = require('lspconfig')
+      local capabilities = require('cmp_nvim_lsp').default_capabilities()
+      -- Use a loop to conveniently call 'setup' on multiple servers and
+      -- map buffer local keybindings when the language server attaches
+      local servers = { "bashls", "clangd", "cssls", "gopls", "html", "jsonls", "pylsp", "rust_analyzer", "yamlls" }
+      for _, lsp in ipairs(servers) do
+        nvim_lsp[lsp].setup {
+          capabilities = capabilities,
+          flags = {
+            debounce_text_changes = 150,
+          }
+        }
+      end
+
+      require'lspconfig'.lua_ls.setup {
+        on_init = function(client)
+          local path = client.workspace_folders[1].name
+          if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then
+            return
+          end
+
+          client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
+            runtime = {
+              -- Tell the language server which version of Lua you're using
+              -- (most likely LuaJIT in the case of Neovim)
+              version = 'LuaJIT'
+            },
+            -- Make the server aware of Neovim runtime files
+            workspace = {
+              checkThirdParty = false,
+              library = {
+                vim.env.VIMRUNTIME
+                -- Depending on the usage, you might want to add additional paths here.
+                -- "${3rd}/luv/library"
+                -- "${3rd}/busted/library",
+              }
+              -- or pull in all of 'runtimepath'. NOTE: this is a lot slower
+              -- library = vim.api.nvim_get_runtime_file("", true)
+            }
+          })
+        end,
+        settings = {
+          Lua = {}
+        },
+        capabilities = capabilities,
+      }
+
+      require'lspconfig'.tsserver.setup {
+        filetypes = { 'typescript', 'typescriptreact', 'typescript.tsx' },
+        capabilities = capabilities,
+        flags = {
+          debounce_text_changes = 150,
+        },
+      }
+
+      -- Use LspAttach autocommand to only map the following keys
+      -- after the language server attaches to the current buffer
+      vim.api.nvim_create_autocmd('LspAttach', {
+        group = vim.api.nvim_create_augroup('UserLspConfig', {}),
+        callback = function(ev)
+          -- Enable completion triggered by <c-x><c-o>
+          vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
+
+          local opts = { buffer = ev.buf }
+          vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', { noremap = true })
+          vim.keymap.set('x', '<leader>f', '<cmd>lua vim.lsp.buf.range_formatting()<CR>', {})
+          vim.keymap.set('n', '<leader>f', function()
+            vim.lsp.buf.format { async = true }
+          end, opts)
+        end,
+      })
+    end,
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/nvim_treesitter.lua b/neovim/.config/nvim/lua/plugins/nvim_treesitter.lua
new file mode 100644
index 0000000..5ccb95a
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/nvim_treesitter.lua
@@ -0,0 +1,31 @@
+return {
+  {
+    'nvim-treesitter/nvim-treesitter',
+    build = ':TSUpdate',
+    opts = {
+      ensure_installed = { "bash", "c", "cmake", "cpp", "css", "go", "html", "htmldjango", "json", "lua", "make", "markdown", "markdown_inline", "python", "rust", "toml", "typescript", "vim" }, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
+      ignore_install = {}, -- List of parsers to ignore installing
+      highlight = {
+        enable = true,              -- false will disable the whole extension
+        disable = {},  -- list of language that will be disabled
+        -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
+        -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
+        -- Using this option may slow down your editor, and you may see some duplicate highlights.
+        -- Instead of true it can also be a list of languages
+        additional_vim_regex_highlighting = true,
+      },
+      incremental_selection = {
+        enable = true,
+        keymaps = {
+          init_selection = "gnn",
+          node_incremental = "grn",
+          scope_incremental = "grc",
+          node_decremental = "grm",
+        },
+      },
+      indent = {
+        enable = true
+      }
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/scvim.lua b/neovim/.config/nvim/lua/plugins/scvim.lua
new file mode 100644
index 0000000..0a2e680
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/scvim.lua
@@ -0,0 +1,9 @@
+return {
+  {
+    'supercollider/scvim',
+    config = function()
+      vim.g.scFlash = 1
+    end,
+    ft = 'supercollider',
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/tabby.lua b/neovim/.config/nvim/lua/plugins/tabby.lua
new file mode 100644
index 0000000..b989ae5
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/tabby.lua
@@ -0,0 +1,41 @@
+return {
+  {
+    'nanozuki/tabby.nvim',
+    dependencies = {
+      'nvim-tree/nvim-web-devicons',
+    },
+    config = function ()
+      local theme = {
+        fill = 'TabLineFill',
+        -- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' }
+        head = 'TabLine',
+        current_tab = 'TabLineSel',
+        tab = 'TabLine',
+        win = 'TabLine',
+        tail = 'TabLine',
+      }
+      require('tabby.tabline').set(function(line)
+        return {
+          {
+            line.sep('', theme.head, theme.fill),
+          },
+          line.tabs().foreach(function(tab)
+            local hl = tab.is_current() and theme.current_tab or theme.tab
+            return {
+              line.sep('', hl, theme.fill),
+              tab.is_current() and '' or '',
+              tab.number(),
+              tab.name(),
+              tab.close_btn(''),
+              line.sep('', hl, theme.fill),
+              hl = hl,
+              margin = ' ',
+            }
+          end),
+          hl = theme.fill,
+        }
+      end)
+    end,
+    cond = function() return vim.fn.has('gui_running') == 0 end,
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/tabular.lua b/neovim/.config/nvim/lua/plugins/tabular.lua
new file mode 100644
index 0000000..2415eb6
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/tabular.lua
@@ -0,0 +1,5 @@
+return {
+  {
+    'godlygeek/tabular'
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/telescope.lua b/neovim/.config/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..6a81359
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,13 @@
+return {
+  {
+    'nvim-telescope/telescope.nvim',
+    dependencies = {
+      'nvim-lua/plenary.nvim',
+    },
+    keys = {
+      { '<F3>', '<cmd>Telescope buffers<CR>', desc = 'Telescope buffers' },
+      { '<F4>', '<cmd>Telescope find_files<CR>', desc = 'Telescope find files' },
+      { '<F6>', '<cmd>Telescope live_grep<CR>', desc = 'Telescope live grep' },
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/tmux_plugins.lua b/neovim/.config/nvim/lua/plugins/tmux_plugins.lua
new file mode 100644
index 0000000..1ff0312
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/tmux_plugins.lua
@@ -0,0 +1,18 @@
+return {
+  {
+    'tmux-plugins/vim-tmux',
+    cond = function() return vim.fn.exists('g:gui_vimr') == 0 end,
+  },
+  {
+    'tmux-plugins/vim-tmux-focus-events',
+    cond = function() return vim.fn.exists('g:gui_vimr') == 0 end,
+  },
+  {
+    'benmills/vimux',
+    cond = function() return vim.fn.exists('g:gui_vimr') == 0 end,
+    config = function()
+      vim.g.VimuxUseNearest = 0
+      vim.gVimuxResetSequence = ""
+    end,
+  }
+}
diff --git a/neovim/.config/nvim/lua/plugins/undotree.lua b/neovim/.config/nvim/lua/plugins/undotree.lua
new file mode 100644
index 0000000..7492481
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/undotree.lua
@@ -0,0 +1,8 @@
+return {
+  {
+    'mbbill/undotree',
+    keys = {
+      { '<F5>', '<cmd>UndotreeToggle<CR>', desc = 'UndoTree toggle' },
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/venv_selector.lua b/neovim/.config/nvim/lua/plugins/venv_selector.lua
new file mode 100644
index 0000000..0e4fb30
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/venv_selector.lua
@@ -0,0 +1,10 @@
+return {
+  {
+    'linux-cultist/venv-selector.nvim',
+    branch = 'regexp',
+    opts = {},
+    keys = {
+      { ',v', '<cmd>VenvSelect<CR>', desc = 'VenvSelect' },
+    },
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/vim_devicons.lua b/neovim/.config/nvim/lua/plugins/vim_devicons.lua
new file mode 100644
index 0000000..f348be7
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/vim_devicons.lua
@@ -0,0 +1,5 @@
+return {
+  {
+    'ryanoasis/vim-devicons'
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/vim_jinja2_syntax.lua b/neovim/.config/nvim/lua/plugins/vim_jinja2_syntax.lua
new file mode 100644
index 0000000..eed3d6a
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/vim_jinja2_syntax.lua
@@ -0,0 +1,6 @@
+return {
+  {
+    'Glench/Vim-Jinja2-Syntax',
+    ft = 'jinja',
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/vim_markdown.lua b/neovim/.config/nvim/lua/plugins/vim_markdown.lua
new file mode 100644
index 0000000..67b1563
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/vim_markdown.lua
@@ -0,0 +1,9 @@
+return {
+  {
+    'plasticboy/vim-markdown',
+    config = function()
+      vim.g.vim_markdown_folding_disabled = 1
+    end,
+    ft = 'markdown',
+  },
+}
diff --git a/neovim/.config/nvim/lua/plugins/vim_prettier.lua b/neovim/.config/nvim/lua/plugins/vim_prettier.lua
new file mode 100644
index 0000000..5ec2aa2
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/vim_prettier.lua
@@ -0,0 +1,5 @@
+return {
+  {
+    'prettier/vim-prettier',
+  },
+}
diff --git a/neovim/.config/nvim/lua/settings.lua b/neovim/.config/nvim/lua/settings.lua
index 7afe46f..c3807e2 100644
--- a/neovim/.config/nvim/lua/settings.lua
+++ b/neovim/.config/nvim/lua/settings.lua
@@ -1,4 +1,3 @@
-require('config.colourscheme')
 -- General settings
 
 vim.g.loaded_python_provider = 1
@@ -26,6 +25,7 @@ vim.opt.linebreak = true
 vim.opt.showbreak = '↪ '
 vim.opt.breakindent = true
 vim.opt.termguicolors = true
+vim.opt.background = 'light'
 vim.cmd[[
 syntax on
   filetype on
@@ -141,10 +141,10 @@ vim.cmd[[
 
 -- Tab navigation in gui
 if vim.fn.has('gui_running') == 1 then
-  vim.keymap.set('n', '<A-{>', '<cmd>tabp<CR>', { noremap = true, silent = true })
-  vim.keymap.set('v', '<A-{>', '<cmd>tabp<CR>', { noremap = true, silent = true })
-  vim.keymap.set('i', '<A-{>', '<Esc><cmd>tabp<CR>', { noremap = true, silent = true })
-  vim.keymap.set('n', '<A-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
-  vim.keymap.set('v', '<A-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
-  vim.keymap.set('i', '<A-}>', '<Esc><cmd>tabn<CR>', { noremap = true, silent = true })
+  vim.keymap.set('n', '<S-D-{>', '<cmd>tabp<CR>', { noremap = true, silent = true })
+  vim.keymap.set('v', '<S-D-{>', '<cmd>tabp<CR>', { noremap = true, silent = true })
+  vim.keymap.set('i', '<S-D-{>', '<Esc><cmd>tabp<CR>', { noremap = true, silent = true })
+  vim.keymap.set('n', '<S-D-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
+  vim.keymap.set('v', '<S-D-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
+  vim.keymap.set('i', '<S-D-}>', '<Esc><cmd>tabn<CR>', { noremap = true, silent = true })
 end
diff --git a/neovim/.config/nvim/plugin/packer_compiled.lua b/neovim/.config/nvim/plugin/packer_compiled.lua
deleted file mode 100644
index 0f5ddce..0000000
--- a/neovim/.config/nvim/plugin/packer_compiled.lua
+++ /dev/null
@@ -1,513 +0,0 @@
--- Automatically generated packer.nvim plugin loader code
-
-if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
-  vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
-  return
-end
-
-vim.api.nvim_command('packadd packer.nvim')
-
-local no_errors, error_msg = pcall(function()
-
-_G._packer = _G._packer or {}
-_G._packer.inside_compile = true
-
-local time
-local profile_info
-local should_profile = false
-if should_profile then
-  local hrtime = vim.loop.hrtime
-  profile_info = {}
-  time = function(chunk, start)
-    if start then
-      profile_info[chunk] = hrtime()
-    else
-      profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
-    end
-  end
-else
-  time = function(chunk, start) end
-end
-
-local function save_profiles(threshold)
-  local sorted_times = {}
-  for chunk_name, time_taken in pairs(profile_info) do
-    sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
-  end
-  table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
-  local results = {}
-  for i, elem in ipairs(sorted_times) do
-    if not threshold or threshold and elem[2] > threshold then
-      results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
-    end
-  end
-  if threshold then
-    table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
-  end
-
-  _G._packer.profile_output = results
-end
-
-time([[Luarocks path setup]], true)
-local package_path_str = "/Users/michael/.cache/nvim/packer_hererocks/2.1.1713484068/share/lua/5.1/?.lua;/Users/michael/.cache/nvim/packer_hererocks/2.1.1713484068/share/lua/5.1/?/init.lua;/Users/michael/.cache/nvim/packer_hererocks/2.1.1713484068/lib/luarocks/rocks-5.1/?.lua;/Users/michael/.cache/nvim/packer_hererocks/2.1.1713484068/lib/luarocks/rocks-5.1/?/init.lua"
-local install_cpath_pattern = "/Users/michael/.cache/nvim/packer_hererocks/2.1.1713484068/lib/lua/5.1/?.so"
-if not string.find(package.path, package_path_str, 1, true) then
-  package.path = package.path .. ';' .. package_path_str
-end
-
-if not string.find(package.cpath, install_cpath_pattern, 1, true) then
-  package.cpath = package.cpath .. ';' .. install_cpath_pattern
-end
-
-time([[Luarocks path setup]], false)
-time([[try_loadstring definition]], true)
-local function try_loadstring(s, component, name)
-  local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
-  if not success then
-    vim.schedule(function()
-      vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
-    end)
-  end
-  return result
-end
-
-time([[try_loadstring definition]], false)
-time([[Defining packer_plugins]], true)
-_G.packer_plugins = {
-  ["Vim-Jinja2-Syntax"] = {
-    loaded = false,
-    needs_bufread = true,
-    only_cond = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/Vim-Jinja2-Syntax",
-    url = "https://github.com/Glench/Vim-Jinja2-Syntax"
-  },
-  ["cmp-buffer"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-buffer",
-    url = "https://github.com/hrsh7th/cmp-buffer"
-  },
-  ["cmp-cmdline"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-cmdline",
-    url = "https://github.com/hrsh7th/cmp-cmdline"
-  },
-  ["cmp-nvim-lsp"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
-    url = "https://github.com/hrsh7th/cmp-nvim-lsp"
-  },
-  ["cmp-nvim-lsp-document-symbol"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-document-symbol",
-    url = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol"
-  },
-  ["cmp-nvim-lsp-signature-help"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help",
-    url = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help"
-  },
-  ["cmp-path"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-path",
-    url = "https://github.com/hrsh7th/cmp-path"
-  },
-  ["cmp-tmux"] = {
-    after_files = { "/Users/michael/.local/share/nvim/site/pack/packer/opt/cmp-tmux/after/plugin/cmp_tmux.vim" },
-    cond = { "\27LJ\2\nQ\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\19g:GtkGuiLoaded\vexists\afn\bvim\0\0" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/cmp-tmux",
-    url = "https://github.com/andersevenrud/cmp-tmux"
-  },
-  ["cmp-vsnip"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/cmp-vsnip",
-    url = "https://github.com/hrsh7th/cmp-vsnip"
-  },
-  ["csound-vim"] = {
-    loaded = false,
-    needs_bufread = true,
-    only_cond = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/csound-vim",
-    url = "https://github.com/luisjure/csound-vim"
-  },
-  ["diffview.nvim"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/diffview.nvim",
-    url = "https://github.com/sindrets/diffview.nvim"
-  },
-  ["galaxyline.nvim"] = {
-    config = { "require('config.galaxyline')" },
-    load_after = {},
-    loaded = true,
-    needs_bufread = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim",
-    url = "https://github.com/nvimdev/galaxyline.nvim"
-  },
-  ["gitsigns.nvim"] = {
-    config = { "require('config.gitsigns')" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
-    url = "https://github.com/lewis6991/gitsigns.nvim"
-  },
-  ["goyo.vim"] = {
-    cond = { "\27LJ\2\nQ\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\19g:GtkGuiLoaded\vexists\afn\bvim\2\0" },
-    config = { "require('config.goyo')" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/goyo.vim",
-    url = "https://github.com/junegunn/goyo.vim"
-  },
-  ["indent-blankline.nvim"] = {
-    config = { "require('config.indent_blankline')" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
-    url = "https://github.com/lukas-reineke/indent-blankline.nvim"
-  },
-  ["limelight.vim"] = {
-    cond = { "\27LJ\2\nQ\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\19g:GtkGuiLoaded\vexists\afn\bvim\2\0" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/limelight.vim",
-    url = "https://github.com/junegunn/limelight.vim"
-  },
-  ["lspsaga.nvim"] = {
-    config = { "require('config.lspsaga')" },
-    load_after = {},
-    loaded = true,
-    needs_bufread = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim",
-    url = "https://github.com/nvimdev/lspsaga.nvim"
-  },
-  ["neo-tree.nvim"] = {
-    loaded = true,
-    needs_bufread = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/neo-tree.nvim",
-    url = "https://github.com/nvim-neo-tree/neo-tree.nvim"
-  },
-  neogit = {
-    commands = { "Neogit" },
-    config = { "require('config.neogit')" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/neogit",
-    url = "https://github.com/NeogitOrg/neogit"
-  },
-  nerdcommenter = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nerdcommenter",
-    url = "https://github.com/preservim/nerdcommenter"
-  },
-  ["nui.nvim"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nui.nvim",
-    url = "https://github.com/MunifTanjim/nui.nvim"
-  },
-  ["nvim-cmp"] = {
-    config = { "require('config.nvim_cmp')" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-cmp",
-    url = "https://github.com/hrsh7th/nvim-cmp"
-  },
-  ["nvim-dap"] = {
-    config = { "require('config.nvim_dap')" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-dap",
-    url = "https://github.com/mfussenegger/nvim-dap"
-  },
-  ["nvim-dap-python"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-dap-python",
-    url = "https://github.com/mfussenegger/nvim-dap-python"
-  },
-  ["nvim-dap-ui"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-dap-ui",
-    url = "https://github.com/rcarriga/nvim-dap-ui"
-  },
-  ["nvim-lspconfig"] = {
-    after = { "lspsaga.nvim" },
-    config = { "require('config.nvim_lspconfig')" },
-    loaded = true,
-    only_config = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
-    url = "https://github.com/neovim/nvim-lspconfig"
-  },
-  ["nvim-nio"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-nio",
-    url = "https://github.com/nvim-neotest/nvim-nio"
-  },
-  ["nvim-treesitter"] = {
-    config = { "require('config.nvim_treesitter')" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
-    url = "https://github.com/nvim-treesitter/nvim-treesitter"
-  },
-  ["nvim-web-devicons"] = {
-    loaded = false,
-    needs_bufread = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons",
-    url = "https://github.com/nvim-tree/nvim-web-devicons"
-  },
-  ["packer.nvim"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/packer.nvim",
-    url = "https://github.com/wbthomason/packer.nvim"
-  },
-  ["plenary.nvim"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/plenary.nvim",
-    url = "https://github.com/nvim-lua/plenary.nvim"
-  },
-  scvim = {
-    config = { "\27LJ\2\n)\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\fscFlash\6g\bvim\0" },
-    loaded = false,
-    needs_bufread = true,
-    only_cond = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/scvim",
-    url = "https://github.com/supercollider/scvim"
-  },
-  ["tabby.nvim"] = {
-    cond = { "\27LJ\2\nK\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\16gui_running\bhas\afn\bvim\0\0" },
-    config = { "require('config.tabby')" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/tabby.nvim",
-    url = "https://github.com/nanozuki/tabby.nvim"
-  },
-  tabular = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/tabular",
-    url = "https://github.com/godlygeek/tabular"
-  },
-  ["telescope.nvim"] = {
-    config = { "\27LJ\2\n�\2\0\0\6\0\r\0\0256\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\a\0'\4\b\0005\5\t\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\n\0'\4\v\0005\5\f\0B\0\5\1K\0\1\0\1\0\1\fnoremap\2!<cmd>Telescope live_grep<CR>\t<F6>\1\0\1\fnoremap\2\"<cmd>Telescope find_files<CR>\t<F4>\1\0\1\fnoremap\2\31<cmd>Telescope buffers<CR>\t<F3>\6n\bset\vkeymap\bvim\0" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/telescope.nvim",
-    url = "https://github.com/nvim-telescope/telescope.nvim"
-  },
-  undotree = {
-    commands = { "UndotreeToggle" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/undotree",
-    url = "https://github.com/mbbill/undotree"
-  },
-  ["venv-selector.nvim"] = {
-    config = { "\27LJ\2\n�\1\0\0\6\0\n\0\0146\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\0016\0\3\0009\0\4\0009\0\5\0'\2\6\0'\3\a\0'\4\b\0005\5\t\0B\0\5\1K\0\1\0\1\0\1\fnoremap\2\24<cmd>VenvSelect<CR>\a,v\6n\bset\vkeymap\bvim\nsetup\18venv-selector\frequire\0" },
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/venv-selector.nvim",
-    url = "https://github.com/linux-cultist/venv-selector.nvim"
-  },
-  ["vim-colors-xcode"] = {
-    after = { "galaxyline.nvim" },
-    config = { "vim.cmd[[colorscheme xcode]]" },
-    loaded = true,
-    only_config = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/vim-colors-xcode",
-    url = "https://github.com/arzg/vim-colors-xcode"
-  },
-  ["vim-devicons"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/vim-devicons",
-    url = "https://github.com/ryanoasis/vim-devicons"
-  },
-  ["vim-markdown"] = {
-    config = { '\27LJ\2\n?\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0"vim_markdown_folding_disabled\6g\bvim\0' },
-    loaded = false,
-    needs_bufread = true,
-    only_cond = false,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/vim-markdown",
-    url = "https://github.com/plasticboy/vim-markdown"
-  },
-  ["vim-plug"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/vim-plug",
-    url = "https://github.com/junegunn/vim-plug"
-  },
-  ["vim-prettier"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/vim-prettier",
-    url = "https://github.com/prettier/vim-prettier"
-  },
-  ["vim-tmux"] = {
-    cond = { "\27LJ\2\nQ\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\19g:GtkGuiLoaded\vexists\afn\bvim\0\0" },
-    loaded = false,
-    needs_bufread = true,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/vim-tmux",
-    url = "https://github.com/tmux-plugins/vim-tmux"
-  },
-  ["vim-tmux-focus-events"] = {
-    cond = { "\27LJ\2\nQ\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\19g:GtkGuiLoaded\vexists\afn\bvim\0\0" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/vim-tmux-focus-events",
-    url = "https://github.com/tmux-plugins/vim-tmux-focus-events"
-  },
-  ["vim-vsnip"] = {
-    loaded = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/start/vim-vsnip",
-    url = "https://github.com/hrsh7th/vim-vsnip"
-  },
-  vimux = {
-    cond = { "\27LJ\2\nQ\0\0\3\0\4\1\v6\0\0\0009\0\1\0009\0\2\0'\2\3\0B\0\2\2\b\0\0\0X\0\2�+\0\1\0X\1\1�+\0\2\0L\0\2\0\19g:GtkGuiLoaded\vexists\afn\bvim\0\0" },
-    config = { "require('config.vimux')" },
-    loaded = false,
-    needs_bufread = false,
-    only_cond = true,
-    path = "/Users/michael/.local/share/nvim/site/pack/packer/opt/vimux",
-    url = "https://github.com/benmills/vimux"
-  }
-}
-
-time([[Defining packer_plugins]], false)
--- Setup for: undotree
-time([[Setup for undotree]], true)
-try_loadstring("\27LJ\2\ne\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\fnoremap\2\28<cmd>UndotreeToggle<CR>\t<F5>\6n\bset\vkeymap\bvim\0", "setup", "undotree")
-time([[Setup for undotree]], false)
--- Setup for: neo-tree.nvim
-time([[Setup for neo-tree.nvim]], true)
-try_loadstring("\27LJ\2\nd\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\fnoremap\2\28<cmd>Neotree toggle<CR>\t<F8>\5\bset\vkeymap\bvim\0", "setup", "neo-tree.nvim")
-time([[Setup for neo-tree.nvim]], false)
-time([[packadd for neo-tree.nvim]], true)
-vim.cmd [[packadd neo-tree.nvim]]
-time([[packadd for neo-tree.nvim]], false)
--- Setup for: neogit
-time([[Setup for neogit]], true)
-try_loadstring("\27LJ\2\nU\0\0\6\0\6\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0004\5\0\0B\0\5\1K\0\1\0\20<cmd>Neogit<CR>\14<leader>g\5\bset\vkeymap\bvim\0", "setup", "neogit")
-time([[Setup for neogit]], false)
--- Config for: nvim-cmp
-time([[Config for nvim-cmp]], true)
-require('config.nvim_cmp')
-time([[Config for nvim-cmp]], false)
--- Config for: venv-selector.nvim
-time([[Config for venv-selector.nvim]], true)
-try_loadstring("\27LJ\2\n�\1\0\0\6\0\n\0\0146\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\0016\0\3\0009\0\4\0009\0\5\0'\2\6\0'\3\a\0'\4\b\0005\5\t\0B\0\5\1K\0\1\0\1\0\1\fnoremap\2\24<cmd>VenvSelect<CR>\a,v\6n\bset\vkeymap\bvim\nsetup\18venv-selector\frequire\0", "config", "venv-selector.nvim")
-time([[Config for venv-selector.nvim]], false)
--- Config for: gitsigns.nvim
-time([[Config for gitsigns.nvim]], true)
-require('config.gitsigns')
-time([[Config for gitsigns.nvim]], false)
--- Config for: nvim-dap
-time([[Config for nvim-dap]], true)
-require('config.nvim_dap')
-time([[Config for nvim-dap]], false)
--- Config for: indent-blankline.nvim
-time([[Config for indent-blankline.nvim]], true)
-require('config.indent_blankline')
-time([[Config for indent-blankline.nvim]], false)
--- Config for: telescope.nvim
-time([[Config for telescope.nvim]], true)
-try_loadstring("\27LJ\2\n�\2\0\0\6\0\r\0\0256\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\a\0'\4\b\0005\5\t\0B\0\5\0016\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\n\0'\4\v\0005\5\f\0B\0\5\1K\0\1\0\1\0\1\fnoremap\2!<cmd>Telescope live_grep<CR>\t<F6>\1\0\1\fnoremap\2\"<cmd>Telescope find_files<CR>\t<F4>\1\0\1\fnoremap\2\31<cmd>Telescope buffers<CR>\t<F3>\6n\bset\vkeymap\bvim\0", "config", "telescope.nvim")
-time([[Config for telescope.nvim]], false)
--- Config for: nvim-treesitter
-time([[Config for nvim-treesitter]], true)
-require('config.nvim_treesitter')
-time([[Config for nvim-treesitter]], false)
--- Config for: nvim-lspconfig
-time([[Config for nvim-lspconfig]], true)
-require('config.nvim_lspconfig')
-time([[Config for nvim-lspconfig]], false)
--- Config for: vim-colors-xcode
-time([[Config for vim-colors-xcode]], true)
-vim.cmd[[colorscheme xcode]]
-time([[Config for vim-colors-xcode]], false)
--- Conditional loads
-time([[Conditional loading of cmp-tmux]], true)
-  require("packer.load")({"cmp-tmux"}, {}, _G.packer_plugins)
-time([[Conditional loading of cmp-tmux]], false)
-time([[Conditional loading of vim-tmux-focus-events]], true)
-  require("packer.load")({"vim-tmux-focus-events"}, {}, _G.packer_plugins)
-time([[Conditional loading of vim-tmux-focus-events]], false)
-time([[Conditional loading of vim-tmux]], true)
-  require("packer.load")({"vim-tmux"}, {}, _G.packer_plugins)
-time([[Conditional loading of vim-tmux]], false)
-time([[Conditional loading of vimux]], true)
-  require("packer.load")({"vimux"}, {}, _G.packer_plugins)
-time([[Conditional loading of vimux]], false)
-time([[Conditional loading of tabby.nvim]], true)
-  require("packer.load")({"tabby.nvim"}, {}, _G.packer_plugins)
-time([[Conditional loading of tabby.nvim]], false)
-time([[Conditional loading of goyo.vim]], true)
-  require("packer.load")({"goyo.vim"}, {}, _G.packer_plugins)
-time([[Conditional loading of goyo.vim]], false)
-time([[Conditional loading of limelight.vim]], true)
-  require("packer.load")({"limelight.vim"}, {}, _G.packer_plugins)
-time([[Conditional loading of limelight.vim]], false)
--- Load plugins in order defined by `after`
-time([[Sequenced loading]], true)
-vim.cmd [[ packadd galaxyline.nvim ]]
-
--- Config for: galaxyline.nvim
-require('config.galaxyline')
-
-vim.cmd [[ packadd lspsaga.nvim ]]
-
--- Config for: lspsaga.nvim
-require('config.lspsaga')
-
-time([[Sequenced loading]], false)
-
--- Command lazy-loads
-time([[Defining lazy-load commands]], true)
-pcall(vim.api.nvim_create_user_command, 'UndotreeToggle', function(cmdargs)
-          require('packer.load')({'undotree'}, { cmd = 'UndotreeToggle', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
-        end,
-        {nargs = '*', range = true, bang = true, complete = function()
-          require('packer.load')({'undotree'}, {}, _G.packer_plugins)
-          return vim.fn.getcompletion('UndotreeToggle ', 'cmdline')
-      end})
-pcall(vim.api.nvim_create_user_command, 'Neogit', function(cmdargs)
-          require('packer.load')({'neogit'}, { cmd = 'Neogit', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
-        end,
-        {nargs = '*', range = true, bang = true, complete = function()
-          require('packer.load')({'neogit'}, {}, _G.packer_plugins)
-          return vim.fn.getcompletion('Neogit ', 'cmdline')
-      end})
-time([[Defining lazy-load commands]], false)
-
-vim.cmd [[augroup packer_load_aucmds]]
-vim.cmd [[au!]]
-  -- Filetype lazy-loads
-time([[Defining lazy-load filetype autocommands]], true)
-vim.cmd [[au FileType supercollider ++once lua require("packer.load")({'scvim'}, { ft = "supercollider" }, _G.packer_plugins)]]
-vim.cmd [[au FileType markdown ++once lua require("packer.load")({'vim-markdown'}, { ft = "markdown" }, _G.packer_plugins)]]
-vim.cmd [[au FileType jinja ++once lua require("packer.load")({'Vim-Jinja2-Syntax'}, { ft = "jinja" }, _G.packer_plugins)]]
-vim.cmd [[au FileType csound ++once lua require("packer.load")({'csound-vim'}, { ft = "csound" }, _G.packer_plugins)]]
-time([[Defining lazy-load filetype autocommands]], false)
-vim.cmd("augroup END")
-vim.cmd [[augroup filetypedetect]]
-time([[Sourcing ftdetect script at: /Users/michael/.local/share/nvim/site/pack/packer/opt/vim-markdown/ftdetect/markdown.vim]], true)
-vim.cmd [[source /Users/michael/.local/share/nvim/site/pack/packer/opt/vim-markdown/ftdetect/markdown.vim]]
-time([[Sourcing ftdetect script at: /Users/michael/.local/share/nvim/site/pack/packer/opt/vim-markdown/ftdetect/markdown.vim]], false)
-time([[Sourcing ftdetect script at: /Users/michael/.local/share/nvim/site/pack/packer/opt/Vim-Jinja2-Syntax/ftdetect/jinja.vim]], true)
-vim.cmd [[source /Users/michael/.local/share/nvim/site/pack/packer/opt/Vim-Jinja2-Syntax/ftdetect/jinja.vim]]
-time([[Sourcing ftdetect script at: /Users/michael/.local/share/nvim/site/pack/packer/opt/Vim-Jinja2-Syntax/ftdetect/jinja.vim]], false)
-time([[Sourcing ftdetect script at: /Users/michael/.local/share/nvim/site/pack/packer/opt/csound-vim/ftdetect/csound.vim]], true)
-vim.cmd [[source /Users/michael/.local/share/nvim/site/pack/packer/opt/csound-vim/ftdetect/csound.vim]]
-time([[Sourcing ftdetect script at: /Users/michael/.local/share/nvim/site/pack/packer/opt/csound-vim/ftdetect/csound.vim]], false)
-vim.cmd("augroup END")
-
-_G._packer.inside_compile = false
-if _G._packer.needs_bufread == true then
-  vim.cmd("doautocmd BufRead")
-end
-_G._packer.needs_bufread = false
-
-if should_profile then save_profiles() end
-
-end)
-
-if not no_errors then
-  error_msg = error_msg:gsub('"', '\\"')
-  vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
-end
-- 
cgit v1.2.3