From 4d8d514eaa028a60b1c5cdd6409f19eafaf1e197 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Fri, 10 May 2024 02:39:22 +0300 Subject: [PATCH] neovim: add first nixeovim config --- flake.lock | 468 ++---------------- flake.nix | 12 +- .../home-manager/programs/editors/neovim.nix | 143 +----- neovim/dev.nix | 125 +++++ users/jan/default.nix | 8 - 5 files changed, 164 insertions(+), 592 deletions(-) create mode 100644 neovim/dev.nix diff --git a/flake.lock b/flake.lock index d4c7b89..7913cab 100644 --- a/flake.lock +++ b/flake.lock @@ -45,70 +45,6 @@ "type": "github" } }, - "cmp-luasnip": { - "flake": false, - "locked": { - "lastModified": 1666943769, - "narHash": "sha256-Z5SPy3j2oHFxJ7bK8DP8Q/oRyLEMlnWyIfDaQcNVIS0=", - "owner": "saadparwaiz1", - "repo": "cmp_luasnip", - "rev": "18095520391186d634a0045dacaa346291096566", - "type": "github" - }, - "original": { - "owner": "saadparwaiz1", - "repo": "cmp_luasnip", - "type": "github" - } - }, - "cmp-nvim-lsp": { - "flake": false, - "locked": { - "lastModified": 1687494203, - "narHash": "sha256-mU0soCz79erJXMMqD/FyrJZ0mu2n6fE0deymPzQlxts=", - "owner": "hrsh7th", - "repo": "cmp-nvim-lsp", - "rev": "44b16d11215dce86f253ce0c30949813c0a90765", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "cmp-nvim-lsp", - "type": "github" - } - }, - "cmp-tabby": { - "flake": false, - "locked": { - "lastModified": 1681450408, - "narHash": "sha256-0swK9LV91SeZO0SQl8zVs7GmQNMYwQm7XyQE0iPbc/w=", - "owner": "nzlov", - "repo": "cmp-tabby", - "rev": "c0cb81024ee1500a722b3c35f64dd282c11bc7ba", - "type": "github" - }, - "original": { - "owner": "nzlov", - "repo": "cmp-tabby", - "type": "github" - } - }, - "editorconfig-nvim": { - "flake": false, - "locked": { - "lastModified": 1673364897, - "narHash": "sha256-pR57tITdVGF4luEmmRYv/XFb35E3KDfcgYRijkPAc+Y=", - "owner": "gpanders", - "repo": "editorconfig.nvim", - "rev": "5b9e303e1d6f7abfe616ce4cc8d3fffc554790bf", - "type": "github" - }, - "original": { - "owner": "gpanders", - "repo": "editorconfig.nvim", - "type": "github" - } - }, "firefox-addons": { "inputs": { "flake-utils": "flake-utils", @@ -195,22 +131,6 @@ "type": "github" } }, - "gitsigns-nvim": { - "flake": false, - "locked": { - "lastModified": 1695571272, - "narHash": "sha256-VJCtDnPSo5RgSC+czSIOvqGhpUT0dzvCzbLtup+Ctyo=", - "owner": "lewis6991", - "repo": "gitsigns.nvim", - "rev": "bdeba1cec3faddd89146690c10b9a87949c0ee66", - "type": "github" - }, - "original": { - "owner": "lewis6991", - "repo": "gitsigns.nvim", - "type": "github" - } - }, "hardware": { "locked": { "lastModified": 1711352745, @@ -290,22 +210,6 @@ "type": "github" } }, - "hop-nvim": { - "flake": false, - "locked": { - "lastModified": 1694283445, - "narHash": "sha256-SnuFeD/lrMxKtpBRPgIwdG0kVF7BWe02PiV7URVDASI=", - "owner": "phaazon", - "repo": "hop.nvim", - "rev": "1a1eceafe54b5081eae4cb91c723abd1d450f34b", - "type": "github" - }, - "original": { - "owner": "phaazon", - "repo": "hop.nvim", - "type": "github" - } - }, "lan-mouse": { "inputs": { "nixpkgs": [ @@ -327,135 +231,6 @@ "type": "github" } }, - "lspsaga-nvim": { - "flake": false, - "locked": { - "lastModified": 1665291018, - "narHash": "sha256-jkoEP5jeIZDAK/27gpNTXtW10/Ev9nB5RqUahPhja2Y=", - "owner": "glepnir", - "repo": "lspsaga.nvim", - "rev": "f33bc99d0ed3ed691a58b3339decf4e1933c3f9e", - "type": "github" - }, - "original": { - "owner": "glepnir", - "repo": "lspsaga.nvim", - "rev": "f33bc99d0ed3ed691a58b3339decf4e1933c3f9e", - "type": "github" - } - }, - "lualine-lsp-progress": { - "flake": false, - "locked": { - "lastModified": 1634947677, - "narHash": "sha256-8HMtydFDzTxsuKvce+bIra9vZ9zHfEBHyR346W635b8=", - "owner": "arkav", - "repo": "lualine-lsp-progress", - "rev": "56842d097245a08d77912edf5f2a69ba29f275d7", - "type": "github" - }, - "original": { - "owner": "arkav", - "repo": "lualine-lsp-progress", - "type": "github" - } - }, - "lualine-nvim": { - "flake": false, - "locked": { - "lastModified": 1691046210, - "narHash": "sha256-v8finXk+sLNaFMA7pSHhEu0WF5mhPYWHEKhl0IKBv8c=", - "owner": "nvim-lualine", - "repo": "lualine.nvim", - "rev": "45e27ca739c7be6c49e5496d14fcf45a303c3a63", - "type": "github" - }, - "original": { - "owner": "nvim-lualine", - "repo": "lualine.nvim", - "type": "github" - } - }, - "luasnip": { - "flake": false, - "locked": { - "lastModified": 1695621384, - "narHash": "sha256-5rr5F1PJMqKvIgGPqYx27Id0xW97lZZU1FoEA1rVfjI=", - "owner": "L3MON4D3", - "repo": "LuaSnip", - "rev": "480b032f6708573334f4437d3f83307d143f1a72", - "type": "github" - }, - "original": { - "owner": "L3MON4D3", - "repo": "LuaSnip", - "type": "github" - } - }, - "myneovim": { - "inputs": { - "cmp-luasnip": "cmp-luasnip", - "cmp-nvim-lsp": "cmp-nvim-lsp", - "cmp-tabby": "cmp-tabby", - "editorconfig-nvim": "editorconfig-nvim", - "flake-utils": [ - "flake-utils" - ], - "gitsigns-nvim": "gitsigns-nvim", - "hop-nvim": "hop-nvim", - "lspsaga-nvim": "lspsaga-nvim", - "lualine-lsp-progress": "lualine-lsp-progress", - "lualine-nvim": "lualine-nvim", - "luasnip": "luasnip", - "neoformat": "neoformat", - "nix2lua": "nix2lua", - "nixpkgs": [ - "nixpkgs-unstable" - ], - "nlsp-settings-nvim": "nlsp-settings-nvim", - "nvim-cmp": "nvim-cmp", - "nvim-colorizer": "nvim-colorizer", - "nvim-lspconfig": "nvim-lspconfig", - "nvim-orgmode": "nvim-orgmode", - "nvim-tree-lua": "nvim-tree-lua", - "nvim-web-devicons": "nvim-web-devicons", - "org-bullets-nvim": "org-bullets-nvim", - "plenary-nvim": "plenary-nvim", - "tabby-nvim": "tabby-nvim", - "telescope-live-grep-args-nvim": "telescope-live-grep-args-nvim", - "telescope-nvim": "telescope-nvim", - "theme": "theme" - }, - "locked": { - "lastModified": 1713273797, - "narHash": "sha256-OZArDAd/qeIVFXiJxKqjFlCtLjrqBePTgoQLzp2ICNI=", - "ref": "refs/heads/main", - "rev": "6bbb5622166b9179f1a135f65cb91280d294109c", - "revCount": 116, - "type": "git", - "url": "https://git.pleshevski.ru/mynix/neovim" - }, - "original": { - "type": "git", - "url": "https://git.pleshevski.ru/mynix/neovim" - } - }, - "neoformat": { - "flake": false, - "locked": { - "lastModified": 1695341413, - "narHash": "sha256-b1IHXoRvQu4QCTR+A+KQAhj6wUD5jinjdkxu9w8ukyY=", - "owner": "sbdchd", - "repo": "neoformat", - "rev": "aedb6f9d3f53d5da229095f7d761d749f8c5c7e0", - "type": "github" - }, - "original": { - "owner": "sbdchd", - "repo": "neoformat", - "type": "github" - } - }, "nil": { "inputs": { "flake-utils": [ @@ -482,11 +257,11 @@ }, "nix2lua": { "locked": { - "lastModified": 1709128456, - "narHash": "sha256-tRduS+XFI6VceWPQzjkuvlyn/Oe5NsQUS/wyEC69dvk=", + "lastModified": 1714950962, + "narHash": "sha256-BFXPReb658A4OmuPMMkGN77sTDmXDMnii4IC997ZPvo=", "ref": "refs/heads/main", - "rev": "f152767145e61fea96eddb1b550ab3f25701e0ad", - "revCount": 18, + "rev": "65d4a061a42dbbb2cc326a4554dc8bac350999b0", + "revCount": 40, "type": "git", "url": "https://git.pleshevski.ru/mynix/nix2lua" }, @@ -495,6 +270,30 @@ "url": "https://git.pleshevski.ru/mynix/nix2lua" } }, + "nixeovim": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nix2lua": "nix2lua", + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1715296620, + "narHash": "sha256-H+vrWw2Pf4a7X24ldqWwu3Q10HGygi+dD31S9WySrro=", + "ref": "refs/heads/main", + "rev": "f3926f63655a87d360eac52d7df8b9ef2d6faa73", + "revCount": 57, + "type": "git", + "url": "https://git.pleshevski.ru/pleshevskiy/nixeovim" + }, + "original": { + "type": "git", + "url": "https://git.pleshevski.ru/pleshevskiy/nixeovim" + } + }, "nixpkgs": { "locked": { "lastModified": 1627814220, @@ -543,151 +342,6 @@ "type": "github" } }, - "nlsp-settings-nvim": { - "flake": false, - "locked": { - "lastModified": 1692758329, - "narHash": "sha256-Jj74rwBpqdXXykNuvJfESUOL+ntPLtzSSHqh2NcUzDo=", - "owner": "tamago324", - "repo": "nlsp-settings.nvim", - "rev": "2a52e793d4f293c0e1d61ee5794e3ff62bfbbb5d", - "type": "github" - }, - "original": { - "owner": "tamago324", - "repo": "nlsp-settings.nvim", - "type": "github" - } - }, - "nvim-cmp": { - "flake": false, - "locked": { - "lastModified": 1693063902, - "narHash": "sha256-WGck3By9GhnBUmzLGi2wnKjDreQx5kBOmHCbC5BZhfo=", - "owner": "hrsh7th", - "repo": "nvim-cmp", - "rev": "5dce1b778b85c717f6614e3f4da45e9f19f54435", - "type": "github" - }, - "original": { - "owner": "hrsh7th", - "repo": "nvim-cmp", - "type": "github" - } - }, - "nvim-colorizer": { - "flake": false, - "locked": { - "lastModified": 1591879145, - "narHash": "sha256-6YrnItxExL2C8pNIdLd+hXCjsB2MbZANwWkah6dreD8=", - "owner": "norcalli", - "repo": "nvim-colorizer.lua", - "rev": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6", - "type": "github" - }, - "original": { - "owner": "norcalli", - "repo": "nvim-colorizer.lua", - "type": "github" - } - }, - "nvim-lspconfig": { - "flake": false, - "locked": { - "lastModified": 1695879754, - "narHash": "sha256-eUyyB/P52AZz3rl2n9ntGIp3b0x0s/TF/fQZ/30UeC0=", - "owner": "neovim", - "repo": "nvim-lspconfig", - "rev": "c7077400d004c1a424d210af76ce198250db72fd", - "type": "github" - }, - "original": { - "owner": "neovim", - "repo": "nvim-lspconfig", - "type": "github" - } - }, - "nvim-orgmode": { - "flake": false, - "locked": { - "lastModified": 1669843678, - "narHash": "sha256-zut3orH6okjb9NLvpoQ/S0jDTKGEe41ULXOKjBPqYO0=", - "owner": "nvim-orgmode", - "repo": "orgmode", - "rev": "fc9bb0f5823d01e4008e4b86663772d4148aa9ce", - "type": "github" - }, - "original": { - "owner": "nvim-orgmode", - "repo": "orgmode", - "rev": "fc9bb0f5823d01e4008e4b86663772d4148aa9ce", - "type": "github" - } - }, - "nvim-tree-lua": { - "flake": false, - "locked": { - "lastModified": 1695716495, - "narHash": "sha256-Fkchn7UuIHPmVFFrx1kzsE2lviJrAFAe9tHu73HnS/w=", - "owner": "kyazdani42", - "repo": "nvim-tree.lua", - "rev": "934469b9b6df369e198fb3016969e56393b0dc07", - "type": "github" - }, - "original": { - "owner": "kyazdani42", - "repo": "nvim-tree.lua", - "type": "github" - } - }, - "nvim-web-devicons": { - "flake": false, - "locked": { - "lastModified": 1695598844, - "narHash": "sha256-k1oq5TBF0ZAfC1aihw/HLrvOHwZSX8ToDU3aZ3YXdzE=", - "owner": "kyazdani42", - "repo": "nvim-web-devicons", - "rev": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82", - "type": "github" - }, - "original": { - "owner": "kyazdani42", - "repo": "nvim-web-devicons", - "type": "github" - } - }, - "org-bullets-nvim": { - "flake": false, - "locked": { - "lastModified": 1679902360, - "narHash": "sha256-x6S4WdgfUr7HGEHToSDy3pSHEwOPQalzWhBUipqMtnw=", - "owner": "akinsho", - "repo": "org-bullets.nvim", - "rev": "6e0d60e901bb939eb526139cb1f8d59065132fd9", - "type": "github" - }, - "original": { - "owner": "akinsho", - "repo": "org-bullets.nvim", - "type": "github" - } - }, - "plenary-nvim": { - "flake": false, - "locked": { - "lastModified": 1694526433, - "narHash": "sha256-s3qsKf05X5W1VdZT1vYXGQNK0UaiI+umWUf06Spe4hw=", - "owner": "nvim-lua", - "repo": "plenary.nvim", - "rev": "9ce85b0f7dcfe5358c0be937ad23e456907d410b", - "type": "github" - }, - "original": { - "owner": "nvim-lua", - "repo": "plenary.nvim", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", @@ -697,8 +351,8 @@ "home-manager": "home-manager_2", "home-manager-unstable": "home-manager-unstable", "lan-mouse": "lan-mouse", - "myneovim": "myneovim", "nil": "nil", + "nixeovim": "nixeovim", "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", "wired": "wired" @@ -781,70 +435,6 @@ "type": "github" } }, - "tabby-nvim": { - "flake": false, - "locked": { - "lastModified": 1695278537, - "narHash": "sha256-yzFOD1ERAcZx+PQmBC/aMhHTBUBCccOxRF3x0S6c9nM=", - "owner": "nanozuki", - "repo": "tabby.nvim", - "rev": "9e537762cbb7647357eab22c61c7c5dda00138dd", - "type": "github" - }, - "original": { - "owner": "nanozuki", - "repo": "tabby.nvim", - "type": "github" - } - }, - "telescope-live-grep-args-nvim": { - "flake": false, - "locked": { - "lastModified": 1693245982, - "narHash": "sha256-L2STMQude8DalHF4fYaJZNjvQHB1UtnQx8Gx2fPKcDA=", - "owner": "nvim-telescope", - "repo": "telescope-live-grep-args.nvim", - "rev": "851c0997d55601f2afd7290db0f90dc364e29f58", - "type": "github" - }, - "original": { - "owner": "nvim-telescope", - "repo": "telescope-live-grep-args.nvim", - "type": "github" - } - }, - "telescope-nvim": { - "flake": false, - "locked": { - "lastModified": 1695796462, - "narHash": "sha256-ZNkDZLR3oHe/tkAOpWwN3CF5M+3xooYlUuBT2Hndauw=", - "owner": "nvim-telescope", - "repo": "telescope.nvim", - "rev": "84d53dfdbefbdf84e861a288abc71ef8ccafd04e", - "type": "github" - }, - "original": { - "owner": "nvim-telescope", - "repo": "telescope.nvim", - "type": "github" - } - }, - "theme": { - "flake": false, - "locked": { - "lastModified": 1695478950, - "narHash": "sha256-SV5DTVwcVv6YIb7TGNYwq6rtIG5pFKubK07snXhV7z8=", - "owner": "catppuccin", - "repo": "nvim", - "rev": "3d9a5ed556e289bce6c1fb0af89ec838360641b2", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "nvim", - "type": "github" - } - }, "utils": { "locked": { "lastModified": 1652776076, diff --git a/flake.nix b/flake.nix index 14899d7..8f9e6e3 100644 --- a/flake.nix +++ b/flake.nix @@ -40,14 +40,14 @@ }; # my neovim configuration - myneovim = { - url = "git+https://git.pleshevski.ru/mynix/neovim"; + nixeovim = { + url = "git+https://git.pleshevski.ru/pleshevskiy/nixeovim"; inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.flake-utils.follows = "flake-utils"; }; }; - outputs = inputs @ { self, flake-utils, nixpkgs, ... }: + outputs = { self, flake-utils, nixpkgs, nixeovim, ... } @ inputs: let inherit (flake-utils.lib) eachSystem system; in eachSystem [ system.x86_64-linux ] (system: @@ -55,12 +55,18 @@ pkgs = import nixpkgs { inherit system; }; inherit (pkgs) lib; + nixeovimPackage = config: nixeovim.lib.mkNixeovimPackage { inherit system config; }; nixos-rebuild = pkgs.nixos-rebuild.override { nix = pkgs.nixVersions.stable; }; localMachines = lib.filterAttrs (h: m: m.config.deployment.targetHost == null) self.nixosConfigurations; vpsMachines = lib.filterAttrs (h: m: m.config.deployment.targetHost != null) self.nixosConfigurations; + in { + packages = { + neovim-dev = nixeovimPackage ./neovim/dev.nix; + }; + apps = lib.mapAttrs (name: program: { type = "app"; program = toString program; }) (flake-utils.lib.flattenTree { diff --git a/modules/home-manager/programs/editors/neovim.nix b/modules/home-manager/programs/editors/neovim.nix index 44aea66..5cbb4cd 100644 --- a/modules/home-manager/programs/editors/neovim.nix +++ b/modules/home-manager/programs/editors/neovim.nix @@ -1,133 +1,6 @@ { config, pkgs, lib, ... }: -let - cfg = config.local.programs.editors.neovim; - - # TODO: add more configs - myneovim = pkgs.myneovim.override { - viAlias = true; - vimAlias = true; - enableDevIcons = true; - enableTabby = true; - enableOrgMode = cfg.orgmode.enable; - extraConfig = '' - aug extra_ftdetect - au! - au BufNewFile,BufRead *.d2 setfiletype d2 - au BufNewFile,BufRead *.ncl setfiletype nickel - au BufNewFile,BufRead *.psql setfiletype psql - aug END - ''; - plugins = with pkgs.myneovim.nix2lua; (lib.mkMerge [ - { - nvimTree.settings = { - renderer = { - group_empty = true; - full_name = true; - }; - tab.sync = { - open = true; - close = true; - }; - }; - telescope.settings = { - extensions.live_grep_args = { - auto_quoting = true; - mappings.i = { - "" = join "." [ - (mkCall "require" [ "telescope-live-grep-args.actions" ]) - (mkCall "quote_prompt" [ ]) - ]; - }; - }; - }; - lspSaga.settings = { - border_style = "rounded"; - symbol_in_winbar.enable = false; - code_action_lightbulb.enable = false; - code_action_keys = { quit = ""; }; - definition_action_keys = { quit = ""; }; - rename_action_quit = ""; - }; - lualine.settings = { - options.ignore_focus = [ "NvimTree" ]; - sections = { - lualine_a = [ - [ "filename" (mkNamedField "path" 1) ] - ]; - lualine_b = [ "branch" "diff" "diagnostics" ]; - lualine_c = [ "lsp_progress" ]; - lualine_x = [ "filesize" "filetype" ]; - lualine_y = [ "progress" ]; - lualine_z = [ "location" "mode" ]; - }; - }; - } - - (lib.mkIf cfg.orgmode.enable { - orgmode.settings = { - org_agenda_files = [ "~/orgs/**/*" ]; - org_default_notes_file = "~/orgs/refile.org"; - win_split_mode = "tabnew"; - org_hide_leading_stars = true; - }; - }) - - (lib.mkIf cfg.ltex.enable { - lspConfig.servers.ltex = { - language = "en-US"; - languageToolHttpServerUri = "http://localhost:8081"; - }; - }) - - (lib.mkIf cfg.nix.enable { - lspConfig.servers.nil_ls = { }; - }) - - (lib.mkIf cfg.rust.enable { - lspConfig.servers.rust_analyzer = { - settings.rust-analyzer = { - "server.path" = "rust-analyzer"; - "updates.prompt" = false; - "updates.checkOnStartup" = false; - "checkOnSave.enable" = true; - "checkOnSave.command" = "clippy"; - "cargo.autoreload" = true; - }; - }; - }) - - (lib.mkIf (cfg.typescript.enable || cfg.vue.enable) { - lspConfig.servers = { - tsserver = { }; - eslint = { }; - }; - }) - - (lib.mkIf cfg.vue.enable { - lspConfig.servers.volar = { - init_options = { - typescript.tsdk = "./node_modules/typescript/lib"; - }; - }; - }) - - (lib.mkIf cfg.deno.enable { - lspConfig.servers.denols = { - root_dir = mkCall "root_pattern" [ "deno.json" "deno.jsonc" ]; - }; - }) - - (lib.mkIf cfg.python.enable { - lspConfig.servers.pylsp = { }; - }) - - (lib.mkIf cfg.nickel.enable { - lspConfig.servers.nickel_ls = { }; - }) - ]); - }; -in +let cfg = config.local.programs.editors.neovim; in { options.local.programs.editors.neovim = with lib; { enable = mkEnableOption "neovim"; @@ -137,23 +10,9 @@ in default = false; }; ltex.enable = mkEnableOption "ltex language server"; - orgmode.enable = mkEnableOption "orgmode"; - - nix.enable = mkEnableOption "nix"; - rust.enable = mkEnableOption "rust"; - typescript.enable = mkEnableOption "typescript"; - vue.enable = mkEnableOption "vue"; - deno.enable = mkEnableOption "deno"; - python.enable = mkEnableOption "python"; - - nickel.enable = mkEnableOption "nickel"; }; config = lib.mkIf cfg.enable (lib.mkMerge [ - { - home.packages = [ myneovim ]; - } - (lib.mkIf cfg.ltex.enable { home.packages = [ pkgs.ltex-ls ]; }) diff --git a/neovim/dev.nix b/neovim/dev.nix new file mode 100644 index 0000000..5203d68 --- /dev/null +++ b/neovim/dev.nix @@ -0,0 +1,125 @@ +{ config, modulesPath, lib, ... }: + +let + inherit (lib.mod) ctrl; + inherit (lib.nix2lua) lambda0 set pipe1 require call call0; + + mkLineLimiterGroup = { limit, pattern }: { + "line-limiter-${toString limit}" = { + event = [ "BufNewFile" "BufRead" ]; + inherit pattern; + callback = lambda0 (set "vim.wo.colorcolumn" (toString limit)); + }; + }; +in +{ + imports = [ + "${modulesPath}/profiles/recommended.nix" + ]; + + vim.namedCmd.extra-ftdetect = '' + aug extra_ftdetect + au! + au BufNewFile,BufRead *.d2 setfiletype d2 + au BufNewFile,BufRead *.ncl setfiletype nickel + au BufNewFile,BufRead *.psql setfiletype psql + aug END + ''; + + # Enable fast navigation between windows + vim.keymap.set = map (k: { mode = "n"; lhs = ctrl k; rhs = "${ctrl "w"}${k}"; }) [ "h" "l" "j" "k" ]; + + vim.augroup = lib.mkMerge [ + (mkLineLimiterGroup { + limit = 101; + pattern = [ + "*.nix" + "*.ts" + "*.tsx" + "*.js" + "*.jsx" + "*.rs" + "*.hs" + ]; + }) + (mkLineLimiterGroup { + limit = 81; + pattern = [ + "*.json" + "*.yml" + "*.yaml" + "*.md" + "*.html" + "*.css" + "*.scss" + "*.less" + ]; + }) + ]; + + plugins.navigation = { + nvim-tree.settings = { + renderer = { + group_empty = true; + full_name = true; + }; + tab.sync = { + open = true; + close = true; + }; + }; + telescope.extensions.telescope-live-grep-args-nvim.settings = { + auto_quoting = true; + mappings.i = { + "" = pipe1 + (require "telescope-live-grep-args.actions") + (call0 "quote_prompt") + ; + }; + }; + }; + + plugins.language-server.lspconfig.serverSettings = { + nil_ls = { }; + rust_analyzer = { + settings.rust-analyzer = { + "server.path" = "rust-analyzer"; + "updates.prompt" = false; + "updates.checkOnStartup" = false; + "checkOnSave.enable" = true; + "checkOnSave.command" = "clippy"; + "cargo.autoreload" = true; + }; + }; + tsserver = { }; + eslint = { + # TODO: on attach + /* + vim.cmd([[ + aug eslint_fix + au! + au BufWritePre *.tsx,*.ts,*.jsx,*.js silent! EslintFixAll + aug END + ]]) + */ + + }; + volar = { + init_options = { + typescript.tsdk = "./node_modules/typescript/lib"; + }; + + }; + + ltex = { + language = "en-US"; + languageToolHttpServerUri = "http://localhost:8081"; + }; + + pylsp = { }; + + denols = { + root_dir = call "${config.plugin.nvim-lspconfig.varName}.util.root_pattern" [ "deno.json" "deno.jsonc" ]; + }; + }; +} diff --git a/users/jan/default.nix b/users/jan/default.nix index 86db0c8..ce0c059 100644 --- a/users/jan/default.nix +++ b/users/jan/default.nix @@ -2,7 +2,6 @@ { nixpkgs.overlays = lib.mkAfter [ - inputs.myneovim.overlays.default inputs.nil.overlays.default inputs.wired.overlays.default ]; @@ -74,13 +73,6 @@ enable = lib.mkDefault true; defaultEditor = lib.mkDefault true; ltex.enable = lib.mkDefault true; - - nix.enable = lib.mkDefault true; - rust.enable = lib.mkDefault true; - typescript.enable = lib.mkDefault true; - vue.enable = lib.mkDefault true; - deno.enable = lib.mkDefault true; - python.enable = lib.mkDefault true; }; local.programs.file-managers.vifm.enable = lib.mkDefault true;