Flake for my NixOS devices

Switch to conform for formatters

bwc9876.dev a82805bc ccde1fe7

verified
+45 -21
+45 -21
nixosModules/dev/nvim.nix
··· 186 186 options.desc = "Cut to system clipboard"; 187 187 } 188 188 { 189 + action = ''<cmd>Format<cr>''; 190 + key = "<C-S-I>"; 191 + options.desc = "Format Buffer"; 192 + } 193 + { 189 194 group = "Tab Navigation"; 190 195 prefix = "<Tab>"; 191 196 keys = [ ··· 541 546 542 547 treesitter = { 543 548 enable = true; 544 - languageRegister.mdx = "markdown"; 545 - luaConfig.post = '' 546 - require('mdx').setup() 547 - ''; 549 + # languageRegister.mdx = "markdown"; 550 + # luaConfig.post = '' 551 + # require('mdx').setup() 552 + # ''; 548 553 settings = { 549 554 highlight.enable = true; 550 555 }; ··· 770 775 }; 771 776 }; 772 777 773 - none-ls = { 774 - enable = true; 775 - sources.formatting = { 776 - prettier = { 777 - enable = true; 778 - disableTsServerFormatter = true; 779 - }; 780 - yamlfmt.enable = true; 781 - typstyle.enable = true; 782 - markdownlint.enable = true; 783 - }; 784 - sources.diagnostics = { 785 - markdownlint.enable = true; 786 - }; 787 - }; 778 + # none-ls = { 779 + # enable = true; 780 + # sources.formatting = { 781 + # prettier = { 782 + # enable = true; 783 + # disableTsServerFormatter = true; 784 + # }; 785 + # yamlfmt.enable = true; 786 + # typstyle.enable = true; 787 + # markdownlint.enable = true; 788 + # }; 789 + # sources.diagnostics = { 790 + # markdownlint.enable = true; 791 + # }; 792 + # }; 788 793 789 794 cmp = { 790 795 enable = true; ··· 811 816 rainbow-delimiters.enable = true; 812 817 preview.enable = true; 813 818 814 - lsp-format.enable = true; 815 - lspkind.enable = true; 816 819 # jupytext.enable = true; 817 820 818 821 # Broken ··· 823 826 # dump_cmd = "xxd -g 1 -u"; 824 827 # }; 825 828 # }; 829 + 830 + conform-nvim = { 831 + enable = true; 832 + settings.default_format_opts = { 833 + lsp_format = "prefer"; 834 + }; 835 + # Taken from https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md#format-command 836 + luaConfig.post = '' 837 + vim.api.nvim_create_user_command("Format", function(args) 838 + local range = nil 839 + if args.count ~= -1 then 840 + local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] 841 + range = { 842 + start = { args.line1, 0 }, 843 + ["end"] = { args.line2, end_line:len() }, 844 + } 845 + end 846 + require("conform").format({ async = true, lsp_format = "fallback", range = range }) 847 + end, { range = true }) 848 + ''; 849 + }; 826 850 827 851 lspsaga = { 828 852 enable = true;