Compare commits

..

14 Commits

Author SHA1 Message Date
venus
d223037865 removed treesitter and lsp to reconfigure 2026-03-10 00:51:24 -05:00
venus
6fbf3b768f updated plugins 2026-03-10 00:24:22 -05:00
venus
99638caa52 background opacity of terminal changes when nvim opens using kitty 2026-03-10 00:13:13 -05:00
venus
7c602e62bc added noctalia theme sync 2026-03-09 23:30:00 -05:00
venus
55a7f6dc13 moved lazy setup into init file 2026-03-09 23:14:47 -05:00
venus
02e8dfa531 removed simple.lua file 2026-03-09 23:09:07 -05:00
venus
8cb9838e07 moved basic plugins into lazy file 2026-03-09 23:06:12 -05:00
venus
f6a1d7e158 moved lazy from base init 2026-03-09 23:03:59 -05:00
venus
0ffe1c07cf moved keybind and config files out of init, working 2026-03-09 22:57:02 -05:00
venus
eac6d7dd53 moved keybind and config files out of init 2026-03-09 16:26:23 -05:00
venus
bbb47d1a93 added a few plugins 2026-03-09 15:58:24 -05:00
river
ab96aa95e1 java support 2026-02-11 14:36:43 -06:00
river
930b5f7190 slightly more kb shortcuts 2026-02-05 19:07:09 -06:00
river
c2941ef7ea configured for hyprland 2026-02-03 22:10:50 -06:00
20 changed files with 381 additions and 470 deletions

7
.gitignore vendored
View File

@@ -1,7 +0,0 @@
tags
test.sh
.luarc.json
nvim
spell/
lazy-lock.json

7
colors/noctalia.lua Normal file
View File

@@ -0,0 +1,7 @@
return {
bg = "#291414",
fg = "#f3f2f2",
accent = "#e46767",
error = "#fd4663",
warning = "#cccc66",
}

57
colors/testTheme.lua Normal file
View File

@@ -0,0 +1,57 @@
return {
-- color approach
red = "#ff3d00",
orange = "#e58e44",
green = "#77b886",
yellow = "#f7cb92",
blue = "#7689d9",
magenta = "#8f509d",
cyan = "#8fb9f4",
black = "#000000",
bright_red = "#ff6347",
bright_orange = "#f6aa6b",
bright_green = "#a3d6a5",
bright_yellow = "#ffe56e",
bright_blue = "#9eabe6",
bright_magenta = "#b78fc2",
bright_cyan = "#a4c4ff",
white = "#ffffff",
gutter_fg = "#78808f",
nontext = "#d2d6dc",
-- element approach
bg = "#0f1c2e",
fg = "#e6e8ee",
cursorline = "#1c2b3a",
selection = "#2e3c55",
linenr = "#4a5a70",
comment = "#7d88a1",
-- Syntax
keyword = "#f28fad",
Function = "#89b4fa",
string = "#f9e2af",
constant = "#cdd6f4",
type = "#cba6f7",
number = "#fab387",
boolean = "#f38ba8",
operator = "#94a3b8",
variable = "#e0def4",
-- UI
cursor = "#f5a97f",
visual = "#2e3c55",
search = "#f5c2e7",
statusline = "#1e293b",
menu_bg = "#1a2535",
menu_sel = "#3b4252",
fold = "#3e4a5a",
split = "#334155",
-- Diagnostics
diag_error = "#f38ba8",
diag_warn = "#fab387",
diag_info = "#89dceb",
diag_hint = "#b4befe",
}

184
init.lua
View File

@@ -1,161 +1,47 @@
-- River Rooks nvim config -- River Rooks nvim config
-- init.lua
-- [[setup]] -- render options, keybinds, lazy and treesitter
vim.g.mapleader = ' ' -- processed first
vim.g.maplocalleader = ' '
-- Set to true if you have a Nerd Font installed and selected in the terminal
vim.g.have_nerd_font = true
vim.g.netrw_liststyle = 3
vim.g.netrw_banner = 1
vim.g.netrw_altv = 1 -- Create the split of the Netrw window to the left
vim.g.netrw_winsize = 30 -- Set the width of the "drawer"
vim.g.netrw_browse_split = 4 -- Open files in previous window. This emulates the typical "drawer" behaviorkjk
-- [[Setting options]]
-- See `:help vim.o`
-- NOTE: You can change these options as you wish!
-- For more options, you can see `:help option-list`
-- Make line numbers default
vim.o.number = true
-- You can also add relative line numbers, to help with jumping.
-- Experiment for yourself to see if you like it!
vim.o.relativenumber = true
-- Don't show the mode, since it's already in the status line
vim.o.showmode = false
-- Sync clipboard between OS and Neovim.
-- Schedule the setting after `UiEnter` because it can increase startup-time.
-- Remove this option if you want your OS clipboard to remain independent.
-- See `:help 'clipboard'`
vim.schedule(function()
vim.o.clipboard = 'unnamedplus'
end)
-- Enable break indent
-- Save undo history
vim.o.undofile = true
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
vim.o.ignorecase = true
vim.o.smartcase = true
-- Keep signcolumn on by default
vim.o.signcolumn = 'yes'
-- Decrease update time
vim.o.updatetime = 250
-- Decrease mapped sequence wait time
vim.o.timeoutlen = 300
-- Configure how new splits should be opened
vim.o.splitright = true
vim.o.splitbelow = true
vim.o.list = true
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
-- Preview substitutions live, as you type!
vim.o.inccommand = 'split'
-- Show which line your cursor is on
vim.o.cursorline = true
-- Minimal number of screen lines to keep above and below the cursor.
vim.o.scrolloff = 25
-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`),
-- instead raise a dialog asking if you wish to save the current file(s)
-- See `:help 'confirm'`
vim.o.confirm = true
-- [[Keybinds]]
-- See `:help vim.keymap.set()`
-- See `:help hlsearch`
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- Diagnostic keymaps
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
-- run clear and make in open terminal
vim.keymap.set('n','<leader>r','<cmd>TermExec cmd="clear && make"<CR>', { desc = '[r]un make in terminal' })
vim.keymap.set('n','<leader>n', '<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
vim.keymap.set('n','<leader>t', '<cmd>ToggleTerm<CR>', {desc = '[T]oggle all terminals'})
-- TIP: Disable arrow keys in normal mode
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows
-- --
-- See `:help wincmd` for a list of all window commands -- render options
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' }) require('options')
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' }) -- render keybinds
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' }) require('keybinds')
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' }) -- bootstrao lazy.nvim
require("config.lazy")
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes -- lazy.nvim settings
vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
vim.keymap.set("n", "<C-S-j>", "<C-w>J", { desc = "Move window to the lower" })
vim.keymap.set("n", "<C-S-k>", "<C-w>K", { desc = "Move window to the upper" })
-- [[ Basic Autocommands ]]
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.hl.on_yank()
end,
})
-- [[scripts]]
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({ require("lazy").setup({
spec = { spec = {
-- import your plugins -- import your plugins
{ import = "plugins" }, { import = "plugins" },
{
'tpope/vim-commentary', -- commenting lines with shortcut
-- 'vimpostor/vim-tpipeline', -- integrate with tmux status-line
'kshenoy/vim-signature', -- tag lines
'mg979/vim-visual-multi', -- work on multiple lines at once
'obsidian-nvim/obsidian.nvim', -- Obsidian lsp plugin
'nvim-tree/nvim-web-devicons', -- nerdfont!
'TamaMcGlinn/vim-termhere', --simple terminal QOL
"smjonas/inc-rename.nvim", --lsp plugin for renaming variable
'basola21/PDFview', -- rendering pdfs in nvim
{ 'norcalli/nvim-colorizer.lua', config = function() require('colorizer').setup{"*"} end,}, -- preview colors
{'NMAC427/guess-indent.nvim', config = function() require('guess-indent').setup {} end,}, -- Detect tabstop and shiftwidth automatically
{ 'edluffy/hologram.nvim', auto_display = true,}, --image viewer
{ "denialofsandwich/sudo.nvim", dependencies = { "MunifTanjim/nui.nvim", },config = true, }, --write restricted files without restart
{'akinsho/toggleterm.nvim', version = "*", config = true}, -- terminal toggling and commands
{ 'nvim-java/nvim-java', config = function() require('java').setup() vim.lsp.enable('jdtls') end, }, --jave QOL
{ 'RRethy/base16-nvim', config = function() require('matugen').setup() end,}, --colorshceme for noctalia integration
},
}, },
-- Configure any other settings here. See the documentation for more details. -- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins. -- colorscheme that will be used when installing plugins.
install = { colorscheme = { "retrobox" } }, -- install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates -- automatically check for plugin updates
checker = { enabled = true }, checker = { enabled = true },
},
{
ui = {
-- If you are using a Nerd Font: set icons to an empty table which will use the
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
icons = vim.g.have_nerd_font and {} or {
cmd = '',
config = '🛠',
event = '📅',
ft = '📂',
init = '',
keys = '🗝',
plugin = '🔌',
runtime = '💻',
require = '🌙',
source = '📄',
start = '🚀',
task = '📌',
lazy = '💤 ',
},
},
}) })
-- sync nvim colorscheme with noctalia
local theme_ok, matugen = pcall(require, "matugen")
if theme_ok then
matugen.setup()
end

40
lazy-lock.json Normal file
View File

@@ -0,0 +1,40 @@
{
"PDFview": { "branch": "main", "commit": "972dfcce5c0de578865649940f44bf57a700498d" },
"base16-nvim": { "branch": "master", "commit": "190397833e53fdfd5cf400c5baaf1a4e533158e5" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"fd": { "branch": "master", "commit": "cb3fad48bb2d366080efa421d8499ec968f60a6c" },
"fzf-lua": { "branch": "main", "commit": "d9508cc1d05ffcdc91a32dfd38fc1013a56b20da" },
"gitsigns.nvim": { "branch": "main", "commit": "7c4faa3540d0781a28588cafbd4dd187a28ac6e3" },
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
"hologram.nvim": { "branch": "main", "commit": "f5194f71ec1578d91b2e3119ff08e574e2eab542" },
"inc-rename.nvim": { "branch": "main", "commit": "0074b551a17338ccdcd299bd86687cc651bcb33d" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"mini.nvim": { "branch": "main", "commit": "9d359222b3643f1fccbd8f3180445842e1cae00b" },
"mini.pick": { "branch": "main", "commit": "8521fe21df86e08d9e4b3c3f3a7d50e47954e1af" },
"neogit": { "branch": "master", "commit": "8fd90675caf8b847280ca56f464b66030adad876" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-dap": { "branch": "master", "commit": "a9d8cb68ee7184111dc66156c4a2ebabfbe01bc5" },
"nvim-java": { "branch": "main", "commit": "602a5f7fa92f9c1d425a2159133ff9de86842f0a" },
"nvim-treesitter": { "branch": "main", "commit": "5cb05e1b0fa3c469958a2b26f36b3fe930af221c" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "4e91b5d0394329a229725b021a8ea217099826ef" },
"nvim-web-devicons": { "branch": "master", "commit": "737cf6c657898d0c697311d79d361288a1343d50" },
"obsidian.nvim": { "branch": "main", "commit": "350586c9e873143c3f65e3c2667bd0324964e89c" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"render-markdown.nvim": { "branch": "main", "commit": "e3c18ddd27a853f85a6f513a864cf4f2982b9f26" },
"resize.nvim": { "branch": "main", "commit": "0b8943ef2ce54e65b9e56974e94dee593b28e7b5" },
"ripgrep": { "branch": "master", "commit": "4519153e5e461527f4bca45b042fff45c4ec6fb9" },
"snacks.nvim": { "branch": "main", "commit": "9912042fc8bca2209105526ac7534e9a0c2071b2" },
"spring-boot.nvim": { "branch": "main", "commit": "218c0c26c14d99feca778e4d13f5ec3e8b1b60f0" },
"sudo.nvim": { "branch": "main", "commit": "eed34f8636f0dd1bac89c81f6f96a86ca513f5f2" },
"telescope.nvim": { "branch": "master", "commit": "e69b434b968a33815e2f02a5c7bd7b8dd4c7d4b2" },
"themery.nvim": { "branch": "main", "commit": "bfa58f4b279d21cb515b28023e1b68ec908584b2" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
"vim-signature": { "branch": "master", "commit": "6bc3dd1294a22e897f0dcf8dd72b85f350e306bc" },
"vim-termhere": { "branch": "main", "commit": "b66d429dd48b74802f09fd059bc499c253372a1c" },
"vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

26
lua/autocommands.lua Normal file
View File

@@ -0,0 +1,26 @@
-- [[dynamically change kitty window opacity when opening and closing]]
-- Define the target opacities
local nvim_opacity = "0.85"
local default_opacity = "0.6"
-- Function to talk to Kitty
local function set_kitty_opacity(opacity)
print("Attempting to set opacity to: " .. opacity)
os.execute("kitty @ set-background-opacity " .. opacity)
end
-- Set up the autocommands
local kitty_group = vim.api.nvim_create_augroup("KittyOpacity", { clear = true })
vim.api.nvim_create_autocmd("VimEnter", {
group = kitty_group,
callback = function()
set_kitty_opacity(nvim_opacity)
end,
})
vim.api.nvim_create_autocmd("VimLeave", {
group = kitty_group,
callback = function()
set_kitty_opacity(default_opacity)
end,
})

View File

@@ -15,21 +15,3 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
-- vim.g.mapleader = " "
-- vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- import your plugins
{ import = "plugins" },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates
checker = { enabled = true },
})

0
lua/config/markdown.lua Normal file
View File

65
lua/keybinds.lua Normal file
View File

@@ -0,0 +1,65 @@
-- [[ Basic Autocommands ]]
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.hl.on_yank()
end,
})
-- move betwwen buffer easier
vim.keymap.set('n', '<Tab>', ':bnext<CR>')
vim.keymap.set('n', '<S-Tab>', ':bprev<CR>')
vim.keymap.set('n', '<leader>x', ':bdelete<CR>')
-- termunal interface shortcuts
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- Diagnostic keymaps
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
vim.keymap.set("n", "<leader>a", ":IncRename ", {desc = 'ren[a]me variable under cursor'})
vim .keymap.set('n','<leader>r','<cmd>TermExec cmd="clear && make"<CR>', { desc = '[r]un make in terminal' })
vim .keymap .set('n','<leader>n', '<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
vim.keymap.set('n','<leader>t', '<cmd>ToggleTerm<CR>', {desc = '[T]oggle all terminals'})
vim.keymap.set("n", "<leader>l", function()
-- Get terminal ID 1
-- Save position and buffer context
local term = require("toggleterm.terminal").get(1)
if term then
local original_window = vim.api.nvim_get_current_win()
local saved_view = vim.fn.winsaveview()
-- Using \r (carriage return) or \n\n often bypasses shell interceptors
term:send("clear\r")
term:send("!-2\r")
vim.api.nvim_set_current_win(original_window)
vim.fn.winrestview(saved_view)
else
vim.notify("Terminal 1 is not open yet!", vim.log.levels.WARN)
end
-- Return logic
end, { desc = "Run [L]ast command in terminal 1" })
-- more keybinds
-- TIP: Disable arrow keys in normal mode
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows
--
-- See `:help wincmd` for a list of all window commands
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes
vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
vim.keymap.set("n", "<C-S-j>", "<C-w>J", { desc = "Move window to the lower" })
vim.keymap.set("n", "<C-S-k>", "<C-w>K", { desc = "Move window to the upper" })

37
lua/matugen-template.lua Normal file
View File

@@ -0,0 +1,37 @@
local M = {}
function M.setup()
require('base16-colorscheme').setup {
-- Background tones
base00 = '{{colors.surface.default.hex}}', -- Default Background
base01 = '{{colors.surface_container.default.hex}}', -- Lighter Background (status bars)
base02 = '{{colors.surface_container_high.default.hex}}', -- Selection Background
base03 = '{{colors.outline.default.hex}}', -- Comments, Invisibles
-- Foreground tones
base04 = '{{colors.on_surface_variant.default.hex}}', -- Dark Foreground (status bars)
base05 = '{{colors.on_surface.default.hex}}', -- Default Foreground
base06 = '{{colors.on_surface.default.hex}}', -- Light Foreground
base07 = '{{colors.on_background.default.hex}}', -- Lightest Foreground
-- Accent colors
base08 = '{{colors.error.default.hex}}', -- Variables, XML Tags, Errors
base09 = '{{colors.tertiary.default.hex}}', -- Integers, Constants
base0A = '{{colors.secondary.default.hex}}', -- Classes, Search Background
base0B = '{{colors.primary.default.hex}}', -- Strings, Diff Inserted
base0C = '{{colors.tertiary_fixed_dim.default.hex}}', -- Regex, Escape Chars
base0D = '{{colors.primary_fixed_dim.default.hex}}', -- Functions, Methods
base0E = '{{colors.secondary_fixed_dim.default.hex}}', -- Keywords, Storage
base0F = '{{colors.error_container.default.hex}}', -- Deprecated, Embedded Tags
}
end
-- Register a signal handler for SIGUSR1 (matugen updates)
local signal = vim.uv.new_signal()
signal:start(
'sigusr1',
vim.schedule_wrap(function()
package.loaded['matugen'] = nil
require('matugen').setup()
end)
)
return M

37
lua/matugen.lua Normal file
View File

@@ -0,0 +1,37 @@
local M = {}
function M.setup()
require('base16-colorscheme').setup {
-- Background tones
base00 = '#291414', -- Default Background
base01 = '#452121', -- Lighter Background (status bars)
base02 = '#3e1e1e', -- Selection Background
base03 = '#756161', -- Comments, Invisibles
-- Foreground tones
base04 = '#b6afaf', -- Dark Foreground (status bars)
base05 = '#f3f2f2', -- Default Foreground
base06 = '#f3f2f2', -- Light Foreground
base07 = '#f3f2f2', -- Lightest Foreground
-- Accent colors
base08 = '#fd4663', -- Variables, XML Tags, Errors
base09 = '#cccc66', -- Integers, Constants
base0A = '#d6995c', -- Classes, Search Background
base0B = '#e46767', -- Strings, Diff Inserted
base0C = '#e9e996', -- Regex, Escape Chars
base0D = '#ec9393', -- Functions, Methods
base0E = '#e9bf96', -- Keywords, Storage
base0F = '#900017', -- Deprecated, Embedded Tags
}
end
-- Register a signal handler for SIGUSR1 (matugen updates)
local signal = vim.uv.new_signal()
signal:start(
'sigusr1',
vim.schedule_wrap(function()
package.loaded['matugen'] = nil
require('matugen').setup()
end)
)
return M

61
lua/options.lua Normal file
View File

@@ -0,0 +1,61 @@
-- River Rooks nvim config
-- [[setup]]
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.g.have_nerd_font = true
-- netrw
vim.g.netrw_liststyle = 3 --tree view
vim.g.netrw_banner = 1
vim.g.netrw_winsize = 70 -- Set the width of the "drawer"
vim.g.netrw_browse_split = 4 -- Open files in previous window. This emulates the typical "drawer" behavior
vim.g.netrw_preview = 1 -- opens in vertical if no open buffer
vim.g.netrw_altv = 1 -- Create the split of the Netrw window to the left
-- [[Setting options]]
vim.o.number = true -- Make line numbers default
vim.o.relativenumber = true
vim.o.showmode = false
-- Sync clipboard between OS and Neovim.
-- Schedule the setting after `UiEnter` because it can increase startup-time.
-- Remove this option if you want your OS clipboard to remain independent.
-- See `:help 'clipboard'`
vim.schedule(function()
vim.o.clipboard = 'unnamedplus'
end)
-- Enable break indent
-- Save undo history
vim.o.undofile = true
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
vim.o.ignorecase = true
vim.o.smartcase = true
-- Keep signcolumn on by default
vim.o.signcolumn = 'yes'
-- Decrease update time
vim.o.updatetime = 250
-- Decrease mapped sequence wait time
vim.o.timeoutlen = 300
-- Configure how new splits should be opened
-- vim.o.splitright = false
-- vim.o.splitbelow = true
vim.o.list = true
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
-- Preview substitutions live, as you type!
vim.o.inccommand = 'split'
-- Show which line your cursor is on
vim.o.cursorline = true
-- Minimal number of screen lines to keep above and below the cursor.
vim.o.scrolloff = 25
-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`),
-- instead raise a dialog asking if you wish to save the current file(s)
-- See `:help 'confirm'`
vim.o.confirm = true
vim.opt.termguicolors = true -- required for colorizer
--set background color on entering and leaving nvim
require('autocommands')

View File

@@ -1,239 +0,0 @@
return {
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
'folke/lazydev.nvim',
ft = 'lua',
opts = {
library = {
-- Load luvit types when the `vim.uv` word is found
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
},
},
{
-- Main LSP Configuration
'neovim/nvim-lspconfig',
dependencies = {
-- Automatically install LSPs and related tools to stdpath for Neovim
-- Mason must be loaded before its dependents so we need to set it up here.
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
{ 'mason-org/mason.nvim', opts = {} },
'mason-org/mason-lspconfig.nvim',
'WhoIsSethDaniel/mason-tool-installer.nvim',
-- Useful status updates for LSP.
{ 'j-hui/fidget.nvim', opts = {} },
-- Allows extra capabilities provided by blink.cmp
'saghen/blink.cmp',
},
config = function()
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or 'n'
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
end
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map('grn', vim.lsp.buf.rename, '[R]e[n]ame')
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' })
-- Find references for the word under your cursor.
map('grr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map('gri', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map('grd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map('gO', require('telescope.builtin').lsp_document_symbols, 'Open Document Symbols')
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map('gW', require('telescope.builtin').lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map('grt', require('telescope.builtin').lsp_type_definitions, '[G]oto [T]ype Definition')
-- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10)
---@param client vim.lsp.Client
---@param method vim.lsp.protocol.Method
---@param bufnr? integer some lsp support methods only in specific files
---@return boolean
local function client_supports_method(client, method, bufnr)
if vim.fn.has 'nvim-0.11' == 1 then
return client:supports_method(method, bufnr)
else
return client.supports_method(method, { bufnr = bufnr })
end
end
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd('LspDetach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
end,
})
end
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
map('<leader>th', function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
end, '[T]oggle Inlay [H]ints')
end
end,
})
-- Diagnostic Config
-- See :help vim.diagnostic.Opts
vim.diagnostic.config {
severity_sort = true,
float = { border = 'rounded', source = 'if_many' },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
[vim.diagnostic.severity.ERROR] = '󰅚 ',
[vim.diagnostic.severity.WARN] = '󰀪 ',
[vim.diagnostic.severity.INFO] = '󰋽 ',
[vim.diagnostic.severity.HINT] = '󰌶 ',
},
} or {},
virtual_text = {
source = 'if_many',
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
}
-- LSP servers and clients are able to communicate to each other what features they support.
-- By default, Neovim doesn't support everything that is in the LSP specification.
-- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
local capabilities = require('blink.cmp').get_lsp_capabilities()
-- Enable the following language servers
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
--
-- Add any additional override configuration in the following tables. Available keys are:
-- - cmd (table): Override the default command used to start the server
-- - filetypes (table): Override the default list of associated filetypes for the server
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
-- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = {
clangd = {},
-- intelephense = {},
-- gopls = {},
-- pyright = {},
-- rust_analyzer = {},
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
--
-- Some languages (like typescript) have entire language plugins that can be useful:
-- https://github.com/pmizio/typescript-tools.nvim
--
-- But for many setups, the LSP (`ts_ls`) will work just fine
-- ts_ls = {},
--
lua_ls = {
-- cmd = { ... },
-- filetypes = { ... },
-- capabilities = {},
settings = {
Lua = {
completion = {
callSnippet = 'Replace',
},
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
-- diagnostics = { disable = { 'missing-fields' } },
},
},
},
}
-- Ensure the servers and tools above are installed
--
-- To check the current status of installed tools and/or manually install
-- other tools, you can run
-- :Mason
--
-- You can press `g?` for help in this menu.
--
-- `mason` had to be setup earlier: to configure its options see the
-- `dependencies` table for `nvim-lspconfig` above.
--
-- You can add other tools here that you want Mason to install
-- for you, so that they are available from within Neovim.
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
'stylua', -- Used to format Lua code
})
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
require('mason-lspconfig').setup {
ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer)
automatic_installation = false,
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
require('lspconfig')[server_name].setup(server)
end,
},
}
end,
},
}

View File

@@ -0,0 +1,8 @@
return {
'MeanderingProgrammer/render-markdown.nvim',
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.nvim' }, -- if you use the mini.nvim suite
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.icons' }, -- if you use standalone mini plugins
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
---@module 'render-markdown'
-- ---@type render.md.UserConfig
}

View File

@@ -1,17 +0,0 @@
return {
'soywod/iris.vim', -- unsure
'tpope/vim-commentary', -- commenting lines with shortcut
-- 'vimpostor/vim-tpipeline', -- integrate with tmux status-line
'kshenoy/vim-signature', -- tag lines
'mg979/vim-visual-multi', -- work on multiple lines at once
{'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically
config = function() require('guess-indent').setup {} end,},
'obsidian-nvim/obsidian.nvim', -- work with obsidian
{ 'edluffy/hologram.nvim', auto_display = true,}, --image viewer
'nvim-tree/nvim-web-devicons', -- nerdfont!
'nvim-lualine/lualine.nvim', -- lualine
'TamaMcGlinn/vim-termhere', --simple terminal QOL
"rktjmp/lush.nvim", -- better theme editing
{ "denialofsandwich/sudo.nvim", dependencies = { "MunifTanjim/nui.nvim", },config = true, }, --write restricted files without restart
{'akinsho/toggleterm.nvim', version = "*", config = true} -- terminal toggling and commands
}

View File

@@ -1,6 +0,0 @@
return {
'xemptuous/sqlua.nvim',
lazy = true,
cmd = 'SQLua',
config = function() require('sqlua').setup() end
}

View File

@@ -1,5 +0,0 @@
return { 'alex-popov-tech/store.nvim',
dependencies = { 'OXY2DEV/markview.nvim' },
opts = {},
cmd = 'Store',
}

View File

@@ -7,15 +7,20 @@ return {
config = function() config = function()
require('themery').setup { require('themery').setup {
themes = { themes = {
'catppuccin-latte',
'catppuccin-frappe',
'catppuccin-macchiato',
'catppuccin-mocha',
'noctalia',
'zellner', 'zellner',
'zaibatsu', 'zaibatsu',
'wildcharm', 'wildcharm',
'vim', 'vim',
'unokai', 'unokai',
'torte', 'torte',
'tokyonight-storm', -- 'tokyonight-storm',
'tokyonight-night', -- 'tokyonight-night',
'tokyonight-day', -- 'tokyonight-day',
'sorbet', 'sorbet',
'slate', 'slate',
'shine', 'shine',

View File

@@ -1,25 +0,0 @@
return { -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
-- main = 'nvim-treesitter.configs', -- Sets main module to use for opts
-- -- [[ Configure Treesitter ]] See `:help nvim-treesitter`
-- opts = {
-- ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
-- -- Autoinstall languages that are not installed
-- auto_install = true,
-- highlight = {
-- enable = true,
-- -- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
-- -- If you are experiencing weird indenting issues, add the language to
-- -- the list of additional_vim_regex_highlighting and disabled languages for indent.
-- additional_vim_regex_highlighting = { 'ruby' },
-- },
-- indent = { enable = true, disable = { 'ruby' } },
-- },
-- -- 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
}

View File

@@ -1 +0,0 @@
lua/plugins/simple.lua