{ config, pkgs, inputs, ... }: { programs.nixvim = { enable = true; viAlias = true; vimAlias = true; opts = { number = true; relativenumber = true; shiftwidth = 2; tabstop = 2; expandtab = true; incsearch = true; }; # nvim mapleader globals.mapleader = " "; # colorscheme colorschemes.nord.enable = true; # nvim plugins plugins.indent-blankline.enable = true; plugins.lualine.enable = true; plugins.lsp = { enable = true; # lsp for typst servers.tinymist = { enable = true; settings = { formatterMode = "typstyle"; exportPdf = "onSave"; semanticTokens = "disable"; # treesitter handles highlighting better }; }; # minimal lsp keymaps keymaps.lspBuf = { "K" = "hover"; "gd" = "definition"; "gr" = "references"; "f" = "format"; "rn" = "rename"; "ca" = "code_action"; }; }; plugins.nix.enable = true; plugins.nvim-tree.enable = true; plugins.telescope.enable = true; plugins.treesitter = { enable = true; settings.ensure_installed = [ "typst" ]; }; plugins.typst-preview = { enable = true; settings = { open_cmd = "firefox %s"; dependencies_bin = { tinymist = "tinymist"; websocat = null; }; }; }; plugins.typst-vim = { enable = true; settings.pdf_viewer = "zathura"; }; plugins.web-devicons.enable = true; extraPlugins = [ pkgs.vimPlugins.plenary-nvim ]; }; }