summaryrefslogtreecommitdiff
path: root/.config/nvim/lua
diff options
context:
space:
mode:
authorJackJ30 <jackqjamison@gmail.com>2025-05-02 12:12:22 -0400
committerJackJ30 <jackqjamison@gmail.com>2025-05-02 12:12:22 -0400
commitf974ca81bab834105fc490792288aded773f3e6c (patch)
tree7f5d4f9c712c5d4f3f26b3da4b43f2c4e2b398d1 /.config/nvim/lua
parent988896c90c1011ac588f4c3e7746b8bfcf35bf41 (diff)
started nvim config
Diffstat (limited to '.config/nvim/lua')
-rw-r--r--.config/nvim/lua/lazy-nvim.lua35
-rw-r--r--.config/nvim/lua/misc.lua40
-rw-r--r--.config/nvim/lua/plugins/autopair.lua8
-rw-r--r--.config/nvim/lua/plugins/colorscheme.lua8
-rw-r--r--.config/nvim/lua/plugins/indentbars.lua16
-rw-r--r--.config/nvim/lua/plugins/telescope.lua27
-rw-r--r--.config/nvim/lua/plugins/treesitter.lua27
-rw-r--r--.config/nvim/lua/plugins/undotree.lua6
-rw-r--r--.config/nvim/lua/remap.lua31
-rw-r--r--.config/nvim/lua/settings.lua23
10 files changed, 221 insertions, 0 deletions
diff --git a/.config/nvim/lua/lazy-nvim.lua b/.config/nvim/lua/lazy-nvim.lua
new file mode 100644
index 0000000..f5ee74c
--- /dev/null
+++ b/.config/nvim/lua/lazy-nvim.lua
@@ -0,0 +1,35 @@
+-- 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({
+ 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 },
+})
diff --git a/.config/nvim/lua/misc.lua b/.config/nvim/lua/misc.lua
new file mode 100644
index 0000000..588e8c9
--- /dev/null
+++ b/.config/nvim/lua/misc.lua
@@ -0,0 +1,40 @@
+function FormatBuffer()
+ local save_cursor = vim.fn.getpos('.')
+ local save_view = vim.fn.winsaveview()
+
+ vim.api.nvim_command('normal! ggVG')
+ vim.api.nvim_command('normal! ==')
+
+ vim.fn.setpos('.', save_cursor)
+ vim.fn.winrestview(save_view)
+end
+
+-- vim.api.nvim_create_autocmd({ "BufWritePre" }, {
+-- pattern = {"*"},
+-- callback = function()
+-- local save_cursor = vim.fn.getpos(".")
+-- vim.cmd([[%s/\s\+$//e]])
+-- vim.fn.setpos(".", save_cursor)
+-- end,
+-- })
+
+-- vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+-- pattern = { "*.tex" },
+-- callback = function()
+-- vim.cmd("!pdflatex *.tex")
+-- end,
+-- })
+
+vim.filetype.add {
+ extension = {
+ rasi = 'rasi',
+ vert = "glsl",
+ frag = "glsl",
+ },
+ pattern = {
+ ['.*/waybar/config'] = 'jsonc',
+ ['.*/mako/config'] = 'dosini',
+ ['.*/kitty/*.conf'] = 'bash',
+ ['.*/hypr/.*%.conf'] = 'hyprlang',
+ },
+}
diff --git a/.config/nvim/lua/plugins/autopair.lua b/.config/nvim/lua/plugins/autopair.lua
new file mode 100644
index 0000000..40222e1
--- /dev/null
+++ b/.config/nvim/lua/plugins/autopair.lua
@@ -0,0 +1,8 @@
+return {
+ "windwp/nvim-autopairs",
+ opt = true,
+ event = "InsertEnter",
+ config = function()
+ require("nvim-autopairs").setup()
+ end
+}
diff --git a/.config/nvim/lua/plugins/colorscheme.lua b/.config/nvim/lua/plugins/colorscheme.lua
new file mode 100644
index 0000000..5fcd21a
--- /dev/null
+++ b/.config/nvim/lua/plugins/colorscheme.lua
@@ -0,0 +1,8 @@
+return {
+ "https://github.com/Mofiqul/dracula.nvim",
+ lazy=false,
+ priority=1000,
+ config = function()
+ vim.cmd.colorscheme("dracula")
+ end
+}
diff --git a/.config/nvim/lua/plugins/indentbars.lua b/.config/nvim/lua/plugins/indentbars.lua
new file mode 100644
index 0000000..0a98358
--- /dev/null
+++ b/.config/nvim/lua/plugins/indentbars.lua
@@ -0,0 +1,16 @@
+return {
+ "lukas-reineke/indent-blankline.nvim",
+ event = { "VeryLazy" },
+ config = function()
+ vim.opt.list = true
+ vim.opt.listchars = {
+ tab = "| ",
+ }
+ require("ibl").setup({
+ indent = {
+ tab_char = "|",
+ char = "|"
+ }
+ })
+ end,
+}
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..d6ddca9
--- /dev/null
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,27 @@
+return {
+ 'nvim-telescope/telescope.nvim',
+ dependencies = { 'nvim-lua/plenary.nvim' },
+ config = function()
+ require('telescope').setup({
+ defaults = {
+ sorting_strategy = "ascending",
+ layout_strategy = 'bottom_pane',
+ layout_config = {
+ height = 10,
+ },
+ prompt_prefix = "",
+ selection_caret = "",
+ entry_prefix = "",
+ border = true,
+ borderchars = { "─", " ", " ", " ", "─", "─", " ", " " },
+ preview = false,
+ },
+ })
+ local builtin = require('telescope.builtin')
+ vim.keymap.set('n', '<leader>f', builtin.find_files, {})
+ vim.keymap.set('n', '<leader>r', builtin.live_grep, {})
+ vim.keymap.set('n', '<leader>b', function()
+ builtin.buffers({ sort_mru = true, ignore_current_buffer = true})
+ end)
+ end
+}
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..6ac96af
--- /dev/null
+++ b/.config/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,27 @@
+return {
+ 'nvim-treesitter/nvim-treesitter',
+ name = 'treesitter',
+ build = ':TSUpdate',
+ config = function()
+ require('nvim-treesitter.configs').setup({
+ ensure_installed = {
+ "vimdoc", "c", "lua", "cpp",
+ "bash", "css", "glsl", "nasm", "haskell",
+ "hyprlang", "zig",
+ },
+ sync_install = false,
+
+ auto_install = true,
+
+ indent = {
+ enable = true
+ },
+
+ highlight = {
+ enable = true,
+
+ additional_vim_regex_highlighting = { "markdown" },
+ },
+ })
+ end
+}
diff --git a/.config/nvim/lua/plugins/undotree.lua b/.config/nvim/lua/plugins/undotree.lua
new file mode 100644
index 0000000..1404add
--- /dev/null
+++ b/.config/nvim/lua/plugins/undotree.lua
@@ -0,0 +1,6 @@
+return {
+ "mbbill/undotree",
+ config = function()
+ vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
+ end
+}
diff --git a/.config/nvim/lua/remap.lua b/.config/nvim/lua/remap.lua
new file mode 100644
index 0000000..6d842dc
--- /dev/null
+++ b/.config/nvim/lua/remap.lua
@@ -0,0 +1,31 @@
+vim.g.mapleader = " "
+vim.g.maplocalleader = "\\"
+
+-- vim.keymap.set("i", "<C-BS>", "<C-w>")
+-- vim.keymap.set("v", "<", "<gv")
+-- vim.keymap.set("v", ">", ">gv")
+
+-- vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
+-- vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
+
+-- vim.keymap.set("n", "<leader>k", "<cmd>:bd<CR>")
+
+vim.keymap.set("n", "<leader>=", FormatBuffer)
+
+-- vim.keymap.set({"n", "v"}, "<leader>d", "\"_d")
+vim.keymap.set("n", "<leader>p", "\"+p")
+vim.keymap.set("v", "<leader>y", "\"+y")
+
+-- vim.keymap.set({"n", "i", "v", "s"}, "<F1>", "<Nop>")
+
+vim.keymap.set("n", "<leader>=", FormatBuffer)
+
+-- insert mode moving
+vim.keymap.set('i', '<C-h>', '<Left>', opts)
+vim.keymap.set('i', '<C-j>', '<Down>', opts)
+vim.keymap.set('i', '<C-k>', '<Up>', opts)
+vim.keymap.set('i', '<C-l>', '<Right>', opts)
+
+-- C-g to escape
+vim.keymap.set('i', '<C-g>', '<Esc>', opts)
+vim.keymap.set('v', '<C-g>', '<Esc>', opts)
diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua
new file mode 100644
index 0000000..e750225
--- /dev/null
+++ b/.config/nvim/lua/settings.lua
@@ -0,0 +1,23 @@
+vim.o.tabstop = 4
+vim.o.shiftwidth = 4
+vim.o.smartindent = true
+vim.opt.undodir = os.getenv("HOME") .. "/.cache/nvim/undodir"
+vim.opt.undofile = true
+vim.opt.swapfile = false
+
+vim.opt.relativenumber = true
+vim.opt.number = true
+
+vim.opt.scrolloff = 7
+
+vim.opt.termguicolors = true
+vim.opt.background = "dark"
+
+vim.opt.incsearch = true
+
+vim.opt.signcolumn = "no"
+vim.opt.isfname:append("@-@")
+
+vim.opt.splitbelow = true
+vim.opt.splitright = true
+