diff options
Diffstat (limited to 'neovim/.config/nvim')
24 files changed, 1542 insertions, 0 deletions
diff --git a/neovim/.config/nvim/colours-dark.vim b/neovim/.config/nvim/colours-dark.vim new file mode 100644 index 0000000..2b7c824 --- /dev/null +++ b/neovim/.config/nvim/colours-dark.vim @@ -0,0 +1,2 @@ +set background=dark +colorscheme adwaita diff --git a/neovim/.config/nvim/colours-light.vim b/neovim/.config/nvim/colours-light.vim new file mode 100644 index 0000000..8cccb6c --- /dev/null +++ b/neovim/.config/nvim/colours-light.vim @@ -0,0 +1,2 @@ +set background=light +colorscheme adwaita diff --git a/neovim/.config/nvim/colours.vim b/neovim/.config/nvim/colours.vim new file mode 100644 index 0000000..2b7c824 --- /dev/null +++ b/neovim/.config/nvim/colours.vim @@ -0,0 +1,2 @@ +set background=dark +colorscheme adwaita diff --git a/neovim/.config/nvim/ginit.vim b/neovim/.config/nvim/ginit.vim new file mode 100644 index 0000000..fb39590 --- /dev/null +++ b/neovim/.config/nvim/ginit.vim @@ -0,0 +1,15 @@ +if exists('g:GtkGuiLoaded') + call rpcnotify(1, 'Gui', 'Font', 'Iosevka SS10 12') + call rpcnotify(1, 'Gui', 'Option', 'Tabline', 1) +else + GuiFont Iosevka SS10:h12 +endif + +if has('autocmd') && exists('g:GtkGuiLoaded') + autocmd FileType c call rpcnotify(1, 'Gui', 'FontFeatures', 'calt off, CLIK') + autocmd FileType cpp call rpcnotify(1, 'Gui', 'FontFeatures', 'calt off, CLIK') + autocmd FileType go call rpcnotify(1, 'Gui', 'FontFeatures', 'calt off, CLIK') + autocmd FileType python call rpcnotify(1, 'Gui', 'FontFeatures', 'calt off, CLIK') + autocmd FileType rust call rpcnotify(1, 'Gui', 'FontFeatures', 'calt off, CLIK') + autocmd FileType javascript call rpcnotify(1, 'Gui', 'FontFeatures', 'calt off, JSPT') +endif diff --git a/neovim/.config/nvim/init.lua b/neovim/.config/nvim/init.lua new file mode 100644 index 0000000..92429ce --- /dev/null +++ b/neovim/.config/nvim/init.lua @@ -0,0 +1,2 @@ +require('plugins') +require('settings') diff --git a/neovim/.config/nvim/lua/.luarc.json b/neovim/.config/nvim/lua/.luarc.json new file mode 100644 index 0000000..c157c38 --- /dev/null +++ b/neovim/.config/nvim/lua/.luarc.json @@ -0,0 +1,43 @@ +{ + "workspace.library": [ + "/home/gid/.config/nvim", + "/etc/xdg/nvim", + "/home/gid/.local/share/nvim/site", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-buffer", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-cmdline", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-path", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-vsnip", + "/home/gid/.local/share/nvim/site/pack/packer/start/diffview.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/gitsigns.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/lsp-status.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/lspsaga.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/nerdcommenter", + "/home/gid/.local/share/nvim/site/pack/packer/start/nvim-cmp", + "/home/gid/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + "/home/gid/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + "/home/gid/.local/share/nvim/site/pack/packer/start/packer.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/plenary.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/tabular", + "/home/gid/.local/share/nvim/site/pack/packer/start/telescope.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/tokyonight.nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/ultisnips", + "/home/gid/.local/share/nvim/site/pack/packer/start/vim-devicons", + "/home/gid/.local/share/nvim/site/pack/packer/start/vim-plug", + "/home/gid/.local/share/nvim/site/pack/packer/start/vim-vsnip", + "/usr/share/nvim/runtime", + "/usr/share/nvim/runtime/pack/dist/opt/matchit", + "/usr/lib/nvim", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-buffer/after", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-cmdline/after", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/after", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-path/after", + "/home/gid/.local/share/nvim/site/pack/packer/start/cmp-vsnip/after", + "/home/gid/.local/share/nvim/site/pack/packer/start/tabular/after", + "/home/gid/.local/share/nvim/site/pack/packer/start/ultisnips/after", + "/usr/share/vim/vimfiles", + "${3rd}/luassert/library", + "${3rd}/luv/library" + ] +}
\ No newline at end of file diff --git a/neovim/.config/nvim/lua/config/colourscheme.lua b/neovim/.config/nvim/lua/config/colourscheme.lua new file mode 100644 index 0000000..62f453a --- /dev/null +++ b/neovim/.config/nvim/lua/config/colourscheme.lua @@ -0,0 +1,6 @@ +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/colourscheme_dark.lua b/neovim/.config/nvim/lua/config/colourscheme_dark.lua new file mode 100644 index 0000000..7588132 --- /dev/null +++ b/neovim/.config/nvim/lua/config/colourscheme_dark.lua @@ -0,0 +1,6 @@ +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 new file mode 100644 index 0000000..62f453a --- /dev/null +++ b/neovim/.config/nvim/lua/config/colourscheme_light.lua @@ -0,0 +1,6 @@ +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 new file mode 100644 index 0000000..a4bdf05 --- /dev/null +++ b/neovim/.config/nvim/lua/config/galaxyline.lua @@ -0,0 +1,209 @@ +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 new file mode 100644 index 0000000..4f4e25c --- /dev/null +++ b/neovim/.config/nvim/lua/config/gitsigns.lua @@ -0,0 +1,40 @@ +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 new file mode 100644 index 0000000..dcb7134 --- /dev/null +++ b/neovim/.config/nvim/lua/config/goyo.lua @@ -0,0 +1,30 @@ +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 new file mode 100644 index 0000000..16972b7 --- /dev/null +++ b/neovim/.config/nvim/lua/config/indent_blankline.lua @@ -0,0 +1,3 @@ +require "ibl".setup({ + indent = { char = '▏' }, +}) diff --git a/neovim/.config/nvim/lua/config/lspsaga.lua b/neovim/.config/nvim/lua/config/lspsaga.lua new file mode 100644 index 0000000..64a2624 --- /dev/null +++ b/neovim/.config/nvim/lua/config/lspsaga.lua @@ -0,0 +1,18 @@ +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 new file mode 100644 index 0000000..6c4a36a --- /dev/null +++ b/neovim/.config/nvim/lua/config/neogit.lua @@ -0,0 +1,25 @@ +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 new file mode 100644 index 0000000..2fe93f5 --- /dev/null +++ b/neovim/.config/nvim/lua/config/nvim_cmp.lua @@ -0,0 +1,47 @@ +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 new file mode 100644 index 0000000..4d0180b --- /dev/null +++ b/neovim/.config/nvim/lua/config/nvim_dap.lua @@ -0,0 +1,82 @@ +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 new file mode 100644 index 0000000..abbf878 --- /dev/null +++ b/neovim/.config/nvim/lua/config/nvim_lspconfig.lua @@ -0,0 +1,71 @@ +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 new file mode 100644 index 0000000..0a3a71f --- /dev/null +++ b/neovim/.config/nvim/lua/config/nvim_treesitter.lua @@ -0,0 +1,25 @@ +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 new file mode 100644 index 0000000..1b64ac6 --- /dev/null +++ b/neovim/.config/nvim/lua/config/tabby.lua @@ -0,0 +1,30 @@ +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 new file mode 100644 index 0000000..16348dc --- /dev/null +++ b/neovim/.config/nvim/lua/config/vimux.lua @@ -0,0 +1,15 @@ +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 new file mode 100644 index 0000000..83afc45 --- /dev/null +++ b/neovim/.config/nvim/lua/plugins.lua @@ -0,0 +1,200 @@ +local ensure_packer = function() + local fn = vim.fn + local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' + if fn.empty(fn.glob(install_path)) > 0 then + fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) + vim.cmd [[packadd packer.nvim]] + return true + end + return false +end + +local packer_bootstrap = ensure_packer() + +return require('packer').startup(function(use) + use { + 'luisjure/csound-vim', + ft = 'csound', + } + use { + 'nvimdev/galaxyline.nvim', + branch = 'main', + requires = { { 'nvim-tree/nvim-web-devicons', opt = true } }, + config = [[require('config.galaxyline')]], + after = { 'vim-colors-xcode' }, + } + use { + 'lewis6991/gitsigns.nvim', + config = [[require('config.gitsigns')]], + } + use { + 'junegunn/goyo.vim', + cond = function() return vim.fn.exists('g:GtkGuiLoaded') == 1 end, + requires = { + { + 'junegunn/limelight.vim', + cond = function() return vim.fn.exists('g:GtkGuiLoaded') == 1 end, + }, + }, + config = [[require('config.goyo')]], + } + use { + 'lukas-reineke/indent-blankline.nvim', + config = [[require('config.indent_blankline')]], + } + use { + 'nvimdev/lspsaga.nvim', + after = { 'nvim-lspconfig' }, + requires = { { 'nvim-tree/nvim-web-devicons' } }, + config = [[require('config.lspsaga')]], + } + use 'preservim/nerdcommenter' + use { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + requires = { + "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 + }, + setup = function () + vim.keymap.set('', '<F8>', '<cmd>Neotree toggle<CR>', { noremap = true }) + end + } + use { + 'NeogitOrg/neogit', + cmd = 'Neogit', + requires = { { 'nvim-lua/plenary.nvim' }, { 'sindrets/diffview.nvim' } }, + config = [[require('config.neogit')]], + setup = function() + vim.keymap.set('', '<leader>g', '<cmd>Neogit<CR>', {}) + end, + } + use { + 'hrsh7th/nvim-cmp', + requires = { + { + 'andersevenrud/cmp-tmux', + cond = function() return vim.fn.exists('g:GtkGuiLoaded') == 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', + requires = 'hrsh7th/vim-vsnip' + } + }, + config = [[require('config.nvim_cmp')]], + } + use { + 'arzg/vim-colors-xcode', + config = 'vim.cmd[[colorscheme xcode]]' + } + use { + 'mfussenegger/nvim-dap', + requires = { { 'mfussenegger/nvim-dap-python', 'rcarriga/nvim-dap-ui', 'nvim-neotest/nvim-nio' } }, + config = [[require('config.nvim_dap')]], + } + use { + 'neovim/nvim-lspconfig', + config = [[require('config.nvim_lspconfig')]], + } + use { + 'prettier/vim-prettier', + } + use { + 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate', + config = [[require('config.nvim_treesitter')]], + } + use 'wbthomason/packer.nvim' + use { + 'nvim-telescope/telescope.nvim', + requires = { { '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, + } + use { + 'supercollider/scvim', + config = function() + vim.g.scFlash = 1 + end, + ft = 'supercollider', + } + use { + 'nanozuki/tabby.nvim', + requires = { + { + 'nvim-tree/nvim-web-devicons', + } + }, + config = [[require('config.tabby')]], + cond = function() return vim.fn.has('gui_running') == 0 end, + } + use 'godlygeek/tabular' + use { + 'mbbill/undotree', + cmd = 'UndotreeToggle', + setup = function() + vim.keymap.set('n', '<F5>', '<cmd>UndotreeToggle<CR>', { noremap = true }) + end, + } + use { + 'linux-cultist/venv-selector.nvim', + branch = 'regexp', + config = function () + require'venv-selector'.setup() + vim.keymap.set('n', ',v', '<cmd>VenvSelect<CR>', { noremap = true }) + end + } + use 'ryanoasis/vim-devicons' + use { + 'Glench/Vim-Jinja2-Syntax', + ft = 'jinja', + } + use { + 'plasticboy/vim-markdown', + config = function() + vim.g.vim_markdown_folding_disabled = 1 + end, + ft = 'markdown', + } + use 'junegunn/vim-plug' + use { + 'tmux-plugins/vim-tmux', + cond = function() return vim.fn.exists('g:GtkGuiLoaded') == 0 end, + } + use { + 'tmux-plugins/vim-tmux-focus-events', + cond = function() return vim.fn.exists('g:GtkGuiLoaded') == 0 end, + } + use { + 'benmills/vimux', + cond = function() return vim.fn.exists('g:GtkGuiLoaded') == 0 end, + config = [[require('config.vimux')]], + } + + if packer_bootstrap then + require('packer').sync() + end +end) diff --git a/neovim/.config/nvim/lua/settings.lua b/neovim/.config/nvim/lua/settings.lua new file mode 100644 index 0000000..7afe46f --- /dev/null +++ b/neovim/.config/nvim/lua/settings.lua @@ -0,0 +1,150 @@ +require('config.colourscheme') +-- General settings + +vim.g.loaded_python_provider = 1 +vim.g.python3_host_prog = '/Users/michael/.pyenv/shims/python3' +vim.g.loaded_perl_provider = 0 +vim.g.loaded_ruby_provider = 0 + +vim.opt.rnu = true +vim.opt.number = true +vim.opt.hlsearch = true +vim.opt.incsearch = true +vim.opt.backspace = { 'indent', 'eol', 'start' } +vim.opt.visualbell = true +vim.opt.clipboard:append { 'unnamedplus' } +vim.opt.completeopt = { 'menuone', 'noselect' } +vim.opt.cmdheight = 0 +vim.opt.expandtab = true +vim.opt.wrap = false +vim.opt.shiftwidth = 4 +vim.opt.softtabstop = 4 +vim.opt.smarttab = true +vim.opt.encoding = 'utf-8' +vim.opt.foldenable = false +vim.opt.linebreak = true +vim.opt.showbreak = '↪ ' +vim.opt.breakindent = true +vim.opt.termguicolors = true +vim.cmd[[ +syntax on + filetype on + filetype plugin on + filetype plugin indent on + highlight Comment cterm=italic gui=italic +]] +vim.opt.backup = false +vim.opt.writebackup = false +vim.opt.updatetime = 300 +vim.opt.shortmess:append 'c' +vim.opt.signcolumn = 'yes' + +vim.keymap.set("", "<A-{>", "<cmd>tabprevious<CR>", { noremap=true }) +vim.keymap.set("", "<A-}>", "<cmd>tabnext<CR>", { noremap=true }) + +-- Autocommands + +local indent_rules_augroup = vim.api.nvim_create_augroup('Indents', {}) +vim.api.nvim_create_autocmd( { 'FileType' }, { + pattern = { 'make', 'sh' }, + group = indent_rules_augroup, + callback = function() + vim.opt_local.tabstop = 8 + vim.opt_local.shiftwidth = 8 + vim.opt_local.softtabstop = 0 + vim.opt_local.expandtab = false + end +}) +vim.api.nvim_create_autocmd( { 'FileType' }, { + pattern = { 'go' }, + group = indent_rules_augroup, + callback = function() + vim.opt_local.tabstop = 4 + vim.opt_local.shiftwidth = 4 + vim.opt_local.softtabstop = 0 + vim.opt_local.expandtab = false + end +}) +vim.api.nvim_create_autocmd( { 'FileType' }, { + pattern = { 'javascript', 'lua' }, + group = indent_rules_augroup, + callback = function() + vim.opt_local.tabstop = 2 + vim.opt_local.shiftwidth = 2 + vim.opt_local.softtabstop = 2 + end +}) + +local wrap_rules_augroup = vim.api.nvim_create_augroup('Wrap', {}) +vim.api.nvim_create_autocmd( { 'FileType' }, { + pattern = { 'markdown', 'rst', 'text' }, + group = wrap_rules_augroup, + callback = function() + vim.opt_local.wrap = true + end +}) + +local terminal_rules_augroup = vim.api.nvim_create_augroup('Terminal', {}) +vim.api.nvim_create_autocmd( { 'TermOpen' }, { + pattern = { '*' }, + group = terminal_rules_augroup, + callback = function() + vim.cmd('startinsert') + vim.opt_local.scrollback = 100000 + vim.opt_local.modified = true + vim.opt_local.bufhidden = 'hide' + vim.opt_local.statusline = vim.api.nvim_buf_get_var(0, 'term_title') + vim.opt_local.number = false + vim.opt_local.rnu = false + vim.cmd('match Errormsg ""') + end +}) + +-- Terminal +vim.cmd[[ + tnoremap <Esc> <C-\><C-n> + tnoremap <A-h> <C-\><C-N><C-w>h + tnoremap <A-j> <C-\><C-N><C-w>j + tnoremap <A-k> <C-\><C-N><C-w>k + tnoremap <A-l> <C-\><C-N><C-w>l + inoremap <A-h> <C-\><C-N><C-w>h + inoremap <A-j> <C-\><C-N><C-w>j + inoremap <A-k> <C-\><C-N><C-w>k + inoremap <A-l> <C-\><C-N><C-w>l + nnoremap <A-h> <C-w>h + nnoremap <A-j> <C-w>j + nnoremap <A-k> <C-w>k + nnoremap <A-l> <C-w>l + + let g:term_buf = 0 + let g:term_win = 0 + + function! Term_toggle(height) + if win_gotoid(g:term_win) + hide + else + botright new + exec "resize ". a:height + try + exec "buffer " . g:term_buf + catch + call termopen($SHELL, {"detach": 0}) + keepalt file Terminal + let g:term_buf = bufnr("") + endtry + let g:term_win = win_getid() + endif + endfunction + + nnoremap <Leader>t :call Term_toggle(15)<CR> +]] + +-- 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 }) +end diff --git a/neovim/.config/nvim/plugin/packer_compiled.lua b/neovim/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..0f5ddce --- /dev/null +++ b/neovim/.config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,513 @@ +-- 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 |