Update files

This commit is contained in:
Chris
2026-05-04 13:43:39 +01:00
parent 086682194b
commit 35e45b9fd5
3 changed files with 173 additions and 150 deletions
+30 -27
View File
@@ -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('InsertLeave', {
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 leaving insert mode
nested = true, -- Allow other autocommands to run after this one
}) })
vim.api.nvim_create_autocmd('SwapExists', { vim.api.nvim_create_autocmd('SwapExists', {
@@ -118,51 +120,53 @@ vim.api.nvim_create_autocmd('SwapExists', {
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 has_changes = true
elseif (status == "??" or status == "!!") and config.track_untracked then elseif (status == '??' or status == '!!') and config.track_untracked then
if config.include_dirs then if config.include_dirs then
for _, dir in ipairs(config.include_dirs) do for _, dir in ipairs(config.include_dirs) do
if file:sub(1, #dir) == dir then if file:sub(1, #dir) == dir then
@@ -178,7 +182,7 @@ vim.api.nvim_create_autocmd('SwapExists', {
return has_changes, base return has_changes, base
end 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()
@@ -187,17 +191,17 @@ vim.api.nvim_create_autocmd('SwapExists', {
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 end
local add_cmd = " add -A" local add_cmd = ' add -A'
os.execute(git_base .. add_cmd) os.execute(git_base .. add_cmd)
os.execute(git_base .. " commit -m " .. vim.fn.shellescape(msg)) os.execute(git_base .. ' commit -m ' .. vim.fn.shellescape(msg))
os.execute(git_base .. " push") os.execute(git_base .. ' push')
print("\nChanges committed.") print '\nChanges committed.'
end end
end end
break break
@@ -206,5 +210,4 @@ vim.api.nvim_create_autocmd('SwapExists', {
end, end,
}) })
require('helpers').edit_cf('a', '/lua/autocmd.lua') require('helpers').edit_cf('a', '/lua/autocmd.lua')
+6 -1
View File
@@ -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 = {
+15
View File
@@ -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,