update file structure

This commit is contained in:
Kendall Whitman
2026-04-23 11:17:45 -05:00
parent 1aeb550ec7
commit 1e2f5c61da
31 changed files with 3 additions and 725 deletions
+105
View File
@@ -0,0 +1,105 @@
local g = vim.g
local o = vim.o
local keymap = vim.keymap.set
local cmd = vim.cmd
local api = vim.api
-- Leader Key
g.mapleader = " "
-- Disable netrw for Nvim Tree
g.loaded_netrw = 1
g.loaded_netrwPlugin = 1
-- Numbers
o.number = true
o.relativenumber = true
o.numberwidth = 1
-- Clipboard
cmd[[set clipboard+=unnamedplus]]
-- Files
o.swapfile = false
o.backup = false
-- Scroll Offset
o.scrolloff = 15
-- Cursor & Column Lines
o.colorcolumn = "80"
o.cursorline = true
-- Mouse
o.mouse = "a"
-- Spacing
o.tabstop = 2
o.shiftwidth = 2
o.expandtab = true
-- Update Time
o.updatetime = 50
-- Hide Highlighting
cmd[[set nohlsearch]]
-- Indent
keymap("n", "<S-Tab>", "<<")
keymap("n", "<Tab>", ">>")
keymap("v", "<S-Tab>", "<<")
keymap("v", "<Tab>", ">>")
keymap("i", "<S-Tab>", "<BS>")
-- Move Between Panels
keymap("", "<C-h>", ":wincmd h<CR>")
keymap("", "<C-j>", ":wincmd j<CR>")
keymap("", "<C-k>", ":wincmd k<CR>")
keymap("", "<C-l>", ":wincmd l<CR>")
-- Jump Up/Down A Half Page
keymap("n", "<C-d>", "<C-d>zz")
keymap("n", "<C-u>", "<C-u>zz")
-- Keep Copy/Paste Value
keymap("x", "<leader>p", "\"_dP")
-- Sort
keymap("v", "<C-s>", ":sort<CR>")
-- Disable F1 in Insert mode
keymap('i', '<F1>', '<nop>')
-- Close Neovim
cmd("command! Qa qa")
-- Remove trailing whitespace when focus is lost or the window is closed,
-- without moving the cursor
api.nvim_exec([[
autocmd FocusLost,WinLeave * if &modifiable | let w:save_cursor = getcurpos() | %s/\s\+$//e | call setpos('.', w:save_cursor) | endif
]], false)
-- Plugins
vim.pack.add({
"https://github.com/ellisonleao/gruvbox.nvim",
"https://github.com/windwp/nvim-autopairs",
"https://github.com/Pocco81/auto-save.nvim",
"https://github.com/lewis6991/gitsigns.nvim",
"https://github.com/lukas-reineke/indent-blankline.nvim",
"https://github.com/nvim-lua/plenary.nvim", -- Dependancy of Telescope
"https://github.com/nvim-telescope/telescope.nvim",
"https://github.com/nvim-tree/nvim-web-devicons", -- Dependancy of Nvim Tree
"https://github.com/nvim-tree/nvim-tree.lua",
"https://github.com/nvim-treesitter/nvim-treesitter",
"https://github.com/neovim/nvim-lspconfig",
"https://github.com/hrsh7th/nvim-cmp",
"https://github.com/hrsh7th/cmp-nvim-lsp",
"https://github.com/hrsh7th/cmp-buffer",
"https://github.com/MeanderingProgrammer/render-markdown.nvim",
"https://github.com/williamboman/mason.nvim",
"https://github.com/williamboman/mason-lspconfig.nvim",
"https://github.com/greggh/claude-code.nvim",
})
-- Plugin Configs
require('plugins');
+61
View File
@@ -0,0 +1,61 @@
require("claude-code").setup({
-- Terminal window settings
window = {
split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits)
position = "botright", -- Position of the window: "botright", "topleft", "vertical", "float", etc.
enter_insert = true, -- Whether to enter insert mode when opening Claude Code
hide_numbers = true, -- Hide line numbers in the terminal window
hide_signcolumn = true, -- Hide the sign column in the terminal window
-- Floating window configuration (only applies when position = "float")
float = {
width = "80%", -- Width: number of columns or percentage string
height = "80%", -- Height: number of rows or percentage string
row = "center", -- Row position: number, "center", or percentage string
col = "center", -- Column position: number, "center", or percentage string
relative = "editor", -- Relative to: "editor" or "cursor"
border = "rounded", -- Border style: "none", "single", "double", "rounded", "solid", "shadow"
},
},
-- File refresh settings
refresh = {
enable = true, -- Enable file change detection
updatetime = 100, -- updatetime when Claude Code is active (milliseconds)
timer_interval = 1000, -- How often to check for file changes (milliseconds)
show_notifications = true, -- Show notification when files are reloaded
},
-- Git project settings
git = {
use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project)
},
-- Shell-specific settings
shell = {
separator = '&&', -- Command separator used in shell commands
pushd_cmd = 'pushd', -- Command to push directory onto stack (e.g., 'pushd' for bash/zsh, 'enter' for nushell)
popd_cmd = 'popd', -- Command to pop directory from stack (e.g., 'popd' for bash/zsh, 'exit' for nushell)
},
-- Command settings
command = "claude", -- Command used to launch Claude Code
-- Command variants
command_variants = {
-- Conversation management
continue = "--continue", -- Resume the most recent conversation
resume = "--resume", -- Display an interactive conversation picker
-- Output options
verbose = "--verbose", -- Enable verbose logging with full turn-by-turn output
},
-- Keymaps
keymaps = {
toggle = {
normal = "<C-,>", -- Normal mode keymap for toggling Claude Code, false to disable
terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable
variants = {
continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag
verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag
},
},
window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>)
scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down
}
})
+47
View File
@@ -0,0 +1,47 @@
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
vim.snippet.expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = {
['<Tab>'] = function(fallback)
if cmp.visible() then
if not cmp.select_next_item() then
if vim.bo.buftype ~= 'prompt' and has_words_before() then
cmp.complete()
else
fallback()
end
end
else
return vim.cmd(">")
end
end,
['<S-Tab>'] = function(fallback)
if cmp.visible() then
if not cmp.select_prev_item() then
if vim.bo.buftype ~= 'prompt' and has_words_before() then
cmp.complete()
else
fallback()
end
end
else
return vim.cmd("<")
end
end,
['<CR>'] = cmp.mapping.confirm({ select = true }),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'buffer' },
})
})
+14
View File
@@ -0,0 +1,14 @@
require('gruvbox').setup({
priority = 1000,
config = true,
contrast = "hard",
transparent_mode = true,
overrides = {
NonText = { fg = "#666666" },
},
})
-- Colorscheme
vim.cmd("colorscheme gruvbox")
+35
View File
@@ -0,0 +1,35 @@
local levels = vim.diagnostic.severity
local opts = {
virtual_text = false,
float = {
border = "rounded",
},
signs = {
text = {
[levels.ERROR] = '',
[levels.WARN] = '',
[levels.HINT] = '',
[levels.INFO] = '»',
},
},
}
local sign_define = function(name, text)
local hl = 'DiagnosticSign' .. name
vim.fn.sign_define(hl, {
texthl = hl,
text = text,
numhl = ''
})
end
if vim.fn.has('nvim-0.10') == 0 then
sign_define('Error', opts.signs.text[levels.ERROR])
sign_define('Warn', opts.signs.text[levels.WARN])
sign_define('Hint', opts.signs.text[levels.HINT])
sign_define('Info', opts.signs.text[levels.INFO])
end
vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
vim.diagnostic.config(opts)
+9
View File
@@ -0,0 +1,9 @@
require('gitsigns').setup({
current_line_blame = true,
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 0,
ignore_whitespace = false,
},
})
@@ -0,0 +1,12 @@
vim.cmd [[highlight IndentBlanklineColor guifg=#555555 gui=nocombine]]
local highlights = {
"CursorColumn",
"Whitespace",
}
require('ibl').setup({
indent = {
highlight = highlight,
}
})
+12
View File
@@ -0,0 +1,12 @@
require('plugins.colorscheme')
require('plugins.diagnostics')
require('plugins.gitsigns')
require('plugins.indent-blankline')
require('plugins.nvim-autopairs')
require('plugins.nvim-tree')
require('plugins.telescope')
require('plugins.treesitter')
require('plugins.cmp')
require('plugins.render-markdown')
require('plugins.mason')
require('plugins.claude')
+16
View File
@@ -0,0 +1,16 @@
require('mason').setup({})
require('mason-lspconfig').setup({
ensure_installed = {
'lua_ls',
'ts_ls',
'html',
'cssls',
'jsonls',
'pylsp',
},
handlers = {
function(server_name)
require('lspconfig')[server_name].setup({})
end,
},
})
@@ -0,0 +1,4 @@
require('nvim-autopairs').setup({
event = "InsertEnter",
config = true
})
+33
View File
@@ -0,0 +1,33 @@
local function custom_mapping(bufnr)
local api = require("nvim-tree.api")
local function opts(desc)
return {
desc = "nvim-tree: " .. desc,
buffer = bufnr,
noremap = true,
silent = true,
nowait = true
}
end
-- default mappings
api.config.mappings.default_on_attach(bufnr)
-- custom mappings
vim.keymap.set('n', 's', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', 'u', api.node.navigate.parent_close, opts('Close Directory'))
end
require("nvim-tree").setup({
view = {
width = {},
},
on_attach = custom_mapping,
})
-- Tree
vim.keymap.set("n", [[<C-\>]], ":NvimTreeToggle<CR>")
vim.keymap.set("n", [[<leader>\]], ":NvimTreeToggle<CR>")
vim.keymap.set("n", "<leader>ff", ":NvimTreeFindFile<CR>")
@@ -0,0 +1,10 @@
require('render-markdown').setup({
completions = {
lsp = {
enabled = true,
}
},
heading = {
backgrounds = { '' },
},
})
+10
View File
@@ -0,0 +1,10 @@
require('telescope').setup({})
-- Telescope
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>gf", builtin.git_files)
vim.keymap.set("n", "<leader>gs", builtin.git_status)
vim.keymap.set("n", "<leader>gg", builtin.live_grep)
vim.keymap.set("n", "<leader>b", builtin.buffers)
+33
View File
@@ -0,0 +1,33 @@
require('nvim-treesitter.configs').setup({
branch = "main",
ensure_installed = {
"bash",
"css",
"graphql",
"html",
"javascript",
"jsdoc",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"scss",
"svelte",
"tmux",
"tsx",
"typescript",
"vim",
"vimdoc",
"yaml",
},
sync_install = false,
highlight = {
enable = true,
},
indent = {
enable = true,
},
})
+76
View File
@@ -0,0 +1,76 @@
{
"plugins": {
"auto-save.nvim": {
"rev": "979b6c82f60cfa80f4cf437d77446d0ded0addf0",
"src": "https://github.com/Pocco81/auto-save.nvim"
},
"claude-code.nvim": {
"rev": "55c0cb59828fbc3bec744288286a46f5d5750b83",
"src": "https://github.com/greggh/claude-code.nvim"
},
"cmp-buffer": {
"rev": "b74fab3656eea9de20a9b8116afa3cfc4ec09657",
"src": "https://github.com/hrsh7th/cmp-buffer"
},
"cmp-nvim-lsp": {
"rev": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3",
"src": "https://github.com/hrsh7th/cmp-nvim-lsp"
},
"gitsigns.nvim": {
"rev": "20ad4419564d6e22b189f6738116b38871082332",
"src": "https://github.com/lewis6991/gitsigns.nvim"
},
"gruvbox.nvim": {
"rev": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437",
"src": "https://github.com/ellisonleao/gruvbox.nvim"
},
"indent-blankline.nvim": {
"rev": "005b56001b2cb30bfa61b7986bc50657816ba4ba",
"src": "https://github.com/lukas-reineke/indent-blankline.nvim"
},
"mason-lspconfig.nvim": {
"rev": "2304ff65ecc8cb2afc2484de3e2ed9a407edf0b9",
"src": "https://github.com/williamboman/mason-lspconfig.nvim"
},
"mason.nvim": {
"rev": "ad7146aa61dcaeb54fa900144d768f040090bff0",
"src": "https://github.com/williamboman/mason.nvim"
},
"nvim-autopairs": {
"rev": "7a2c97cccd60abc559344042fefb1d5a85b3e33b",
"src": "https://github.com/windwp/nvim-autopairs"
},
"nvim-cmp": {
"rev": "a7bcf1d88069fc67c9ace8a62ba480b8fe879025",
"src": "https://github.com/hrsh7th/nvim-cmp"
},
"nvim-lspconfig": {
"rev": "ac98db2f9f06a56498ec890a96928774eae412c3",
"src": "https://github.com/neovim/nvim-lspconfig"
},
"nvim-tree.lua": {
"rev": "64e2192f5250796aa4a7f33c6ad888515af50640",
"src": "https://github.com/nvim-tree/nvim-tree.lua"
},
"nvim-treesitter": {
"rev": "42fc28ba918343ebfd5565147a42a26580579482",
"src": "https://github.com/nvim-treesitter/nvim-treesitter"
},
"nvim-web-devicons": {
"rev": "b8221e42cf7287c4dcde81f232f58d7b947c210d",
"src": "https://github.com/nvim-tree/nvim-web-devicons"
},
"plenary.nvim": {
"rev": "b9fd5226c2f76c951fc8ed5923d85e4de065e509",
"src": "https://github.com/nvim-lua/plenary.nvim"
},
"render-markdown.nvim": {
"rev": "475d3ad8cae486b0df6fc6050cf5b5ea1de42db8",
"src": "https://github.com/MeanderingProgrammer/render-markdown.nvim"
},
"telescope.nvim": {
"rev": "b4da76be54691e854d3e0e02c36b0245f945c2c7",
"src": "https://github.com/nvim-telescope/telescope.nvim"
}
}
}