From 25a94d935333a89e785f7ff415b3c6d3179b275f Mon Sep 17 00:00:00 2001 From: Eric Tiedemann Date: Sat, 25 Nov 2023 15:54:02 -0500 Subject: [PATCH] Split out plugins and extra config --- init.lua | 97 +++---------------------- lua/custom/config/toggleterm-config.lua | 30 ++++++++ lua/custom/config/treesj-config.lua | 24 ++++++ lua/custom/plugins/init.lua | 5 +- lua/custom/plugins/nvim-autopairs.lua | 6 ++ lua/custom/plugins/nvim-surround.lua | 6 ++ lua/custom/plugins/nvim-tree.lua | 11 +++ lua/custom/plugins/toggleterm.lua | 26 +++++++ lua/custom/plugins/treesj.lua | 7 ++ 9 files changed, 124 insertions(+), 88 deletions(-) create mode 100644 lua/custom/config/toggleterm-config.lua create mode 100644 lua/custom/config/treesj-config.lua create mode 100644 lua/custom/plugins/nvim-autopairs.lua create mode 100644 lua/custom/plugins/nvim-surround.lua create mode 100644 lua/custom/plugins/nvim-tree.lua create mode 100644 lua/custom/plugins/toggleterm.lua create mode 100644 lua/custom/plugins/treesj.lua diff --git a/init.lua b/init.lua index 6ca13fea..94cb3a7b 100644 --- a/init.lua +++ b/init.lua @@ -43,6 +43,7 @@ P.S. You can delete this when you're done too. It's your config now :) -- NOTE: Must happen before plugins are required (otherwise wrong leader will be used) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' +vim.g.python3_host_prog = '/usr/bin/python3.11' -- [[ Install `lazy.nvim` plugin manager ]] -- https://github.com/folke/lazy.nvim @@ -216,62 +217,6 @@ require('lazy').setup({ }, build = ':TSUpdate', }, - { - -- File Browser - 'nvim-tree/nvim-tree.lua', - opts = { - sort_by = "case_sensitive", - view = { width = 30, }, - renderer = { group_empty = true, }, - filters = { dotfiles = true, }, - } - }, - { - 'kylechui/nvim-surround', - opts = { - version = "*", - config = {}, - } - }, - { - 'akinsho/toggleterm.nvim', - opts = { - version = "*", - size = 20, - open_mapping = [[c-\]], - hide_numbers = true, - shading_factor = 2, - start_in_insert = true, - insert_mappings = true, - persist_size = true, - direction = "float", - close_on_exit = true, - shell = vim.o.shell, - float_opts = { - border = "curved", - winblend = 0, - highlights = { - border = "Normal", - background = "Normal", - }, - }, - } - }, - { - 'windwp/nvim-autopairs', - opts = {}, - }, - { - 'Wansmer/treesj', - dependencies = { 'nvim-treesitter/nvim-treesitter' }, - opts = {}, - }, - { - 'nvim-treesitter/nvim-treesitter-context', - }, - { - 'mg979/vim-visual-multi', - }, -- NOTE: Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart -- These are some example plugins that I've included in the kickstart repository. @@ -285,7 +230,7 @@ require('lazy').setup({ -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. -- -- For additional information see: https://github.com/folke/lazy.nvim#-structuring-your-plugins - -- { import = 'custom.plugins' }, + { import = 'custom.plugins' }, }, {}) -- [[ Setting options ]] @@ -297,6 +242,10 @@ vim.o.hlsearch = false -- Make line numbers default vim.wo.number = true +vim.wo.relativenumber = true +vim.bo.tabstop = 4 +vim.bo.shiftwidth = 4 +vim.bo.expandtab = true -- Enable mouse mode vim.o.mouse = 'a' @@ -553,16 +502,6 @@ require('which-key').register { ['r'] = { name = '[R]ename', _ = 'which_key_ignore' }, ['s'] = { name = '[S]earch', _ = 'which_key_ignore' }, ['w'] = { name = '[W]orkspace', _ = 'which_key_ignore' }, - --Toggle Term - ['t'] = { - name = "[T]erminal", - p = { "lua _PYTHON_TOGGLE()", "Python" }, -- Python Terminal - f = { "ToggleTerm direction=float", "Float" }, -- Floating Terminal - - -- Play with size according to your needs. - h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, -- Horizontal Terminal, - v = { "ToggleTerm size=80 direction=vertical", "Vertical" }, -- Vertical Terminal - }, } -- mason-lspconfig requires that these setup functions are called in this order @@ -672,25 +611,9 @@ cmp.setup { }, } --- configure toggleterm -function _G.set_terminal_keymaps() - local opts = { noremap = true } - vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) - vim.api.nvim_buf_set_keymap(0, 't', 'jk', [[]], opts) - vim.api.nvim_buf_set_keymap(0, 't', '', [[h]], opts) - vim.api.nvim_buf_set_keymap(0, 't', '', [[j]], opts) - vim.api.nvim_buf_set_keymap(0, 't', '', [[k]], opts) - vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) -end - -vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') - -local Terminal = require("toggleterm.terminal").Terminal -local python = Terminal:new({ cmd = "python3", hidden = true }) - -function _PYTHON_TOGGLE() - python:toggle() -end - -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et + +require "custom.config.treesj-config" +require "custom.config.toggleterm-config" +-- require "custom.config" diff --git a/lua/custom/config/toggleterm-config.lua b/lua/custom/config/toggleterm-config.lua new file mode 100644 index 00000000..cd683a19 --- /dev/null +++ b/lua/custom/config/toggleterm-config.lua @@ -0,0 +1,30 @@ +function _G.set_terminal_keymaps() + local opts = { noremap = true } + vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) + vim.api.nvim_buf_set_keymap(0, 't', 'jk', [[]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[h]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[j]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[k]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) +end + +vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') + +local Terminal = require("toggleterm.terminal").Terminal +local python = Terminal:new({ cmd = "python3", hidden = true }) + +function _PYTHON_TOGGLE() + python:toggle() +end + +require('which-key').register { + ['t'] = { + name = "[T]erminal", + p = { "lua _PYTHON_TOGGLE()", "Python" }, -- Python Terminal + f = { "ToggleTerm direction=float", "Float" }, -- Floating Terminal + + -- Play with size according to your needs. + h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, -- Horizontal Terminal, + v = { "ToggleTerm size=80 direction=vertical", "Vertical" }, -- Vertical Terminal + }, +} diff --git a/lua/custom/config/treesj-config.lua b/lua/custom/config/treesj-config.lua new file mode 100644 index 00000000..93c018e0 --- /dev/null +++ b/lua/custom/config/treesj-config.lua @@ -0,0 +1,24 @@ +-- Set up the treesitter nodes for the Python language. +local lang_utils = require("treesj.langs.utils") +local options = { + join = { space_in_brackets = false }, + split = { last_separator = true }, +} + +require("treesj").setup( + { + use_default_keymaps = false, + langs = { + python = { + argument_list = lang_utils.set_preset_for_args(options), + assignment = { target_nodes = { "list", "set", "tuple", "dictionary" } }, + call = { target_nodes = { "argument_list" } }, + dictionary = lang_utils.set_preset_for_dict(options), + list = lang_utils.set_preset_for_list(options), + parameters = lang_utils.set_preset_for_args(options), + set = lang_utils.set_preset_for_list(options), + tuple = lang_utils.set_preset_for_list(options), + } + } + } +) diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8..b826aa77 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -2,4 +2,7 @@ -- I promise not to create any merge conflicts in this directory :) -- -- See the kickstart.nvim README for more information -return {} +return { + 'mg979/vim-visual-multi', + 'nvim-treesitter/nvim-treesitter-context', +} diff --git a/lua/custom/plugins/nvim-autopairs.lua b/lua/custom/plugins/nvim-autopairs.lua new file mode 100644 index 00000000..bc0dcb58 --- /dev/null +++ b/lua/custom/plugins/nvim-autopairs.lua @@ -0,0 +1,6 @@ +return { + { + 'windwp/nvim-autopairs', + opts = {} + } +} diff --git a/lua/custom/plugins/nvim-surround.lua b/lua/custom/plugins/nvim-surround.lua new file mode 100644 index 00000000..fc4266cd --- /dev/null +++ b/lua/custom/plugins/nvim-surround.lua @@ -0,0 +1,6 @@ +return { + { + 'kylechui/nvim-surround', + opts = { config = {} } + } +} diff --git a/lua/custom/plugins/nvim-tree.lua b/lua/custom/plugins/nvim-tree.lua new file mode 100644 index 00000000..d83deda6 --- /dev/null +++ b/lua/custom/plugins/nvim-tree.lua @@ -0,0 +1,11 @@ +return { + { + 'nvim-tree/nvim-tree.lua', + opts = { + sort_by = "case_sensitive", + view = { width = 30, }, + renderer = { group_empty = true, }, + filters = { dotfiles = true, }, + } + } +} diff --git a/lua/custom/plugins/toggleterm.lua b/lua/custom/plugins/toggleterm.lua new file mode 100644 index 00000000..3ad93082 --- /dev/null +++ b/lua/custom/plugins/toggleterm.lua @@ -0,0 +1,26 @@ +return { + { + 'akinsho/toggleterm.nvim', + opts = { + version = "*", + size = 20, + open_mapping = [[c-\]], + hide_numbers = true, + shading_factor = 2, + start_in_insert = true, + insert_mappings = true, + persist_size = true, + direction = "float", + close_on_exit = true, + shel = vim.o.shell, + float_opts = { + border = "curved", + winblend = 0, + highlights = { + border = "Normal", + background = "Normal", + }, + }, + } + } +} diff --git a/lua/custom/plugins/treesj.lua b/lua/custom/plugins/treesj.lua new file mode 100644 index 00000000..478417ba --- /dev/null +++ b/lua/custom/plugins/treesj.lua @@ -0,0 +1,7 @@ +return { + { + 'Wansmer/treesj', + dependencies = { 'nvim-treesitter/nvim-treesitter' }, + opts = {}, + }, +}