Skip to content

Commit

Permalink
chore: adding snacks and dooing nvim
Browse files Browse the repository at this point in the history
  • Loading branch information
shubham-cpp committed Dec 7, 2024
1 parent 51f4145 commit ed7f7b1
Show file tree
Hide file tree
Showing 17 changed files with 345 additions and 88 deletions.
2 changes: 1 addition & 1 deletion .config/nvim-lazy/lua/plugins/ai.lua
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ return {
env = {
url = "https://glhf.chat",
api_key = function()
get_age_credentials("glhf.age")
return get_age_credentials("glhf.age")
end,
chat_url = "/api/openai/v1/chat/completions",
},
Expand Down
52 changes: 52 additions & 0 deletions .config/nvim-lazy/lua/plugins/treesitter.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---@type LazySpec
return {
"nvim-treesitter/nvim-treesitter",
opts = {
textobjects = {
move = {
enable = true,
goto_next_start = {
["]f"] = "@function.outer",
["]c"] = "@class.outer",
["]a"] = "@parameter.inner",
["]l"] = "@loop.*",
},
goto_next_end = {
["]F"] = "@function.outer",
["]C"] = "@class.outer",
["]A"] = "@parameter.inner",
["]L"] = "@loop.*",
},
goto_previous_start = {
["[f"] = "@function.outer",
["[c"] = "@class.outer",
["[a"] = "@parameter.inner",
},
goto_previous_end = {
["[F"] = "@function.outer",
["[C"] = "@class.outer",
["[A"] = "@parameter.inner",
},
goto_next = {
["]i"] = "@conditional.outer",
},
goto_previous = {
["[i"] = "@conditional.outer",
},
},
swap = {
enable = true,
swap_next = {
["<localleader>k"] = { query = "@block.outer", desc = "Swap next block" },
["<localleader>f"] = { query = "@function.outer", desc = "Swap next function" },
["<localleader>a"] = { query = "@parameter.inner", desc = "Swap next argument" },
},
swap_previous = {
["<localleader>K"] = { query = "@block.outer", desc = "Swap previous block" },
["<localleader>F"] = { query = "@function.outer", desc = "Swap previous function" },
["<localleader>A"] = { query = "@parameter.inner", desc = "Swap previous argument" },
},
},
},
},
}
10 changes: 10 additions & 0 deletions .config/nvim/after/plugin/autocommands.lua
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ vim.api.nvim_create_autocmd('TermOpen', {
end,
})

vim.api.nvim_create_autocmd('FileType', {
group = au_term,
pattern = 'toggleterm',
desc = 'fix: to disable foldexpr for terminal to fix this issue. Takes too much time to open terminal.',
callback = function()
vim.opt_local.foldexpr = ''
vim.opt_local.foldmethod = 'manual'
end,
})

vim.api.nvim_create_autocmd('FileType', {
group = au_buffer,
pattern = 'lazy',
Expand Down
2 changes: 1 addition & 1 deletion .config/nvim/lua/plugins/autopairs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
return {
'windwp/nvim-autopairs',
event = 'InsertEnter',
enabled = false,
enabled = true,
config = require('plugins.config.autopairs').config,
}
2 changes: 1 addition & 1 deletion .config/nvim/lua/plugins/avante.lua
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ return {
env = {
url = 'https://glhf.chat',
api_key = function()
get_age_credentials 'glhf.age'
return get_age_credentials 'glhf.age'
end,
chat_url = '/api/openai/v1/chat/completions',
},
Expand Down
150 changes: 148 additions & 2 deletions .config/nvim/lua/plugins/config/autopairs.lua
Original file line number Diff line number Diff line change
@@ -1,19 +1,165 @@
local M = {}

M.config = function(_, opts)
local function rule_add_spaces_between_paren()
local npairs = require 'nvim-autopairs'
local Rule = require 'nvim-autopairs.rule'
local cond = require 'nvim-autopairs.conds'

local brackets = { { '(', ')' }, { '[', ']' }, { '{', '}' } }
npairs.add_rules({
-- Rule for a pair with left-side ' ' and right side ' '
Rule(' ', ' ')
-- Pair will only occur if the conditional function returns true
:with_pair(function(opts)
-- We are checking if we are inserting a space in (), [], or {}
local pair = opts.line:sub(opts.col - 1, opts.col)
return vim.tbl_contains({
brackets[1][1] .. brackets[1][2],
brackets[2][1] .. brackets[2][2],
brackets[3][1] .. brackets[3][2],
}, pair)
end)
:with_move(cond.none())
:with_cr(cond.none())
-- We only want to delete the pair of spaces when the cursor is as such: ( | )
:with_del(function(opts)
local col = vim.api.nvim_win_get_cursor(0)[2]
local context = opts.line:sub(col - 1, col + 2)
return vim.tbl_contains({
brackets[1][1] .. ' ' .. brackets[1][2],
brackets[2][1] .. ' ' .. brackets[2][2],
brackets[3][1] .. ' ' .. brackets[3][2],
}, context)
end),
})
-- For each pair of brackets we will add another rule
for _, bracket in pairs(brackets) do
npairs.add_rules({
-- Each of these rules is for a pair with left-side '( ' and right-side ' )' for each bracket type
Rule(bracket[1] .. ' ', ' ' .. bracket[2])
:with_pair(cond.none())
:with_move(function(opts)
return opts.char == bracket[2]
end)
:with_del(cond.none())
:use_key(bracket[2])
-- Removes the trailing whitespace that can occur without this
:replace_map_cr(function(_)
return '<C-c>2xi<CR><C-c>O'
end),
})
end
end

local function rule_add_space_on_equal()
local Rule = require 'nvim-autopairs.rule'
local cond = require 'nvim-autopairs.conds'
Rule('=', '')
:with_pair(cond.not_inside_quote())
:with_pair(function(opts)
local last_char = opts.line:sub(opts.col - 1, opts.col - 1)
if last_char:match '[%w%=%s]' then
return true
end
return false
end)
:replace_endpair(function(opts)
local prev_2char = opts.line:sub(opts.col - 2, opts.col - 1)
local next_char = opts.line:sub(opts.col, opts.col)
next_char = next_char == ' ' and '' or ' '
if prev_2char:match '%w$' then
return '<bs> =' .. next_char
end
if prev_2char:match '%=$' then
return next_char
end
if prev_2char:match '=' then
return '<bs><bs>=' .. next_char
end
return ''
end)
:set_end_pair_length(0)
:with_move(cond.none())
:with_del(cond.none())
end
-- https://github.com/rstacruz/vim-closer/blob/master/autoload/closer.vim
local get_closing_for_line = function(line)
local i = -1
local clo = ''

while true do
i, _ = string.find(line, '[%(%)%{%}%[%]]', i + 1)
if i == nil then
break
end
local ch = string.sub(line, i, i)
local st = string.sub(clo, 1, 1)

if ch == '{' then
clo = '}' .. clo
elseif ch == '}' then
if st ~= '}' then
return ''
end
clo = string.sub(clo, 2)
elseif ch == '(' then
clo = ')' .. clo
elseif ch == ')' then
if st ~= ')' then
return ''
end
clo = string.sub(clo, 2)
elseif ch == '[' then
clo = ']' .. clo
elseif ch == ']' then
if st ~= ']' then
return ''
end
clo = string.sub(clo, 2)
end
end

return clo
end

local function rule_expand_multiple_on_enter(autopairs)
local Rule = require 'nvim-autopairs.rule'

autopairs.remove_rule '('
autopairs.remove_rule '{'
autopairs.remove_rule '['

autopairs.add_rule(Rule('[%(%{%[]', '')
:use_regex(true)
:replace_endpair(function(opts)
return get_closing_for_line(opts.line)
end)
:end_wise(function(opts)
-- Do not endwise if there is no closing
return get_closing_for_line(opts.line) ~= ''
end))
end

function M.config(_, opts)
local options = vim.tbl_deep_extend('force', {
disable_filetype = { 'TelescopePrompt' },
ignored_next_char = '[%w%.]',
check_ts = true,
check_ts = false,
map_c_w = true,
fast_wrap = {},
}, opts)
local npairs = require 'nvim-autopairs'
npairs.setup(options)

rule_add_spaces_between_paren()
rule_add_space_on_equal()
-- rule_expand_multiple_on_enter(npairs)

local ok, cmp = pcall(require, 'cmp')
if ok then
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
end
end

return M
2 changes: 1 addition & 1 deletion .config/nvim/lua/plugins/dadbod.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ return {
'DBUIFindBuffer',
},
keys = {
{ '<leader>td', '<cmd>DBUIToggle<CR>', desc = 'Toggle DBUI' },
{ '<leader>tD', '<cmd>DBUIToggle<CR>', desc = 'Toggle DBUI' },
},
init = function()
-- Your DBUI configuration
Expand Down
15 changes: 15 additions & 0 deletions .config/nvim/lua/plugins/dooing.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---@type LazySpec
return {
'atiladefreitas/dooing',
keys = { '<leader>td' },
cmd = { 'Dooing' },
opts = {
-- Keymaps
keymaps = {
toggle_window = '<leader>td',
},
},
config = function(_, opts)
require('dooing').setup(opts)
end,
}
1 change: 0 additions & 1 deletion .config/nvim/lua/plugins/faster.lua

This file was deleted.

6 changes: 6 additions & 0 deletions .config/nvim/lua/plugins/git-conflicts.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---@type LazySpec
return {
'akinsho/git-conflict.nvim',
version = '*',
config = true,
}
25 changes: 12 additions & 13 deletions .config/nvim/lua/plugins/mini/files.lua
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ return {
end,
})
local events = {
['lsp-file-operations.did-rename'] = { { 'MiniFilesActionRename', 'MiniFilesActionMove' }, 'Renamed' },
-- ['lsp-file-operations.did-rename'] = { { 'MiniFilesActionRename', 'MiniFilesActionMove' }, 'Renamed' },
['lsp-file-operations.will-create'] = { 'MiniFilesActionCreate', 'Create' },
['lsp-file-operations.will-delete'] = { 'MiniFilesActionDelete', 'Delete' },
}
Expand All @@ -113,17 +113,16 @@ return {
})
end

-- vim.api.nvim_create_autocmd('User', {
-- pattern = 'MiniFilesActionRename',
-- group = au_group,
-- desc = 'LSP Rename file',
-- callback = function(event)
-- local ok, rename = pcall(require, 'lsp-file-operations.did-rename')
-- if not ok then
-- return
-- end
-- rename.callback({ old_name = event.data.from, new_name = event.data.to })
-- end,
-- })
vim.api.nvim_create_autocmd('User', {
pattern = 'MiniFilesActionRename',
group = au_group,
desc = 'LSP Rename file',
callback = function(event)
if not Snacks then
return
end
Snacks.rename.on_rename_file(event.data.from, event.data.to)
end,
})
end,
}
1 change: 1 addition & 0 deletions .config/nvim/lua/plugins/mini/pairs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
return {
'echasnovski/mini.pairs',
event = { 'InsertEnter', 'CmdlineEnter' },
enabled = false,
opts = {
modes = { insert = true, command = true, terminal = false },
-- skip autopair when next character is one of these
Expand Down
2 changes: 1 addition & 1 deletion .config/nvim/lua/plugins/mini/surround.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
return {
'echasnovski/mini.surround',
version = '*',
enabled = true,
enabled = false,
keys = {
{ 'gz', '', desc = '+surround' },
{ 'ys', mode = { 'n', 'v' }, desc = 'Surround add' },
Expand Down
Loading

0 comments on commit ed7f7b1

Please sign in to comment.