Compare commits
3 Commits
086682194b
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5dd9b59b90 | |||
| 1768a69cf1 | |||
| 35e45b9fd5 |
+154
-151
@@ -18,12 +18,14 @@ vim.api.nvim_create_autocmd('FocusLost', {
|
|||||||
group = autosave_group,
|
group = autosave_group,
|
||||||
pattern = '*',
|
pattern = '*',
|
||||||
command = 'silent! wa', -- Save all files when moving away from the window
|
command = 'silent! wa', -- Save all files when moving away from the window
|
||||||
|
nested = true, -- Allow other autocommands to run after this one
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('InsertLeave', {
|
vim.api.nvim_create_autocmd('BufLeave', {
|
||||||
group = autosave_group,
|
group = autosave_group,
|
||||||
pattern = '*',
|
pattern = '*',
|
||||||
command = 'silent! wa', -- Save all files when leaving insert mode
|
command = 'silent! wa', -- Save all files when switching buffers
|
||||||
|
nested = true, -- Allow other autocommands to run after this one
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('SwapExists', {
|
vim.api.nvim_create_autocmd('SwapExists', {
|
||||||
@@ -35,176 +37,177 @@ vim.api.nvim_create_autocmd('SwapExists', {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- vim.api.nvim_create_autocmd('TextChanged', {
|
-- vim.api.nvim_create_autocmd('TextChanged', {
|
||||||
-- group = autosave_group,
|
-- group = autosave_group,
|
||||||
-- pattern = '*',
|
-- pattern = '*',
|
||||||
-- command = 'silent! wa', -- Save all files when text is changed
|
-- command = 'silent! wa', -- Save all files when text is changed
|
||||||
-- })
|
-- })
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('User', {
|
vim.api.nvim_create_autocmd('User', {
|
||||||
pattern = 'OilActionsPost',
|
pattern = 'OilActionsPost',
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
if event.data.actions.type == 'move' then
|
if event.data.actions.type == 'move' then
|
||||||
Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url)
|
Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local fidget_group = vim.api.nvim_create_augroup('CodeCompanionFidgetHooks', { clear = true })
|
local fidget_group = vim.api.nvim_create_augroup('CodeCompanionFidgetHooks', { clear = true })
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ 'User' }, {
|
vim.api.nvim_create_autocmd({ 'User' }, {
|
||||||
pattern = 'CodeCompanionRequestStarted',
|
pattern = 'CodeCompanionRequestStarted',
|
||||||
group = fidget_group,
|
group = fidget_group,
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
local FidgetHelper = require 'utils.fidget_helper'
|
local FidgetHelper = require 'utils.fidget_helper'
|
||||||
-- Pass event instead of request if the callback receives the full event object
|
-- Pass event instead of request if the callback receives the full event object
|
||||||
local handle = FidgetHelper:create_progress_handle(event)
|
local handle = FidgetHelper:create_progress_handle(event)
|
||||||
FidgetHelper:store_progress_handle(event.data.id, handle)
|
FidgetHelper:store_progress_handle(event.data.id, handle)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ 'User' }, {
|
vim.api.nvim_create_autocmd({ 'User' }, {
|
||||||
pattern = 'CodeCompanionRequestFinished',
|
pattern = 'CodeCompanionRequestFinished',
|
||||||
group = fidget_group,
|
group = fidget_group,
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
local FidgetHelper = require 'utils.fidget_helper'
|
local FidgetHelper = require 'utils.fidget_helper'
|
||||||
local handle = FidgetHelper:pop_progress_handle(event.data.id)
|
local handle = FidgetHelper:pop_progress_handle(event.data.id)
|
||||||
if handle then
|
if handle then
|
||||||
FidgetHelper:report_exit_status(handle, event)
|
FidgetHelper:report_exit_status(handle, event)
|
||||||
handle:finish()
|
handle:finish()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- vim.api.nvim_create_autocmd('BufEnter', {
|
-- vim.api.nvim_create_autocmd('BufEnter', {
|
||||||
-- callback = function(event)
|
-- callback = function(event)
|
||||||
-- local windows = vim.api.nvim_list_wins()
|
-- local windows = vim.api.nvim_list_wins()
|
||||||
--
|
--
|
||||||
-- for _, window in ipairs(windows) do
|
-- for _, window in ipairs(windows) do
|
||||||
-- local bufnr = vim.api.nvim_win_get_buf(window)
|
-- local bufnr = vim.api.nvim_win_get_buf(window)
|
||||||
-- local ft = vim.api.nvim_get_option_value('filetype', { buf = bufnr })
|
-- local ft = vim.api.nvim_get_option_value('filetype', { buf = bufnr })
|
||||||
-- if vim.api.nvim_get_option_value('buflisted', { buf = bufnr })
|
-- if vim.api.nvim_get_option_value('buflisted', { buf = bufnr })
|
||||||
-- or ft == 'oil'
|
-- or ft == 'oil'
|
||||||
-- or ft == 'snacks_dashboard' then
|
-- or ft == 'snacks_dashboard' then
|
||||||
-- return
|
-- return
|
||||||
-- end
|
-- end
|
||||||
-- end
|
-- end
|
||||||
-- vim.cmd 'qa'
|
-- vim.cmd 'qa'
|
||||||
-- end,
|
-- end,
|
||||||
-- })
|
-- })
|
||||||
|
|
||||||
local modes_group = vim.api.nvim_create_augroup('modes', { clear = true })
|
local modes_group = vim.api.nvim_create_augroup('modes', { clear = true })
|
||||||
vim.api.nvim_create_autocmd('FocusLost', {
|
vim.api.nvim_create_autocmd('FocusLost', {
|
||||||
group = modes_group,
|
group = modes_group,
|
||||||
pattern = '*',
|
pattern = '*',
|
||||||
command = 'call feedkeys("\\<Esc>")',
|
command = 'call feedkeys("\\<Esc>")',
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('BufNewFile', {
|
vim.api.nvim_create_autocmd('BufNewFile', {
|
||||||
group = modes_group,
|
group = modes_group,
|
||||||
pattern = '*',
|
pattern = '*',
|
||||||
command = 'call feedkeys("i")',
|
command = 'call feedkeys("i")',
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Reload LuaSnip snippets when saving files in the snippets directory
|
-- Reload LuaSnip snippets when saving files in the snippets directory
|
||||||
local snippets_dir = vim.fn.stdpath 'config' .. '/lua/snippets'
|
local snippets_dir = vim.fn.stdpath 'config' .. '/lua/snippets'
|
||||||
vim.api.nvim_create_autocmd('BufWritePost', {
|
vim.api.nvim_create_autocmd('BufWritePost', {
|
||||||
pattern = snippets_dir .. '/*.json', -- Adjust the path to match your snippets directory
|
pattern = snippets_dir .. '/*.json', -- Adjust the path to match your snippets directory
|
||||||
desc = 'Reload LuaSnip snippets on save',
|
desc = 'Reload LuaSnip snippets on save',
|
||||||
callback = function()
|
callback = function()
|
||||||
require('luasnip.loaders.from_vscode').lazy_load { paths = { snippets_dir } }
|
require('luasnip.loaders.from_vscode').lazy_load { paths = { snippets_dir } }
|
||||||
vim.notify('Snippets reloaded!', vim.log.levels.INFO)
|
vim.notify('Snippets reloaded!', vim.log.levels.INFO)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local configs = {
|
local configs = {
|
||||||
{
|
{
|
||||||
path = os.getenv("HOME") .. "/.config/nixos",
|
path = os.getenv 'HOME' .. '/.config/nixos',
|
||||||
worktree = nil,
|
worktree = nil,
|
||||||
git_dir = nil,
|
git_dir = nil,
|
||||||
track_untracked = false,
|
track_untracked = false,
|
||||||
force_add = false
|
force_add = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path = os.getenv("HOME") .. "/.config/nvim",
|
path = os.getenv 'HOME' .. '/.config/nvim',
|
||||||
worktree = nil,
|
worktree = nil,
|
||||||
git_dir = nil,
|
git_dir = nil,
|
||||||
track_untracked = false,
|
track_untracked = false,
|
||||||
force_add = false
|
force_add = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path = os.getenv("HOME"),
|
path = os.getenv 'HOME',
|
||||||
worktree = os.getenv("HOME"),
|
worktree = os.getenv 'HOME',
|
||||||
git_dir = os.getenv("HOME") .. "/.config/dotfiles/.git",
|
git_dir = os.getenv 'HOME' .. '/.config/dotfiles/.git',
|
||||||
track_untracked = true,
|
track_untracked = true,
|
||||||
force_add = true, -- Handles ignored files in dotfiles
|
force_add = true, -- Handles ignored files in dotfiles
|
||||||
include_dirs = { ".config", ".local/bin", ".local/share" }
|
include_dirs = { '.config', '.local/bin', '.local/share' },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local function get_git_status(config)
|
local function get_git_status(config)
|
||||||
local base = "git"
|
local base = 'git'
|
||||||
if config.git_dir and config.worktree then
|
if config.git_dir and config.worktree then
|
||||||
base = string.format("git --git-dir=%s --worktree=%s", config.git_dir, config.worktree)
|
base = string.format('git --git-dir=%s --worktree=%s', config.git_dir, config.worktree)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Check modified and untracked (including ignored if force_add is true)
|
-- Check modified and untracked (including ignored if force_add is true)
|
||||||
local cmd = base .. " status --porcelain"
|
local cmd = base .. ' status --porcelain'
|
||||||
if config.force_add then cmd = cmd .. " --ignored" end
|
if config.force_add then
|
||||||
|
cmd = cmd .. ' --ignored'
|
||||||
|
end
|
||||||
|
|
||||||
local handle = io.popen(cmd)
|
local handle = io.popen(cmd)
|
||||||
local result = handle:read("*a")
|
local result = handle:read '*a'
|
||||||
handle:close()
|
handle:close()
|
||||||
|
|
||||||
local has_changes = false
|
local has_changes = false
|
||||||
for line in result:gmatch("[^\r\n]+") do
|
for line in result:gmatch '[^\r\n]+' do
|
||||||
local status = line:sub(1, 2)
|
local status = line:sub(1, 2)
|
||||||
local file = line:sub(4)
|
local file = line:sub(4)
|
||||||
|
|
||||||
if status:match("[MAR]") then
|
if status:match '[MAR]' then
|
||||||
|
has_changes = true
|
||||||
|
elseif (status == '??' or status == '!!') and config.track_untracked then
|
||||||
|
if config.include_dirs then
|
||||||
|
for _, dir in ipairs(config.include_dirs) do
|
||||||
|
if file:sub(1, #dir) == dir then
|
||||||
has_changes = true
|
has_changes = true
|
||||||
elseif (status == "??" or status == "!!") and config.track_untracked then
|
break
|
||||||
if config.include_dirs then
|
|
||||||
for _, dir in ipairs(config.include_dirs) do
|
|
||||||
if file:sub(1, #dir) == dir then
|
|
||||||
has_changes = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
has_changes = true
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return has_changes, base
|
else
|
||||||
|
has_changes = true
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return has_changes, base
|
||||||
|
end
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("VimLeavePre", {
|
vim.api.nvim_create_autocmd('VimLeavePre', {
|
||||||
callback = function()
|
callback = function()
|
||||||
local cwd = vim.fn.getcwd()
|
local cwd = vim.fn.getcwd()
|
||||||
|
|
||||||
for _, config in ipairs(configs) do
|
for _, config in ipairs(configs) do
|
||||||
if cwd:sub(1, #config.path) == config.path then
|
if cwd:sub(1, #config.path) == config.path then
|
||||||
local has_changes, git_base = get_git_status(config)
|
local has_changes, git_base = get_git_status(config)
|
||||||
|
|
||||||
if has_changes then
|
if has_changes then
|
||||||
local confirm = vim.fn.confirm("Uncommitted changes in managed path. Commit?", "&Yes\n&No", 2)
|
local confirm = vim.fn.confirm('Uncommitted changes in managed path. Commit?', '&Yes\n&No', 2)
|
||||||
if confirm == 1 then
|
if confirm == 1 then
|
||||||
local msg = vim.fn.input("Commit message: ", "chore: update files")
|
local msg = vim.fn.input('Commit message: ', 'chore: update files')
|
||||||
if msg ~= "" then
|
if msg ~= '' then
|
||||||
msg = "Update files"
|
msg = 'Update files'
|
||||||
end
|
|
||||||
local add_cmd = " add -A"
|
|
||||||
os.execute(git_base .. add_cmd)
|
|
||||||
os.execute(git_base .. " commit -m " .. vim.fn.shellescape(msg))
|
|
||||||
os.execute(git_base .. " push")
|
|
||||||
print("\nChanges committed.")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end
|
end
|
||||||
|
local add_cmd = ' add -A'
|
||||||
|
os.execute(git_base .. add_cmd)
|
||||||
|
os.execute(git_base .. ' commit -m ' .. vim.fn.shellescape(msg))
|
||||||
|
os.execute(git_base .. ' push')
|
||||||
|
print '\nChanges committed.'
|
||||||
end
|
end
|
||||||
end,
|
end
|
||||||
})
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
require('helpers').edit_cf('a', '/lua/autocmd.lua')
|
||||||
require('helpers').edit_cf('a', '/lua/autocmd.lua')
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
'ricardoramirezr/blade-nav.nvim',
|
||||||
|
dependencies = {
|
||||||
|
'saghen/blink.cmp',
|
||||||
|
},
|
||||||
|
ft = { 'blade', 'php' },
|
||||||
|
}
|
||||||
@@ -52,10 +52,16 @@ return {
|
|||||||
},
|
},
|
||||||
|
|
||||||
sources = {
|
sources = {
|
||||||
default = { 'lsp', 'path', 'snippets', 'lazydev' },
|
default = { 'lsp', 'path', 'snippets', 'lazydev', 'blade-nav' },
|
||||||
providers = {
|
providers = {
|
||||||
lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 },
|
lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 },
|
||||||
-- avante = { module = 'blink-cmp-avante', name = 'Avante', opts = {} },
|
-- avante = { module = 'blink-cmp-avante', name = 'Avante', opts = {} },
|
||||||
|
['blade-nav'] = {
|
||||||
|
module = 'blade-nav.blink',
|
||||||
|
opts = {
|
||||||
|
clost_tag_on_complete = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
per_filetype = {
|
per_filetype = {
|
||||||
codecompanion = { 'codecompanion' },
|
codecompanion = { 'codecompanion' },
|
||||||
|
|||||||
+6
-1
@@ -115,6 +115,11 @@ return {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vim.lsp.phpactor = {
|
||||||
|
cmd = { 'phpactor', 'language-server' },
|
||||||
|
filetypes = { 'php' },
|
||||||
|
}
|
||||||
|
|
||||||
-- Enable the following language servers
|
-- Enable the following language servers
|
||||||
--
|
--
|
||||||
-- Add any additional override configuration in the following tables. Available keys are:
|
-- Add any additional override configuration in the following tables. Available keys are:
|
||||||
@@ -139,7 +144,7 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
phpactor = {},
|
-- phpactor = {},
|
||||||
vtsls = {
|
vtsls = {
|
||||||
settings = {
|
settings = {
|
||||||
vtsls = {
|
vtsls = {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ return {
|
|||||||
'javascript',
|
'javascript',
|
||||||
'typescript',
|
'typescript',
|
||||||
'css',
|
'css',
|
||||||
|
'blade',
|
||||||
}
|
}
|
||||||
require('nvim-treesitter').install(langs)
|
require('nvim-treesitter').install(langs)
|
||||||
|
|
||||||
|
|||||||
@@ -242,6 +242,21 @@ local PROJECTS = {
|
|||||||
laravel_makes()
|
laravel_makes()
|
||||||
map('yrn ', '!cd frontend && yarn ', { desc = 'Run yarn script' }, 'c')
|
map('yrn ', '!cd frontend && yarn ', { desc = 'Run yarn script' }, 'c')
|
||||||
map('<Leader>pm', ':vendor/bin/sail composer migrate<CR>')
|
map('<Leader>pm', ':vendor/bin/sail composer migrate<CR>')
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
||||||
|
pattern = { '*.php', '.env', '.graphql' },
|
||||||
|
callback = function()
|
||||||
|
vim.fn.jobstart('vendor/bin/sail artisan octane:reload', { stdout_buffered = true })
|
||||||
|
vim.fn.jobstart('vendor/bin/sail artisan horizon:terminate', { stdout_buffered = true })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
||||||
|
pattern = { '.graphql' },
|
||||||
|
callback = function()
|
||||||
|
vim.fn.jobstart('vendor/bin/sail artisan lighthouse:clear-cache', { stdout_buffered = true })
|
||||||
|
end,
|
||||||
|
})
|
||||||
end,
|
end,
|
||||||
|
|
||||||
default = function() end,
|
default = function() end,
|
||||||
|
|||||||
Reference in New Issue
Block a user