aboutsummaryrefslogtreecommitdiff
path: root/modules/home/i3wm/neovim.nix
diff options
context:
space:
mode:
authorNatasha Nightshade <31557030-TashaTheInnkeeper@users.noreply.gitlab.com>2026-02-02 13:35:51 +0100
committerNatasha Nightshade <31557030-TashaTheInnkeeper@users.noreply.gitlab.com>2026-02-02 13:35:51 +0100
commit0423ac08769fce26e4a75ea382874c06d97526f6 (patch)
tree9d8a1a934ecf582502f556cc61af0da687840d70 /modules/home/i3wm/neovim.nix
parent5c741252de752af281628dd7c8c780c746236088 (diff)
parent0ed5c638945192dc5e4a099fded4db164ba603a2 (diff)
Merge branch 'master' into 'main'
merge master into main See merge request natasha-linux/nixos/dots!1
Diffstat (limited to 'modules/home/i3wm/neovim.nix')
-rw-r--r--modules/home/i3wm/neovim.nix101
1 files changed, 101 insertions, 0 deletions
diff --git a/modules/home/i3wm/neovim.nix b/modules/home/i3wm/neovim.nix
new file mode 100644
index 0000000..e59fd3d
--- /dev/null
+++ b/modules/home/i3wm/neovim.nix
@@ -0,0 +1,101 @@
+{ pkgs, ... }:
+
+{
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ viAlias = true;
+ vimAlias = true;
+ withNodeJs = true;
+
+ # +ANT FIX
+ plugins = []; # disable HM plugin processing
+
+ extraLuaConfig = ''
+ -- LazyVim bootstrap
+ 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({
+ spec = {
+ { "LazyVim/LazyVim", import = "lazyvim.plugins" },
+ { import = "lazyvim.plugins.extras.lang.tex" },
+ { import = "lazyvim.plugins.extras.lang.markdown" },
+ { import = "lazyvim.plugins.extras.ui.mini-animate" },
+ { import = "lazyvim.plugins.extras.lang.typescript" },
+ { import = "lazyvim.plugins.extras.lang.python" },
+ { import = "lazyvim.plugins.extras.lang.rust" },
+ { import = "lazyvim.plugins.extras.lang.nix" },
+
+ {
+ "lervag/vimtex",
+ lazy = false,
+ init = function()
+ vim.g.vimtex_view_method = "zathura"
+ end
+ },
+
+ {
+ "MeanderingProgrammer/render-markdown.nvim",
+ opts = {
+ enabled = true,
+ file_types = { "markdown", "rmd" },
+ colorscheme = "default",
+ },
+ dependencies = {
+ "nvim-treesitter/nvim-treesitter",
+ "nvim-tree/nvim-web-devicons",
+ },
+ },
+
+ { "mracos/mermaid.vim", ft = { "mermaid" } },
+ },
+
+ defaults = { lazy = false, version = false },
+ checker = { enabled = true },
+
+ performance = {
+ rtp = {
+ disabled_plugins = {
+ "gzip", "tarPlugin", "tohtml",
+ "tutor", "zipPlugin",
+ },
+ },
+ },
+ })
+
+ -- LaTeX wrapping
+ vim.api.nvim_create_autocmd("FileType", {
+ pattern = "tex",
+ callback = function()
+ vim.opt_local.wrap = true
+ vim.opt_local.linebreak = true
+ vim.opt_local.breakindent = true
+ vim.opt_local.breakindentopt = "shift:2"
+ vim.opt_local.textwidth = 0
+ end,
+ })
+
+ -- Disable diagnostics in markdown
+ vim.api.nvim_create_autocmd("FileType", {
+ pattern = "markdown",
+ callback = function()
+ vim.diagnostic.disable(0)
+ end,
+ })
+
+ -- Nix LSP
+ local lspconfig = require("lspconfig")
+ lspconfig.nil_ls.setup({ cmd = { "nil" } })
+
+ vim.opt.clipboard = "unnamedplus"
+ '';
+ };
+} \ No newline at end of file