From 50b01b5a0e3f1403d24b5e74d038eee30db24113 Mon Sep 17 00:00:00 2001 From: Dustin Swan Date: Sun, 18 Dec 2022 20:15:14 -0500 Subject: [PATCH] vim win-shift lib --- init.lua | 624 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 323 insertions(+), 301 deletions(-) diff --git a/init.lua b/init.lua index 218a82c..84da751 100644 --- a/init.lua +++ b/init.lua @@ -20,317 +20,339 @@ vim.opt.laststatus = 3 -- global status line vim.api.nvim_create_autocmd('FileType', { pattern = 'org', command = 'setlocal nowrap' }) vim.api.nvim_create_autocmd('TextYankPost', { - pattern = '*', - callback = function() - vim.highlight.on_yank { higroup = 'IncSearch' } - end, + pattern = '*', + callback = function() + vim.highlight.on_yank { higroup = 'IncSearch' } + end, }) local ensure_packer = function() - local install_path = vim.fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' - if vim.fn.empty(vim.fn.glob(install_path)) > 0 then - vim.fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }) - vim.cmd [[packadd packer.nvim]] - return true - end - return false + local install_path = vim.fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' + if vim.fn.empty(vim.fn.glob(install_path)) > 0 then + vim.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() require('packer').startup(function(use) - use 'wbthomason/packer.nvim' - use 'tpope/vim-surround' - use 'tpope/vim-repeat' - use 'felipec/vim-sanegx' - use { 'sindrets/diffview.nvim', requires = 'nvim-lua/plenary.nvim' } - use 'folke/neodev.nvim' - use 'jamessan/vim-gnupg' - use 'dhruvasagar/vim-table-mode' - use 'mfussenegger/nvim-dap' - use 'lukas-reineke/indent-blankline.nvim' - use 'LnL7/vim-nix' - use 'AndrewRadev/splitjoin.vim' - - use { - 'nvim-telescope/telescope.nvim', - branch = '0.1.x', - requires = { 'nvim-lua/plenary.nvim' } - } - - use { - 'nvim-treesitter/nvim-treesitter', - run = function() require('nvim-treesitter.install').update({ with_sync = true }) end, - } - - use { 'nvim-orgmode/orgmode', config = function() - require('orgmode').setup_ts_grammar() - - require 'nvim-treesitter.configs'.setup { - highlight = { - enable = true, - additional_vim_regex_highlighting = { 'org' }, -- Required for spellcheck, some LaTex highlights and code block highlights that do not have ts grammar - }, - ensure_installed = { 'org' }, -- Or run :TSUpdate org - } - - require('orgmode').setup({ - org_agenda_files = { '~/Sync/Notes/*' }, - org_default_notes_file = '~/Sync/Notes/Main.org', - }) - end } - - use { - "catppuccin/nvim", - as = "catppuccin", - config = function() - require("catppuccin").setup { - flavour = "mocha", -- mocha, macchiato, frappe, latte - transparent_background = true - } - vim.api.nvim_command "colorscheme catppuccin" - end - } - - use { - 'lewis6991/gitsigns.nvim', - config = function() - require('gitsigns').setup() - end - } - - use { - 'nvim-lualine/lualine.nvim', - requires = { 'kyazdani42/nvim-web-devicons', opt = true }, - config = function() require('lualine').setup() end - } - - use { - "folke/which-key.nvim", - config = function() - require("which-key").setup({ - plugins = { - spelling = { - enabled = true - } - } - }) - end - } - - use { - 'akinsho/bufferline.nvim', - ag = "v3.*", - requires = 'kyazdani42/nvim-web-devicons', - config = function() - require("bufferline").setup() - end - } - - use 'nvim-tree/nvim-web-devicons' - - use { - "nvim-neo-tree/neo-tree.nvim", - branch = "v2.x", - requires = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", - "MunifTanjim/nui.nvim", - } - } - - use({ - "folke/noice.nvim", - event = "VimEnter", - config = function() - require("noice").setup() - require("notify").setup({ - background_colour = "#000000" - }) - end, - requires = { - "MunifTanjim/nui.nvim", - "rcarriga/nvim-notify", - } - }) - use { - 'VonHeikemen/lsp-zero.nvim', - requires = { - -- LSP Support - { 'neovim/nvim-lspconfig' }, - { 'williamboman/mason.nvim' }, - { 'williamboman/mason-lspconfig.nvim' }, - - -- Autocompletion - { 'hrsh7th/nvim-cmp' }, - { 'hrsh7th/cmp-buffer' }, - { 'hrsh7th/cmp-path' }, - { 'saadparwaiz1/cmp_luasnip' }, - { 'hrsh7th/cmp-nvim-lsp' }, - { 'hrsh7th/cmp-nvim-lua' }, - - -- Snippets - { 'L3MON4D3/LuaSnip' }, - { 'rafamadriz/friendly-snippets' }, - }, - config = function() - local lsp = require('lsp-zero') - lsp.preset('recommended') - lsp.setup() - end - } - - use { - 'numToStr/Comment.nvim', - config = function() - require('Comment').setup({ - toggler = { - line = 'cc', - block = 'cb', - }, - opleader = { - line = 'cc', - block = 'cb', - } - }) - end - } - - use { - 'JoosepAlviste/nvim-ts-context-commentstring', - config = function() - require 'nvim-treesitter.configs'.setup({ - context_commentstring = { - enable = true - } - }) - end - } - - use { - 'goolord/alpha-nvim', - requires = { 'kyazdani42/nvim-web-devicons' }, - config = function() - require 'alpha'.setup(require 'alpha.themes.startify'.config) - end - } - - use { - "windwp/nvim-autopairs", - config = function() - require("nvim-autopairs").setup {} - end - } - - use { - 'alexghergh/nvim-tmux-navigation', config = function() - require 'nvim-tmux-navigation'.setup { - keybindings = { - left = "", - down = "", - up = "", - right = "", - last_active = "", - next = "", - } - } - end - } - - use { - 'jose-elias-alvarez/null-ls.nvim', - config = function() - require("null-ls").setup({ - -- sources = { - -- require("null-ls").builtins.formatting.stylua, - -- require("null-ls").builtins.diagnostics.eslint, - -- require("null-ls").builtins.completion.spell, - -- }, - }) - end, - requires = { "nvim-lua/plenary.nvim" } - } - - use { - "akinsho/toggleterm.nvim", tag = '*', config = function() - require("toggleterm").setup({ - direction = 'float', - open_mapping = [[]] - }) - end - } - - use { - 'ggandor/leap.nvim', - config = function() - require('leap').add_default_mappings() - end - } - - use { - "folke/trouble.nvim", - requires = "kyazdani42/nvim-web-devicons", - config = function() - require("trouble").setup() - end - } - - use { - 'notjedi/nvim-rooter.lua', - config = function() - require'nvim-rooter'.setup() - end - } - - if packer_bootstrap then - require('packer').sync() - end + use 'wbthomason/packer.nvim' + use 'tpope/vim-surround' + use 'tpope/vim-repeat' + use 'felipec/vim-sanegx' + use { 'sindrets/diffview.nvim', requires = 'nvim-lua/plenary.nvim' } + use 'folke/neodev.nvim' + use 'jamessan/vim-gnupg' + use 'dhruvasagar/vim-table-mode' + use 'mfussenegger/nvim-dap' + use 'lukas-reineke/indent-blankline.nvim' + use 'LnL7/vim-nix' + use 'AndrewRadev/splitjoin.vim' + + use { + 'nvim-telescope/telescope.nvim', + branch = '0.1.x', + requires = { 'nvim-lua/plenary.nvim' } + } + + use { + 'nvim-treesitter/nvim-treesitter', + run = function() require('nvim-treesitter.install').update({ with_sync = true }) end, + } + + use { 'nvim-orgmode/orgmode', config = function() + require('orgmode').setup_ts_grammar() + + require 'nvim-treesitter.configs'.setup { + highlight = { + enable = true, + additional_vim_regex_highlighting = { 'org' }, -- Required for spellcheck, some LaTex highlights and code block highlights that do not have ts grammar + }, + ensure_installed = { 'org' }, -- Or run :TSUpdate org + } + + require('orgmode').setup({ + org_agenda_files = { '~/Sync/Notes/*' }, + org_default_notes_file = '~/Sync/Notes/Main.org', + }) + end } + + use { + "catppuccin/nvim", + as = "catppuccin", + config = function() + require("catppuccin").setup { + flavour = "mocha", -- mocha, macchiato, frappe, latte + transparent_background = true + } + vim.api.nvim_command "colorscheme catppuccin" + end + } + + use { + 'lewis6991/gitsigns.nvim', + config = function() + require('gitsigns').setup() + end + } + + use { + 'nvim-lualine/lualine.nvim', + requires = { 'kyazdani42/nvim-web-devicons', opt = true }, + config = function() require('lualine').setup() end + } + + use { + "folke/which-key.nvim", + config = function() + require("which-key").setup({ + plugins = { + spelling = { + enabled = true + } + } + }) + end + } + + use { + 'akinsho/bufferline.nvim', + ag = "v3.*", + requires = 'kyazdani42/nvim-web-devicons', + config = function() + require("bufferline").setup() + end + } + + use 'nvim-tree/nvim-web-devicons' + + use { + "nvim-neo-tree/neo-tree.nvim", + branch = "v2.x", + requires = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + } + } + + use({ + "folke/noice.nvim", + event = "VimEnter", + config = function() + require("noice").setup() + require("notify").setup({ + background_colour = "#000000" + }) + end, + requires = { + "MunifTanjim/nui.nvim", + "rcarriga/nvim-notify", + } + }) + use { + 'VonHeikemen/lsp-zero.nvim', + requires = { + -- LSP Support + { 'neovim/nvim-lspconfig' }, + { 'williamboman/mason.nvim' }, + { 'williamboman/mason-lspconfig.nvim' }, + + -- Autocompletion + { 'hrsh7th/nvim-cmp' }, + { 'hrsh7th/cmp-buffer' }, + { 'hrsh7th/cmp-path' }, + { 'saadparwaiz1/cmp_luasnip' }, + { 'hrsh7th/cmp-nvim-lsp' }, + { 'hrsh7th/cmp-nvim-lua' }, + + -- Snippets + { 'L3MON4D3/LuaSnip' }, + { 'rafamadriz/friendly-snippets' }, + }, + config = function() + local lsp = require('lsp-zero') + lsp.preset('recommended') + lsp.setup() + end + } + + use { + 'numToStr/Comment.nvim', + config = function() + require('Comment').setup({ + toggler = { + line = 'cc', + block = 'cb', + }, + opleader = { + line = 'cc', + block = 'cb', + } + }) + end + } + + use { + 'JoosepAlviste/nvim-ts-context-commentstring', + config = function() + require 'nvim-treesitter.configs'.setup({ + context_commentstring = { + enable = true + } + }) + end + } + + use { + 'goolord/alpha-nvim', + requires = { 'kyazdani42/nvim-web-devicons' }, + config = function() + require 'alpha'.setup(require 'alpha.themes.startify'.config) + end + } + + use { + "windwp/nvim-autopairs", + config = function() + require("nvim-autopairs").setup {} + end + } + + use { + 'alexghergh/nvim-tmux-navigation', config = function() + require 'nvim-tmux-navigation'.setup { + keybindings = { + left = "", + down = "", + up = "", + right = "", + last_active = "", + next = "", + } + } + end + } + + use { + 'jose-elias-alvarez/null-ls.nvim', + config = function() + require("null-ls").setup({ + -- sources = { + -- require("null-ls").builtins.formatting.stylua, + -- require("null-ls").builtins.diagnostics.eslint, + -- require("null-ls").builtins.completion.spell, + -- }, + }) + end, + requires = { "nvim-lua/plenary.nvim" } + } + + use { + "akinsho/toggleterm.nvim", tag = '*', config = function() + require("toggleterm").setup({ + direction = 'float', + open_mapping = [[]] + }) + end + } + + use { + 'ggandor/leap.nvim', + config = function() + require('leap').add_default_mappings() + end + } + + use { + "folke/trouble.nvim", + requires = "kyazdani42/nvim-web-devicons", + config = function() + require("trouble").setup() + end + } + + use { + 'notjedi/nvim-rooter.lua', + config = function() + require 'nvim-rooter'.setup() + end + } + + use({ + "jackMort/ChatGPT.nvim", + config = function() + require("chatgpt").setup() + end, + requires = { + "MunifTanjim/nui.nvim", + "nvim-lua/plenary.nvim", + "nvim-telescope/telescope.nvim" + } + }) + + use({ 'sindrets/winshift.nvim', + config = function() + require("winshift").setup() + end + }) + + if packer_bootstrap then + require('packer').sync() + end end) local wk = require("which-key") wk.register({ - [""] = { - a = { ":Alpha", "Alpha" }, - b = { - name = "Buffer", - d = { ":bdelete!", "Delete" }, - b = { "Telescope buffers", "Buffers" }, - t = { ":Neotree buffers", "Tree" }, - }, - c = "Comment", - f = { - name = "File", - f = { "Telescope find_files", "Files" }, - g = { "Telescope live_grep", "Grep" }, - r = { "Telescope oldfiles", "Recent" }, - t = { ":Neotree", "Tree" }, - d = { ":cd %:p:h", "Set Directory" }, - }, - g = { - name = "Git", - g = { ":2TermExec cmd='gitui'", "Gitui" }, - t = { ":Neotree git_status", "Tree" }, - b = { ":Gitsigns blame_line", "Blame" }, - d = { ":DiffviewOpen", "Diff" }, - h = { ":DiffviewFileHistory", "History" }, - }, - F = { ":lua vim.lsp.buf.format()", "Format" }, - J = { ":SplitjoinJoin", "Join" }, - t = { - name = "Table", - m = "Toggle Table Mode", - t = "Tableize", - r = { ":TableModeRealign", "Realign" }, - e = { ":TableEvalFormulaLine", "Evaluate" }, - }, - o = "Org", - p = { - name = "Packer", - s = { ":PackerSync", "Sync" }, - }, - S = { ":SplitjoinSplit", "Split" }, - T = { ":TroubleToggle", "Trouble" }, - }, - [""] = { ":BufferLineCycleNext", "Next Tab" }, - [""] = { ":BufferLineCyclePrev", "Previous Tab" }, + [""] = { + a = { ":Alpha", "Alpha" }, + b = { + name = "Buffer", + d = { ":bdelete!", "Delete" }, + b = { "Telescope buffers", "Buffers" }, + t = { ":Neotree buffers", "Tree" }, + }, + c = "Comment", + f = { + name = "File", + f = { "Telescope find_files", "Files" }, + g = { "Telescope live_grep", "Grep" }, + r = { "Telescope oldfiles", "Recent" }, + t = { ":Neotree", "Tree" }, + d = { ":cd %:p:h", "Set Directory" }, + }, + g = { + name = "Git", + g = { ":2TermExec cmd='gitui'", "Gitui" }, + t = { ":Neotree git_status", "Tree" }, + b = { ":Gitsigns blame_line", "Blame" }, + d = { ":DiffviewOpen", "Diff" }, + h = { ":DiffviewFileHistory", "History" }, + }, + F = { ":lua vim.lsp.buf.format()", "Format" }, + J = { ":SplitjoinJoin", "Join" }, + t = { + name = "Table", + m = "Toggle Table Mode", + t = "Tableize", + r = { ":TableModeRealign", "Realign" }, + e = { ":TableEvalFormulaLine", "Evaluate" }, + }, + w = { + name = "Window", + s = { ":WinShift", "Shift" }, + }, + o = "Org", + p = { + name = "Packer", + s = { ":PackerSync", "Sync" }, + }, + S = { ":SplitjoinSplit", "Split" }, + T = { ":TroubleToggle", "Trouble" }, + }, + [""] = { ":BufferLineCycleNext", "Next Tab" }, + [""] = { ":BufferLineCyclePrev", "Previous Tab" }, })