diff --git a/flake.lock b/flake.lock index 7db9700..a58b95b 100644 --- a/flake.lock +++ b/flake.lock @@ -287,11 +287,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1701055024, - "narHash": "sha256-eH/2w7+jVdiLIc5sETq3uDDtCadC4s+w740N5G89LH0=", + "lastModified": 1701150737, + "narHash": "sha256-yM9nRmr07ByKuwMieqxDccdcHz5ZK7E2EYB8oeMz1NM=", "owner": "neovim", "repo": "neovim", - "rev": "6343d414369de1f3b259e51438cd4f666d82d3d2", + "rev": "570367ac83cdceeee7d43dadcff7652bd5cc93c5", "type": "github" }, "original": { @@ -312,11 +312,11 @@ ] }, "locked": { - "lastModified": 1701072523, - "narHash": "sha256-rMSwV5RqhzQorvZtvJkkILBxEvwS5zC0dkIXpwK8Rnc=", + "lastModified": 1701158360, + "narHash": "sha256-FW2ItGTvpVD+2kbZa7ABU9GL/BC85t4tIMBOCSXRNB8=", "ref": "refs/heads/master", - "rev": "115ae9f035cdb0ea0ec7c98d39f9c8b9028d2575", - "revCount": 599, + "rev": "9da473e5b5ebd96bb9c5e0b7ce9c4db10108ab25", + "revCount": 600, "type": "git", "url": "https://git.kempkens.io/daniel/nix-overlay" }, @@ -363,11 +363,11 @@ }, "nixos-unstable": { "locked": { - "lastModified": 1701038920, - "narHash": "sha256-qlEfi8fhKK2oJwX4V6BPEo0qbpWQzQYRU4LrDya/zi0=", + "lastModified": 1701127912, + "narHash": "sha256-x/UtyZX/ep6YVENzwcLn+71rwhl70vnUZTuZq7/XFYg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "28f167a2e998faa5a42896add2a43ff5685832a0", + "rev": "c76b72caa421e31d998e4a05387ebd3b40454327", "type": "github" }, "original": { diff --git a/home/config/fonts/NerdFonts/SymbolsNerdFont-Regular.ttf b/home/config/fonts/NerdFonts/SymbolsNerdFont-Regular.ttf new file mode 100644 index 0000000..e7ce229 Binary files /dev/null and b/home/config/fonts/NerdFonts/SymbolsNerdFont-Regular.ttf differ diff --git a/home/config/fonts/NerdFonts/SymbolsNerdFontMono-Regular.ttf b/home/config/fonts/NerdFonts/SymbolsNerdFontMono-Regular.ttf new file mode 100644 index 0000000..7ef73a9 Binary files /dev/null and b/home/config/fonts/NerdFonts/SymbolsNerdFontMono-Regular.ttf differ diff --git a/home/config/fonts.nix b/home/config/fonts/default.nix similarity index 52% rename from home/config/fonts.nix rename to home/config/fonts/default.nix index 837cd35..2821622 100644 --- a/home/config/fonts.nix +++ b/home/config/fonts/default.nix @@ -5,7 +5,7 @@ let pname = "berkeley-mono"; version = "1.009"; - src = ../../secret/fonts/BerkeleyMono; + src = ../../../secret/fonts/BerkeleyMono; dontPatch = true; dontConfigure = true; @@ -19,17 +19,31 @@ let runHook postInstall ''; }; + + nerdfonts = pkgs.stdenvNoCC.mkDerivation rec { + pname = "nerdfonts"; + version = "3.1.1"; + + src = ./NerdFonts; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + doCheck = false; + dontFixup = true; + + installPhase = '' + runHook preInstall + install -Dm644 -t $out/share/fonts/truetype/ *.ttf + runHook postInstall + ''; + }; in { home.packages = with pkgs; [ berkeley-mono jetbrains-mono + nerdfonts noto-fonts - - (nerdfonts.override { - fonts = [ - "NerdFontsSymbolsOnly" - ]; - }) ]; } diff --git a/home/config/nvim/nifoc/theme.fnl b/home/config/nvim/nifoc/theme.fnl index 5fc7a2a..e86583a 100644 --- a/home/config/nvim/nifoc/theme.fnl +++ b/home/config/nvim/nifoc/theme.fnl @@ -42,6 +42,8 @@ (highlight :RainbowDelimiterViolet {:fg mod.colors.pink}) (highlight :RainbowDelimiterCyan {:fg mod.colors.cyan}) ;; cmp + (highlight :PmenuSel {:fg mod.colors.white :bg "#363848"}) + (highlight :CmpCursorLine {:bg "#363848"}) (highlight :CmpItemAbbr {:fg mod.colors.white :bg :NONE}) (highlight :CmpItemAbbrMatch {:fg mod.colors.cyan :bg :NONE :bold true}) (highlight :CmpItemAbbrMatchFuzzy @@ -73,7 +75,8 @@ :CmpItemKindTypeParameter]] (each [_ group (pairs cmp-groups)] (swap-bg-with-fg mod.colors.black group))) - (highlight :CmpItemKindFile {:fg mod.colors.white :bg mod.colors.black}) + (highlight :CmpItemKindFile {:fg mod.colors.black :bg mod.colors.white}) + (highlight :CmpItemKindFolder {:fg mod.colors.black :bg mod.colors.white}) (highlight :CmpItemKindTabNine {:fg mod.colors.black :bg mod.colors.bright_magenta})) diff --git a/home/config/nvim/plugins/cmp.fnl b/home/config/nvim/plugins/cmp.fnl index b163ff9..761a767 100644 --- a/home/config/nvim/plugins/cmp.fnl +++ b/home/config/nvim/plugins/cmp.fnl @@ -7,7 +7,9 @@ [{:name :cmp_tabnine}] [])] (vim.list_extend (vim.list_extend [{:name :nvim_lsp}] maybe-tabnine) - [{:name :async_path} {:name :luasnip}]))) + [{:name :async_path} + {:name :luasnip} + {:name :cmp_yanky :option {:minLength 3}}]))) (fn comparator-list [] (let [compare (require :cmp.config.compare) @@ -46,7 +48,7 @@ (cmp.setup {:sources (cmp.config.sources (main-sources) [{:name :treesitter :keyword_length 3} - {:name :buffer :keyword_length 3}]) + {:name :buffer}]) :sorting {:priority_weight 2 :comparators (comparator-list)} :mapping (cmp.mapping.preset.insert {: (cmp.mapping {:i (cmp.mapping.abort) :c (cmp.mapping.close)}) @@ -64,7 +66,7 @@ : (cmp.mapping.confirm {:behavior cmp.ConfirmBehavior.Insert :select true}) : (cmp.mapping.confirm {:select true})}) - :window {:completion {:winhighlight "Normal:Pmenu,FloatBorder:Pmenu,Search:None" + :window {:completion {:winhighlight "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:CmpCursorLine,Search:None" :col_offset -3 :side_padding 0 :scrollbar true} diff --git a/home/config/nvim/plugins/lsp.fnl b/home/config/nvim/plugins/lsp.fnl index 0af66b3..3cf4024 100644 --- a/home/config/nvim/plugins/lsp.fnl +++ b/home/config/nvim/plugins/lsp.fnl @@ -1,5 +1,6 @@ (let [lsp (require :lspconfig) cmp (require :cmp_nvim_lsp) + schemastore (require :schemastore) navic (require :nvim-navic) diagnostic (require :nifoc.diagnostic) augroup (vim.api.nvim_create_augroup :NifocLsp {:clear true}) @@ -44,8 +45,7 @@ :html :jsonls :svelte - :taplo - :yamlls]] + :taplo]] ;; Default (each [_ name (pairs default-servers)] ((. lsp name :setup) default-config)) @@ -53,9 +53,24 @@ (when (= (vim.fn.executable :elixir-ls) 1) (lsp.elixirls.setup (->> {:cmd [:elixir-ls]} (vim.tbl_extend :force default-config)))) + (lsp.jsonls.setup (->> {:settings {:json {:schemas (schemastore.json.schemas) + :validate {:enable true}}}} + (vim.tbl_extend :force default-config))) (when (= (vim.fn.executable :lexical) 1) (lsp.lexical.setup (->> {:cmd [:lexical :start]} (vim.tbl_extend :force default-config)))) + (when (= (vim.fn.executable :lua-language-server) 1) + (lsp.lua_ls.setup (->> {:cmd [:lua-language-server] + :root_dir (or (lsp.util.root_pattern :init.vim + :init.lua + :.git) + (vim.loop.os_homedir)) + :settings {:Lua {:runtime {:version :LuaJIT + :path (vim.split package.path + ";")} + :diagnostics {:globals [:vim]} + :telemetry {:enable false}}}} + (vim.tbl_extend :force default-config)))) (when (= (vim.fn.executable :nil) 1) (lsp.nil_ls.setup (->> {:settings {:nil {:formatting {:command [:nixpkgs-fmt]}}}} (vim.tbl_extend :force default-config)))) @@ -76,15 +91,7 @@ (vim.tbl_extend :force default-config)))) (lsp.solargraph.setup (->> {:settings {:solargraph {:diagnostics true}}} (vim.tbl_extend :force default-config))) - (when (= (vim.fn.executable :lua-language-server) 1) - (lsp.lua_ls.setup (->> {:cmd [:lua-language-server] - :root_dir (or (lsp.util.root_pattern :init.vim - :init.lua - :.git) - (vim.loop.os_homedir)) - :settings {:Lua {:runtime {:version :LuaJIT - :path (vim.split package.path - ";")} - :diagnostics {:globals [:vim]} - :telemetry {:enable false}}}} - (vim.tbl_extend :force default-config)))))) + (lsp.yamlls.setup (->> {:settings {:yaml {:schemaStore {:enable false + :url ""} + :schemas (schemastore.yaml.schemas)}}} + (vim.tbl_extend :force default-config))))) diff --git a/home/config/wezterm/config.fnl b/home/config/wezterm/config.fnl index 298045c..60c91b4 100644 --- a/home/config/wezterm/config.fnl +++ b/home/config/wezterm/config.fnl @@ -26,7 +26,7 @@ (fn extract-tab-info [title] (match title (where t (t:find "^nvim%s")) - {:title (t:gsub "^nvim%s(.*)" "%1") :icon " " :color "#019833"} + {:title (t:gsub "^nvim%s(.*)" "%1") :icon " " :color "#019833"} (where t (t:find "^git%s")) {:title (t:gsub "^git%s(.*)" "%1") :icon "󰊢 " :color "#F25029"} (where t (t:find "^mix%s")) diff --git a/home/hosts/Styx.nix b/home/hosts/Styx.nix index 45d70db..783185c 100644 --- a/home/hosts/Styx.nix +++ b/home/hosts/Styx.nix @@ -2,7 +2,7 @@ { imports = [ - ../config/fonts.nix + ../config/fonts ../programs/fish.nix ../programs/nushell.nix diff --git a/home/programs/nvim/default.nix b/home/programs/nvim/default.nix index 0dcd15d..9fb248c 100644 --- a/home/programs/nvim/default.nix +++ b/home/programs/nvim/default.nix @@ -73,6 +73,7 @@ in p.javascript p.jsdoc p.json + p.kotlin p.lua p.make p.markdown @@ -189,6 +190,8 @@ in nvim-jdtls + schemastore-nvim + lspkind-nvim { @@ -237,6 +240,7 @@ in cmp-buffer cmp-cmdline cmp-nvim-lsp-document-symbol + cmp_yanky # Formatting diff --git a/home/programs/nvim/plugins.nix b/home/programs/nvim/plugins.nix index 392e2cb..f95de96 100644 --- a/home/programs/nvim/plugins.nix +++ b/home/programs/nvim/plugins.nix @@ -29,12 +29,12 @@ in }; mini-nvim = buildVimPlugin { pname = "mini.nvim"; - version = "2023-11-24"; + version = "2023-11-28"; src = fetchFromGitHub { owner = "echasnovski"; repo = "mini.nvim"; - rev = "baf17e6472b0968661dce5daa372251e934da39f"; - sha256 = "1icagypgcdqsiz1p4m8kan8wdbjgxcz4qa415rplyrx9rxbpp4rl"; + rev = "964fab7fecd14f66a69a96162f8aa816480690fd"; + sha256 = "1vxbjidpxhjbrbhg5kl4x4dcsn77nfybzbnlq4yjcpcsrmf8ms5i"; fetchSubmodules = false; }; }; @@ -106,12 +106,12 @@ in }; nvim-treesitter = buildVimPlugin { pname = "nvim-treesitter"; - version = "2023-11-27"; + version = "2023-11-28"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter"; - rev = "482a2f15d37817e1201466d00c6539574ba34554"; - sha256 = "111akj91fzrqlrlnndbvc20ji0ln8m25bhqyb8sva1vmav9q25cb"; + rev = "582a92ee120532a603b75239f40cba06b9a5ec07"; + sha256 = "0xwdakmd6cjks284a399civhbj195mmlk28yzzv0bxjxa9y9q6af"; fetchSubmodules = false; }; }; @@ -150,12 +150,12 @@ in }; telescope-nvim = buildVimPlugin { pname = "telescope.nvim"; - version = "2023-11-26"; + version = "2023-11-27"; src = fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope.nvim"; - rev = "e4c62dedd760d339bea5b8325c2d918d87476d00"; - sha256 = "0lsaqhhrs40djcqs2670xqazi6kx1x4vpgrlh1wwvi1y3jqh3849"; + rev = "84c5a71d825b6687a55aed6f41e98b92fd8e5454"; + sha256 = "0a0kj9ixsqny8jxfialq4wxxg7rgl97cgp1cgv5n0lnyw3xkbgbi"; fetchSubmodules = false; }; }; @@ -208,12 +208,12 @@ in }; nvim-lspconfig = buildVimPlugin { pname = "nvim-lspconfig"; - version = "2023-11-27"; + version = "2023-11-28"; src = fetchFromGitHub { owner = "neovim"; repo = "nvim-lspconfig"; - rev = "daaf00a77805e113acf8ccc02dd8c3403d691683"; - sha256 = "1kp7hl5x311a1ysg91dnijxscs3cy3r901zmrv6kqwlh1k5yl0p1"; + rev = "39546f730bdff8eccf7cec344cfce694f19ac908"; + sha256 = "1m83nxxnsymwkhq7kl608ycr54n7r94b8rax4r4qr8qdhh90k7k3"; fetchSubmodules = false; }; }; @@ -228,6 +228,17 @@ in fetchSubmodules = false; }; }; + schemastore-nvim = buildVimPlugin { + pname = "schemastore.nvim"; + version = "2023-11-26"; + src = fetchFromGitHub { + owner = "b0o"; + repo = "schemastore.nvim"; + rev = "54a4ea14b70cd3fc9db8217bb4ac9e1f78bfa390"; + sha256 = "0zbdh40pknm3p6llndf87fr6l28yx7cyaa6307gskfhpia105nwg"; + fetchSubmodules = false; + }; + }; lspkind-nvim = buildVimPlugin { pname = "lspkind.nvim"; version = "2023-05-05"; @@ -285,12 +296,12 @@ in }; LuaSnip = buildVimPlugin { pname = "LuaSnip"; - version = "2023-11-24"; + version = "2023-11-28"; src = fetchFromGitHub { owner = "L3MON4D3"; repo = "LuaSnip"; - rev = "df58ee1664cfda71479cd2bbd56114f56599eba6"; - sha256 = "08sgnd2s3glz21akby0g7w41ggb8wcfcx5jcbd1kg3ac5dc59cx9"; + rev = "1def35377854535bb3b0f4cc7a33c083cdb12571"; + sha256 = "0avjl2418wn4y24xff73y6pfny2fhk3lb3swldqrqcy676q9hq83"; fetchSubmodules = false; }; }; @@ -371,14 +382,25 @@ in fetchSubmodules = false; }; }; + cmp_yanky = buildVimPlugin { + pname = "cmp_yanky"; + version = "2023-11-16"; + src = fetchFromGitHub { + owner = "chrisgrieser"; + repo = "cmp_yanky"; + rev = "c3d089186ccead26eba01023502f3eeadd7a92d2"; + sha256 = "19197b4all82qzm80ms9h7aj1a4yp04b3jgy2j7r3irl6qmnhqwd"; + fetchSubmodules = false; + }; + }; conform-nvim = buildVimPlugin { pname = "conform.nvim"; - version = "2023-11-25"; + version = "2023-11-27"; src = fetchFromGitHub { owner = "stevearc"; repo = "conform.nvim"; - rev = "cbc510ca5b4aec1fd104b6c6f070a7fcf36cc0c8"; - sha256 = "1329gqbgwrcql56ymmfsanh7fc84ddy7rqklhplivkkgd8xdrphk"; + rev = "eddd6431370814caacec1d1e3c7d6d95d41b133d"; + sha256 = "0ggaxg89rcyhc7j90qcvyha7g7cy02x7cc1z5gx76m5vkvf4xj22"; fetchSubmodules = false; }; }; @@ -472,12 +494,12 @@ in }; gitsigns-nvim = buildVimPlugin { pname = "gitsigns.nvim"; - version = "2023-11-23"; + version = "2023-11-28"; src = fetchFromGitHub { owner = "lewis6991"; repo = "gitsigns.nvim"; - rev = "5fc573f2d2a49aec74dd6dc977e8b137429d1897"; - sha256 = "0ijwyxw9w4idd1qczd1d8bs8454i83s6vxny39r9vn4ykhxm9v10"; + rev = "175e74f87d3d2e4d20952d390af5f2a794f5ed7e"; + sha256 = "1s131xr3vvfr5a19nvf1f7330bjzn6yj615q7yi0z7wr1s6kndp4"; fetchSubmodules = false; }; }; diff --git a/home/programs/nvim/plugins.yaml b/home/programs/nvim/plugins.yaml index 1485d00..91d155d 100644 --- a/home/programs/nvim/plugins.yaml +++ b/home/programs/nvim/plugins.yaml @@ -26,6 +26,7 @@ # LSP - src: neovim/nvim-lspconfig - src: mfussenegger/nvim-jdtls +- src: b0o/schemastore.nvim - src: onsails/lspkind.nvim - src: SmiteshP/nvim-navic - src: RRethy/vim-illuminate @@ -43,6 +44,7 @@ - src: hrsh7th/cmp-buffer - src: hrsh7th/cmp-cmdline - src: hrsh7th/cmp-nvim-lsp-document-symbol +- src: chrisgrieser/cmp_yanky # Formatting - src: stevearc/conform.nvim # Pairs