Compare commits
12 Commits
20d080e223
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd2349c1ba | ||
|
|
b4fd6c1988 | ||
| 8d1278b84a | |||
| e4a935de25 | |||
| d8732c5e2e | |||
| ba41c9a054 | |||
| 894d2fcabf | |||
| 40adefb70c | |||
| faea500177 | |||
| 6f74961fc6 | |||
| cc7139c2ff | |||
|
|
bac22a5657 |
@@ -30,7 +30,7 @@ vim.api.nvim_create_autocmd('SwapExists', {
|
|||||||
desc = 'Always choose to delete the swap file, files are saved automatically',
|
desc = 'Always choose to delete the swap file, files are saved automatically',
|
||||||
group = vim.api.nvim_create_augroup('NoSwaps', { clear = true }),
|
group = vim.api.nvim_create_augroup('NoSwaps', { clear = true }),
|
||||||
callback = function(args)
|
callback = function(args)
|
||||||
vim.cmd("let v:swapchoice = 'd'")
|
vim.cmd "let v:swapchoice = 'd'"
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -116,4 +116,95 @@ vim.api.nvim_create_autocmd('BufWritePost', {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local configs = {
|
||||||
|
{
|
||||||
|
path = os.getenv("HOME") .. "/.config/nixos",
|
||||||
|
worktree = nil,
|
||||||
|
git_dir = nil,
|
||||||
|
track_untracked = false,
|
||||||
|
force_add = false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path = os.getenv("HOME") .. "/.config/nvim",
|
||||||
|
worktree = nil,
|
||||||
|
git_dir = nil,
|
||||||
|
track_untracked = false,
|
||||||
|
force_add = false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path = os.getenv("HOME"),
|
||||||
|
worktree = os.getenv("HOME"),
|
||||||
|
git_dir = os.getenv("HOME") .. "/.config/dotfiles/.git",
|
||||||
|
track_untracked = true,
|
||||||
|
force_add = true, -- Handles ignored files in dotfiles
|
||||||
|
include_dirs = { ".config", ".local/bin", ".local/share" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
local function get_git_status(config)
|
||||||
|
local base = "git"
|
||||||
|
if config.git_dir and config.worktree then
|
||||||
|
base = string.format("git --git-dir=%s --worktree=%s", config.git_dir, config.worktree)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check modified and untracked (including ignored if force_add is true)
|
||||||
|
local cmd = base .. " status --porcelain"
|
||||||
|
if config.force_add then cmd = cmd .. " --ignored" end
|
||||||
|
|
||||||
|
local handle = io.popen(cmd)
|
||||||
|
local result = handle:read("*a")
|
||||||
|
handle:close()
|
||||||
|
|
||||||
|
local has_changes = false
|
||||||
|
for line in result:gmatch("[^\r\n]+") do
|
||||||
|
local status = line:sub(1, 2)
|
||||||
|
local file = line:sub(4)
|
||||||
|
|
||||||
|
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
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
has_changes = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return has_changes, base
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("VimLeavePre", {
|
||||||
|
callback = function()
|
||||||
|
local cwd = vim.fn.getcwd()
|
||||||
|
|
||||||
|
for _, config in ipairs(configs) do
|
||||||
|
if cwd:sub(1, #config.path) == config.path then
|
||||||
|
local has_changes, git_base = get_git_status(config)
|
||||||
|
|
||||||
|
if has_changes then
|
||||||
|
local confirm = vim.fn.confirm("Uncommitted changes in managed path. Commit?", "&Yes\n&No", 2)
|
||||||
|
if confirm == 1 then
|
||||||
|
local msg = vim.fn.input("Commit message: ", "chore: update files")
|
||||||
|
if msg ~= "" then
|
||||||
|
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
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
require('helpers').edit_cf('a', '/lua/autocmd.lua')
|
require('helpers').edit_cf('a', '/lua/autocmd.lua')
|
||||||
|
|||||||
@@ -257,6 +257,7 @@ vim.keymap.set('n', '<Leader>sGS', '<CMD>Telescope git_stash<CR>', { desc = 'Sea
|
|||||||
vim.keymap.set('n', '<Leader>]', '<CMD>cnext<CR>', { desc = 'Next item in quickfix list' })
|
vim.keymap.set('n', '<Leader>]', '<CMD>cnext<CR>', { desc = 'Next item in quickfix list' })
|
||||||
vim.keymap.set('n', '<Leader>[', '<CMD>cprevious<CR>', { desc = 'Previous item in quickfix list' })
|
vim.keymap.set('n', '<Leader>[', '<CMD>cprevious<CR>', { desc = 'Previous item in quickfix list' })
|
||||||
vim.keymap.set('n', 'gd', '<CMD>Telescope lsp_definitions<CR>', { desc = 'Go to definition' })
|
vim.keymap.set('n', 'gd', '<CMD>Telescope lsp_definitions<CR>', { desc = 'Go to definition' })
|
||||||
|
vim.keymap.set('n', '<Leader>r', '<CMD>e!<CR>', { desc = 'Reload buffer' })
|
||||||
|
|
||||||
|
|
||||||
local function open_test()
|
local function open_test()
|
||||||
|
|||||||
@@ -4,19 +4,24 @@ return {
|
|||||||
-- change the command in the config to whatever the name of that colorscheme is.
|
-- change the command in the config to whatever the name of that colorscheme is.
|
||||||
--
|
--
|
||||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||||
|
'AlphaTechnolog/pywal.nvim',
|
||||||
|
dependencies = {
|
||||||
'folke/tokyonight.nvim',
|
'folke/tokyonight.nvim',
|
||||||
|
},
|
||||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
priority = 1000, -- Make sure to load this before all the other start plugins.
|
||||||
config = function()
|
config = function()
|
||||||
---@diagnostic disable-next-line: missing-fields
|
---@diagnostic disable-next-line: missing-fields
|
||||||
require('tokyonight').setup {
|
require('tokyonight').setup()
|
||||||
styles = {
|
|
||||||
comments = { italic = false }, -- Disable italics in comments
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Load the colorscheme here.
|
|
||||||
-- Like many other themes, this one has different styles, and you could load
|
|
||||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
|
||||||
vim.cmd.colorscheme 'tokyonight-night'
|
vim.cmd.colorscheme 'tokyonight-night'
|
||||||
|
|
||||||
|
-- Check if wal directory exists otherwise use tokyo
|
||||||
|
local handle = io.popen 'ls -d $HOME/.cache/wal 2>/dev/null'
|
||||||
|
local result = handle:read '*a'
|
||||||
|
handle:close()
|
||||||
|
|
||||||
|
if result ~= '' then
|
||||||
|
require('pywal').setup()
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
3
lua/plugins/pywal.lua
Normal file
3
lua/plugins/pywal.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
'AlphaTechnolog/pywal.nvim',
|
||||||
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
-- Highlight, edit, and navigate code
|
-- Highlight, edit, and navigate code
|
||||||
return {
|
return {
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
branch = 'main',
|
||||||
build = ':TSUpdate',
|
build = ':TSUpdate',
|
||||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
|
||||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
opts = {
|
config = function()
|
||||||
ensure_installed = {
|
local langs = {
|
||||||
'bash',
|
'bash',
|
||||||
'c',
|
'c',
|
||||||
'diff',
|
'diff',
|
||||||
@@ -17,22 +17,16 @@ return {
|
|||||||
'query',
|
'query',
|
||||||
'vim',
|
'vim',
|
||||||
'vimdoc',
|
'vimdoc',
|
||||||
},
|
'php',
|
||||||
-- Autoinstall languages that are not installed
|
'yaml',
|
||||||
auto_install = true,
|
}
|
||||||
highlight = {
|
require('nvim-treesitter').install(langs)
|
||||||
enable = true,
|
|
||||||
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
-- If you are experiencing weird indenting issues, add the language to
|
pattern = langs,
|
||||||
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
|
callback = function()
|
||||||
additional_vim_regex_highlighting = { 'ruby' },
|
vim.treesitter.start()
|
||||||
},
|
end,
|
||||||
indent = { enable = true, disable = { 'ruby' } },
|
})
|
||||||
},
|
end,
|
||||||
-- There are additional nvim-treesitter modules that you can use to interact
|
|
||||||
-- with nvim-treesitter. You should go explore a few and see what interests you:
|
|
||||||
--
|
|
||||||
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
|
|
||||||
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
|
|
||||||
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ return {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
s(etr('return ', 'Add semicolon after return'), fmta('return #~;', { i(0) })),
|
s(etr('return ', 'Add semicolon after return'), fmta('return #~;', { i(0) })),
|
||||||
s(atr(' use ', 'Add use to function'), fmta(' use (#~)', { i(0) })),
|
-- s(atr(' use ', 'Add use to function'), fmta(' use (#~)', { i(0) })),
|
||||||
s(etr('rt ', 'return alias'), fmta('return #~;', { i(0) })),
|
s(etr('rt ', 'return alias'), fmta('return #~;', { i(0) })),
|
||||||
bs(atr('fn ', 'Shorthand function block'), {
|
bs(atr('fn ', 'Shorthand function block'), {
|
||||||
c(1, {
|
c(1, {
|
||||||
|
|||||||
Reference in New Issue
Block a user