about summary refs log tree commit diff
path: root/nixos/config/neovim
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/config/neovim')
-rw-r--r--nixos/config/neovim/init.lua2
-rw-r--r--nixos/config/neovim/lua/plugins/autopairs.lua3
-rw-r--r--nixos/config/neovim/lua/plugins/catppuccin.lua29
-rw-r--r--nixos/config/neovim/lua/plugins/codeium.lua1
-rw-r--r--nixos/config/neovim/lua/plugins/colorizer.lua1
-rw-r--r--nixos/config/neovim/lua/plugins/dashboard.lua58
-rw-r--r--nixos/config/neovim/lua/plugins/harpoon.lua10
-rw-r--r--nixos/config/neovim/lua/plugins/init.lua11
-rw-r--r--nixos/config/neovim/lua/plugins/lastplace.lua1
-rw-r--r--nixos/config/neovim/lua/plugins/lsp.lua40
-rw-r--r--nixos/config/neovim/lua/plugins/lualine.lua13
-rw-r--r--nixos/config/neovim/lua/plugins/telescope.lua7
-rw-r--r--nixos/config/neovim/lua/plugins/treesitter.lua17
-rw-r--r--nixos/config/neovim/lua/venomade/clipboard.lua14
-rw-r--r--nixos/config/neovim/lua/venomade/config.lua41
-rw-r--r--nixos/config/neovim/lua/venomade/init.lua5
-rw-r--r--nixos/config/neovim/lua/venomade/lazy.lua42
-rw-r--r--nixos/config/neovim/lua/venomade/neovide.lua20
-rw-r--r--nixos/config/neovim/lua/venomade/remap.lua7
19 files changed, 322 insertions, 0 deletions
diff --git a/nixos/config/neovim/init.lua b/nixos/config/neovim/init.lua
new file mode 100644
index 0000000..4118b3f
--- /dev/null
+++ b/nixos/config/neovim/init.lua
@@ -0,0 +1,2 @@
+require("venomade")
+require("plugins")
diff --git a/nixos/config/neovim/lua/plugins/autopairs.lua b/nixos/config/neovim/lua/plugins/autopairs.lua
new file mode 100644
index 0000000..261f664
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/autopairs.lua
@@ -0,0 +1,3 @@
+require('nvim-autopairs').setup({
+  disable_filetype = { "TelescopePrompt" , "vim" },
+})
diff --git a/nixos/config/neovim/lua/plugins/catppuccin.lua b/nixos/config/neovim/lua/plugins/catppuccin.lua
new file mode 100644
index 0000000..be28c77
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/catppuccin.lua
@@ -0,0 +1,29 @@
+require("catppuccin").setup({
+    flavour = "mocha",
+    transparent_background = true,
+    term_colors = true,
+    dim_inactive = {
+        enabled = true,
+        shade = "dark",
+        percentage = 0.15,
+    },
+    styles = {
+        comments = { "italic" },
+        conditionals = { "italic" },
+        loops = {},
+        functions = {},
+        keywords = {},
+        strings = {},
+        variables = {},
+        numbers = {},
+        booleans = { "bold" },
+        properties = {},
+        types = {},
+        operators = {},
+    },
+    integrations = {
+        treesitter = true,
+    },
+})
+
+vim.cmd.colorscheme "catppuccin"
diff --git a/nixos/config/neovim/lua/plugins/codeium.lua b/nixos/config/neovim/lua/plugins/codeium.lua
new file mode 100644
index 0000000..b5fe92d
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/codeium.lua
@@ -0,0 +1 @@
+require("codeium").setup({})
diff --git a/nixos/config/neovim/lua/plugins/colorizer.lua b/nixos/config/neovim/lua/plugins/colorizer.lua
new file mode 100644
index 0000000..1bd1636
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/colorizer.lua
@@ -0,0 +1 @@
+require('colorizer').setup()
diff --git a/nixos/config/neovim/lua/plugins/dashboard.lua b/nixos/config/neovim/lua/plugins/dashboard.lua
new file mode 100644
index 0000000..0e719c7
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/dashboard.lua
@@ -0,0 +1,58 @@
+local alpha = require('alpha')
+local dashboard = require('alpha.themes.dashboard')
+
+local header = {
+    type = 'text',
+    val = 'Neovim',
+    opts = {
+        position = 'center',
+    }
+}
+
+local buttons = {
+    type = 'group',
+    val = {
+        {
+            type = 'text',
+            val = 'Quick actions',
+            opts = { position = 'center' }
+        },
+        {
+            type = 'padding',
+            val = 1,
+        },
+        dashboard.button('<leader>n', '  New File',
+                         ':enew | NvimTreeFocus<CR>',
+                         { desc = 'New file' }),
+        dashboard.button('<leader>o', '  Old Files',
+                         ':Telescope oldfiles<CR>',
+                         { desc = 'Old files' }),
+        dashboard.button('<leader>ff', '  Find File',
+                         ':Telescope find_files<CR>'),
+        dashboard.button('<leader>fg', '  Find in files')
+    }
+}
+
+alpha.setup {
+    layout = {
+        {
+            type = 'padding',
+            val = 2,
+        },
+        header,
+        {
+            type = 'padding',
+            val = 2,
+        },
+        buttons,
+        {
+            type = 'padding',
+            val = 2,
+        },
+    },
+}
+
+--	vim.api.nvim_create_autocmd("User", {
+--	    pattern = "AlphaReady",
+--	    command = "set showtabline=0 | set laststatus=0",
+--	})
diff --git a/nixos/config/neovim/lua/plugins/harpoon.lua b/nixos/config/neovim/lua/plugins/harpoon.lua
new file mode 100644
index 0000000..dc1b3ce
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/harpoon.lua
@@ -0,0 +1,10 @@
+local mark = require("harpoon.mark")
+local ui = require("harpoon.ui")
+
+vim.keymap.set("n", "<leader>a", mark.add_file)
+vim.keymap.set("n", "<C-h>", ui.toggle_quick_menu)
+
+vim.keymap.set("n", "<C-n>", function() ui.nav_file(1) end)
+vim.keymap.set("n", "<C-e>", function() ui.nav_file(2) end)
+vim.keymap.set("n", "<C-i>", function() ui.nav_file(3) end)
+vim.keymap.set("n", "<C-o>", function() ui.nav_file(4) end)
diff --git a/nixos/config/neovim/lua/plugins/init.lua b/nixos/config/neovim/lua/plugins/init.lua
new file mode 100644
index 0000000..c781738
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/init.lua
@@ -0,0 +1,11 @@
+require("plugins.lsp")
+require("plugins.catppuccin")
+require("plugins.treesitter")
+require("plugins.telescope")
+require("plugins.harpoon")
+require("plugins.dashboard")
+require("plugins.codeium")
+require("plugins.lualine")
+require("plugins.autopairs")
+require("plugins.colorizer")
+require("plugins.lastplace")
diff --git a/nixos/config/neovim/lua/plugins/lastplace.lua b/nixos/config/neovim/lua/plugins/lastplace.lua
new file mode 100644
index 0000000..52d96cc
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/lastplace.lua
@@ -0,0 +1 @@
+require('nvim-lastplace').setup()
diff --git a/nixos/config/neovim/lua/plugins/lsp.lua b/nixos/config/neovim/lua/plugins/lsp.lua
new file mode 100644
index 0000000..b9c5d3c
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/lsp.lua
@@ -0,0 +1,40 @@
+local lsp_zero = require("lsp-zero")
+
+lsp_zero.on_attach(function(client,buffer)
+	lsp_zero.default_keymaps({buffer = bufnr})
+  lsp_zero.buffer_autoformat()
+end)
+
+require'lspconfig'.clangd.setup{}
+require'lspconfig'.hls.setup{}
+require'lspconfig'.nil_ls.setup{}
+require'lspconfig'.rust_analyzer.setup{}
+
+local lspkind = require('lspkind')
+local cmp = require('cmp')
+local cmp_action = require('lsp-zero').cmp_action()
+
+cmp.setup({
+  preselect = 'none',
+	completion = {
+		completeopt = 'menu,menuone,noinsert,noselect'
+	},
+  formatting = {
+    format = lspkind.cmp_format({
+      mode = 'symbol',
+      maxwidth = 50,
+      ellipsis_char = '...',
+      symbol_map = { Codeium = '' },
+    })
+  },
+  mapping = cmp.mapping.preset.insert({
+    ['<CR>'] = cmp.mapping.confirm({select = false}),
+		['<Tab>'] = cmp_action.tab_complete(),
+		['<S-Tab>'] = cmp_action.select_prev_or_fallback(),
+    ['<C-Space>'] = cmp.mapping.complete(),
+  }),
+	sources = {
+		{ name = "nvim_lsp" },
+		{ name = "codeium" }
+	}
+})
diff --git a/nixos/config/neovim/lua/plugins/lualine.lua b/nixos/config/neovim/lua/plugins/lualine.lua
new file mode 100644
index 0000000..5c6c2c0
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/lualine.lua
@@ -0,0 +1,13 @@
+require('lualine').setup{
+  options = {
+    theme = 'palenight',
+  },
+  tabline = {
+    lualine_a = {'buffers'},
+    lualine_b = {},
+    lualine_c = {},
+    lualine_x = {},
+    lualine_y = {},
+    lualine_z = {},
+  },
+}
diff --git a/nixos/config/neovim/lua/plugins/telescope.lua b/nixos/config/neovim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..a54f9de
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/telescope.lua
@@ -0,0 +1,7 @@
+local builtin = require('telescope.builtin')
+vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
+vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
+vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
+vim.keymap.set('n', '<leader>fg', function()
+	builtin.grep_string({ search = vim.fn.input("Grep > ") });
+end)
diff --git a/nixos/config/neovim/lua/plugins/treesitter.lua b/nixos/config/neovim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..db84143
--- /dev/null
+++ b/nixos/config/neovim/lua/plugins/treesitter.lua
@@ -0,0 +1,17 @@
+require'nvim-treesitter.configs'.setup {
+  -- A list of parser names, or "all" (the five listed parsers should always be installed)
+  ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "go", "rust", "haskell" },
+
+  -- Install parsers synchronously (only applied to `ensure_installed`)
+  sync_install = false,
+
+  -- Automatically install missing parsers when entering buffer
+  -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
+  auto_install = true,
+
+  highlight = {
+    enable = true,
+
+    additional_vim_regex_highlighting = false,
+  },
+}
diff --git a/nixos/config/neovim/lua/venomade/clipboard.lua b/nixos/config/neovim/lua/venomade/clipboard.lua
new file mode 100644
index 0000000..0a53a29
--- /dev/null
+++ b/nixos/config/neovim/lua/venomade/clipboard.lua
@@ -0,0 +1,14 @@
+vim.cmd('set clipboard+=unnamedplus')
+
+function CopyToClipboard()
+    local selected_text = vim.fn.getline("'<,'>")
+    vim.fn.setreg("+", selected_text)
+end
+
+function PasteFromClipboard()
+    local clipboard_text = vim.fn.getreg("+")
+    vim.fn.setline('.', clipboard_text)
+end
+
+vim.api.nvim_set_keymap('x', '<Leader>y', [[:lua CopyToClipboard()<CR>]], { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<Leader>p', [[:lua PasteFromClipboard()<CR>]], { noremap = true, silent = true })
diff --git a/nixos/config/neovim/lua/venomade/config.lua b/nixos/config/neovim/lua/venomade/config.lua
new file mode 100644
index 0000000..635f403
--- /dev/null
+++ b/nixos/config/neovim/lua/venomade/config.lua
@@ -0,0 +1,41 @@
+vim.opt.nu = true
+vim.opt.rnu = true
+
+vim.opt.tabstop = 2
+vim.opt.softtabstop = 2
+vim.opt.shiftwidth = 2
+vim.opt.expandtab = true
+vim.opt.autoindent = true
+
+vim.opt.smartindent = true
+
+vim.opt.wrap = false
+
+vim.opt.swapfile = false
+vim.opt.backup = false
+vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
+vim.opt.undofile = true
+
+vim.opt.hlsearch = false
+vim.opt.incsearch = true
+
+vim.opt.termguicolors = true
+
+vim.opt.scrolloff = 5
+
+vim.opt.updatetime = 50
+
+vim.opt.splitbelow = true
+vim.opt.splitright = true
+
+vim.opt.encoding = "utf-8"
+
+vim.opt.shell = "zsh"
+
+vim.opt.ignorecase = true
+vim.opt.smartcase = true
+vim.opt.incsearch = true
+
+vim.opt.title = true
+
+vim.cmd "set showtabline=0 | set laststatus=0"
diff --git a/nixos/config/neovim/lua/venomade/init.lua b/nixos/config/neovim/lua/venomade/init.lua
new file mode 100644
index 0000000..590b6c8
--- /dev/null
+++ b/nixos/config/neovim/lua/venomade/init.lua
@@ -0,0 +1,5 @@
+require("venomade.remap")
+require("venomade.lazy")
+require("venomade.config")
+require("venomade.clipboard")
+require("venomade.neovide")
diff --git a/nixos/config/neovim/lua/venomade/lazy.lua b/nixos/config/neovim/lua/venomade/lazy.lua
new file mode 100644
index 0000000..3d5bebe
--- /dev/null
+++ b/nixos/config/neovim/lua/venomade/lazy.lua
@@ -0,0 +1,42 @@
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not vim.loop.fs_stat(lazypath) then
+  vim.fn.system({
+    "git",
+    "clone",
+    "--filter=blob:none",
+    "https://github.com/folke/lazy.nvim.git",
+    "--branch=stable",
+    lazypath,
+  })
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("lazy").setup({
+	-- Telescope Fuzzy Finder
+	{'nvim-telescope/telescope.nvim', tag = '0.1.3', dependencies = {'nvim-lua/plenary.nvim'}},
+	-- Catppuccin color scheme
+	{"catppuccin/nvim", name = "catppuccin", priority = 1000},
+	-- Treesitter syntax highlighting
+	{"nvim-treesitter/nvim-treesitter", build = ":TSUpdate"},
+	-- Harpoon bookmarking
+	{"theprimeagen/harpoon"},
+	-- LSP ZERO
+	{'VonHeikemen/lsp-zero.nvim', branch = 'v3.x'},
+	{'neovim/nvim-lspconfig', dependencies = {'hrsh7th/cmp-nvim-lsp'}},
+	{'hrsh7th/nvim-cmp', dependencies = {'L3MON4D3/LuaSnip'}},
+	-- Codeium AI Completion
+	{'Exafunction/codeium.nvim', dependencies = {'nvim-lua/plenary.nvim', 'hrsh7th/nvim-cmp'}},
+	-- Dashboard
+	{'goolord/alpha-nvim', dependencies = {'nvim-tree/nvim-web-devicons'}},
+  -- LSP Icons
+  {'onsails/lspkind.nvim'},
+  -- Bufferline
+  {'nvim-lualine/lualine.nvim', dependencies = {'nvim-tree/nvim-web-devicons'}},
+  -- Autoparis
+  {'windwp/nvim-autopairs'},
+  -- Color Highlighting
+  {'norcalli/nvim-colorizer.lua'},
+  -- Return to last edit position
+  {'ethanholz/nvim-lastplace'},
+})
+
diff --git a/nixos/config/neovim/lua/venomade/neovide.lua b/nixos/config/neovim/lua/venomade/neovide.lua
new file mode 100644
index 0000000..16f5ffb
--- /dev/null
+++ b/nixos/config/neovim/lua/venomade/neovide.lua
@@ -0,0 +1,20 @@
+if vim.g.neovide then
+  vim.opt.guifont = { "FantasqueSansM Nerd Font", ":h12" }
+
+  vim.g.neovide_scale_factor = 1.0
+
+  --Transparency
+  -- Helper function for transparency formatting
+  local alpha = function()
+    return string.format("%x", math.floor(255 * vim.g.transparency or 0.8))
+  end
+
+  vim.g.neovide_transparency = 0.92
+  vim.g.transparency = 0.92
+  -- vim.g.neovide_background_color = "#1e1e2e" .. alpha()
+
+  vim.g.neovide_window_blurred = true
+  vim.g.neovide_floating_blur_amount_x = 2.0
+  vim.g.neovide_floating_blur_amount_y = 2.0
+
+end
diff --git a/nixos/config/neovim/lua/venomade/remap.lua b/nixos/config/neovim/lua/venomade/remap.lua
new file mode 100644
index 0000000..a81ba80
--- /dev/null
+++ b/nixos/config/neovim/lua/venomade/remap.lua
@@ -0,0 +1,7 @@
+vim.g.mapleader = " "
+vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
+
+-- Buffers
+vim.keymap.set("n", "<leader>bk", vim.cmd.bdelete)
+vim.keymap.set("n", "<leader>bn", vim.cmd.bnext)
+vim.keymap.set("n", "<leader>bp", vim.cmd.bprev)