diff --git a/nvim/nvim/config/new/init.lua b/nvim/nvim/config/new/init.lua index dd9d4d2..a2f6758 100644 --- a/nvim/nvim/config/new/init.lua +++ b/nvim/nvim/config/new/init.lua @@ -1,7 +1,10 @@ +pcall(require, "impatient") + require "settings" require "plugins" require "colorscheme" require "windows" require "lsp" require "treesitter" +require "utils" diff --git a/nvim/nvim/config/new/lua/plugins.lua b/nvim/nvim/config/new/lua/plugins.lua index 342ee81..72129a8 100644 --- a/nvim/nvim/config/new/lua/plugins.lua +++ b/nvim/nvim/config/new/lua/plugins.lua @@ -40,6 +40,7 @@ packer.init { return packer.startup(function(use) use "wbthomason/packer.nvim" + use 'lewis6991/impatient.nvim' use "tpope/vim-surround" use "tpope/vim-unimpaired" @@ -52,6 +53,7 @@ return packer.startup(function(use) use { { 'nvim-telescope/telescope.nvim', requires = { {'nvim-lua/plenary.nvim'} } }, { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }, + 'stevearc/dressing.nvim', } use "folke/which-key.nvim" use "akinsho/toggleterm.nvim" @@ -71,6 +73,9 @@ return packer.startup(function(use) } use { "lukas-reineke/virt-column.nvim", config = function() require("virt-column").setup() end } + use "lukas-reineke/indent-blankline.nvim" + + use { "lewis6991/gitsigns.nvim", requires = { 'nvim-lua/plenary.nvim' } } if PACKER_BOOTSTRAP then require("packer").sync() diff --git a/nvim/nvim/config/new/lua/settings.lua b/nvim/nvim/config/new/lua/settings.lua index 9b6ce78..ad3ca90 100644 --- a/nvim/nvim/config/new/lua/settings.lua +++ b/nvim/nvim/config/new/lua/settings.lua @@ -60,3 +60,9 @@ keymap("i", "", "", opts) keymap("i", "", "", opts) +vim.cmd [[ augroup highlight_yank + autocmd! + autocmd TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200}) + augroup end +]] + diff --git a/nvim/nvim/config/new/lua/treesitter/indent-line.lua b/nvim/nvim/config/new/lua/treesitter/indent-line.lua new file mode 100644 index 0000000..20f48f7 --- /dev/null +++ b/nvim/nvim/config/new/lua/treesitter/indent-line.lua @@ -0,0 +1,47 @@ +local status_ok, indent_blankline = pcall(require, "indent_blankline") +if not status_ok then + return +end + +vim.g.indent_blankline_buftype_exclude = { "terminal", "nofile" } +vim.g.indent_blankline_filetype_exclude = { + "help", + "startify", + "dashboard", + "packer", + "neogitstatus", + "NvimTree", + "Trouble", +} +vim.g.indentLine_enabled = 1 +vim.g.indent_blankline_char = "▏" +vim.g.indent_blankline_show_trailing_blankline_indent = true +vim.g.indent_blankline_show_first_indent_level = true +vim.g.indent_blankline_use_treesitter = true +vim.g.indent_blankline_show_current_context = true +-- vim.g.indent_blankline_context_patterns = { +-- "class", +-- "return", +-- "function", +-- "method", +-- "^if", +-- "^while", +-- "jsx_element", +-- "^for", +-- "^object", +-- "^table", +-- "block", +-- "arguments", +-- "if_statement", +-- "else_clause", +-- "jsx_element", +-- "jsx_self_closing_element", +-- "try_statement", +-- "catch_clause", +-- "import_statement", +-- "operation_type", +-- } + +indent_blankline.setup({ + show_current_context = true, +}) diff --git a/nvim/nvim/config/new/lua/treesitter/init.lua b/nvim/nvim/config/new/lua/treesitter/init.lua index 85deef1..6b02ecc 100644 --- a/nvim/nvim/config/new/lua/treesitter/init.lua +++ b/nvim/nvim/config/new/lua/treesitter/init.lua @@ -1,2 +1,3 @@ require "treesitter.treesitter" +require "treesitter.indent-line" diff --git a/nvim/nvim/config/new/lua/utils/gitsigns.lua b/nvim/nvim/config/new/lua/utils/gitsigns.lua new file mode 100644 index 0000000..3c77f23 --- /dev/null +++ b/nvim/nvim/config/new/lua/utils/gitsigns.lua @@ -0,0 +1,34 @@ +local status_ok, gitsigns = pcall(require, "gitsigns") +if not status_ok then + return +end + +gitsigns.setup({ + signs = { + add = { hl = "GitSignsAdd", text = "▎", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" }, + change = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, + delete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, + topdelete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, + changedelete = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, + }, + keymaps = { + ['n ]h'] = { expr = true, "&diff ? ']c' : 'Gitsigns next_hunk'"}, + ['n [h'] = { expr = true, "&diff ? '[c' : 'Gitsigns prev_hunk'"}, + + -- Text objects + ['o ih'] = ':Gitsigns select_hunk', + ['x ih'] = ':Gitsigns select_hunk' + }, +}) + +local wk = require("which-key") +wk.register({ + g = { + name = "Git", + p = { "lua require 'gitsigns'.preview_hunk()", "Preview Hunk" }, + r = { "lua require 'gitsigns'.reset_hunk()", "Reset Hunk" }, + R = { "lua require 'gitsigns'.reset_buffer()", "Reset Buffer" }, + }, +}, { + prefix = "", +}) diff --git a/nvim/nvim/config/new/lua/utils/init.lua b/nvim/nvim/config/new/lua/utils/init.lua new file mode 100644 index 0000000..f2bf7fd --- /dev/null +++ b/nvim/nvim/config/new/lua/utils/init.lua @@ -0,0 +1,2 @@ +require "utils.gitsigns" +