diff options
author | Vladimír Čunát <v@cunat.cz> | 2024-06-24 12:27:42 +0200 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2024-06-24 12:27:42 +0200 |
commit | a67b6cd4fdc7814ad4841a1aa52615ddc181c678 (patch) | |
tree | 23d7eecc3e192deaf1c25c52512536ca655d4d25 /pkgs/applications/editors | |
parent | 93d3b3c04639d5bbdb3cdc0309fa9169ef7d991e (diff) | |
parent | cf3f00f2ad7bf4c990e9b4b6a09c59cb4707b142 (diff) |
Merge branch 'staging' into staging-next
Diffstat (limited to 'pkgs/applications/editors')
-rw-r--r-- | pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix | 3 | ||||
-rw-r--r-- | pkgs/applications/editors/emacs/sources.nix | 6 | ||||
-rw-r--r-- | pkgs/applications/editors/neovim/tests/default.nix | 20 | ||||
-rw-r--r-- | pkgs/applications/editors/neovim/utils.nix | 24 | ||||
-rw-r--r-- | pkgs/applications/editors/neovim/wrapper.nix | 27 | ||||
-rw-r--r-- | pkgs/applications/editors/vim/common.nix | 4 |
6 files changed, 73 insertions, 11 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix b/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix index 36576f7c12398..391065ccfb20d 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix @@ -79,7 +79,8 @@ in { lib.nameValuePair ename ( self.callPackage ({ melpaBuild, fetchurl, ... }@pkgargs: melpaBuild { - inherit pname ename commit; + inherit pname ename; + inherit (sourceArgs) commit; version = lib.optionalString (version != null) (lib.concatStringsSep "." (map toString # Hack: Melpa archives contains versions with parse errors such as [ 4 4 -4 413 ] which should be 4.4-413 diff --git a/pkgs/applications/editors/emacs/sources.nix b/pkgs/applications/editors/emacs/sources.nix index 487d8a3680a6d..da243044b689a 100644 --- a/pkgs/applications/editors/emacs/sources.nix +++ b/pkgs/applications/editors/emacs/sources.nix @@ -104,10 +104,10 @@ in emacs29 = import ./make-emacs.nix (mkArgs { pname = "emacs"; - version = "29.3"; + version = "29.4"; variant = "mainline"; - rev = "29.3"; - hash = "sha256-4yN81djeKb9Hlr6MvaDdXqf4XOl0oolXEYGqkA+KUO0="; + rev = "29.4"; + hash = "sha256-FCP6ySkN9mAdp2T09n6foS2OciqZXc/54guRZ0B4Z2s="; }); emacs28-macport = import ./make-emacs.nix (mkArgs { diff --git a/pkgs/applications/editors/neovim/tests/default.nix b/pkgs/applications/editors/neovim/tests/default.nix index b07f517ea474a..c2e6b565de282 100644 --- a/pkgs/applications/editors/neovim/tests/default.nix +++ b/pkgs/applications/editors/neovim/tests/default.nix @@ -43,6 +43,14 @@ let ''; }; + nvim-with-luasnip = wrapNeovim2 "-with-lua-packages" (makeNeovimConfig { + plugins = [ { + plugin = vimPlugins.luasnip; + + } + ]; + }); + nvimAutoDisableWrap = makeNeovimConfig { }; wrapNeovim2 = suffix: config: @@ -281,4 +289,16 @@ rec { export HOME=$TMPDIR ${nvim_with_opt_plugin}/bin/nvim -i NONE +quit! -e ''; + + inherit nvim-with-luasnip; + + # check that bringing in one plugin with lua deps makes those deps visible from wrapper + # for instance luasnip has a dependency on jsregexp + can_require_transitive_deps = + runTest nvim-with-luasnip '' + export HOME=$TMPDIR + cat ${nvim-with-luasnip}/bin/nvim + ${nvim-with-luasnip}/bin/nvim -i NONE --cmd "lua require'jsregexp'" -e + ''; + }) diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix index 8f9a5b880032c..902d62d9486a0 100644 --- a/pkgs/applications/editors/neovim/utils.nix +++ b/pkgs/applications/editors/neovim/utils.nix @@ -229,12 +229,36 @@ let ln -s ${grammar}/parser $out/parser/${name}.so ''); + /* + Fork of vimUtils.packDir that additionnally generates a propagated-build-inputs-file that + can be used by the lua hooks to generate a proper LUA_PATH + + Generates a packpath folder as expected by vim + Example: + packDir ( {myVimPackage = { start = [ vimPlugins.vim-fugitive ]; opt = []; }; }) + => "/nix/store/xxxxx-pack-dir" + */ + packDir = packages: + let + rawPackDir = vimUtils.packDir packages; + + in + rawPackDir.override ({ + postBuild = '' + mkdir $out/nix-support + for i in $(find -L $out -name propagated-build-inputs ); do + cat "$i" >> $out/nix-support/propagated-build-inputs + done + '';}); + + in { inherit makeNeovimConfig; inherit generateProviderRc; inherit legacyWrapper; inherit grammarToPlugin; + inherit packDir; inherit buildNeovimPlugin; buildNeovimPluginFrom2Nix = lib.warn "buildNeovimPluginFrom2Nix was renamed to buildNeovimPlugin" buildNeovimPlugin; diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index e877f1e1f764a..d86de46c87385 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -13,6 +13,9 @@ neovim-unwrapped: let + # inherit interpreter from neovim + lua = neovim-unwrapped.lua; + wrapper = { extraName ? "" # should contain all args but the binary. Can be either a string or list @@ -24,6 +27,8 @@ let , withNodeJs ? false , withPerl ? false , rubyEnv ? null + + # wether to create symlinks in $out/bin/vi(m) -> $out/bin/nvim , vimAlias ? false , viAlias ? false @@ -45,6 +50,8 @@ let stdenv.mkDerivation (finalAttrs: let + finalPackdir = neovimUtils.packDir packpathDirs; + rcContent = '' ${luaRcContent} '' + lib.optionalString (!isNull neovimRcContent) '' @@ -57,10 +64,10 @@ let # vim accepts a limited number of commands so we join them all [ "--add-flags" ''--cmd "lua ${providerLuaRc}"'' - # (lib.intersperse "|" hostProviderViml) - ] ++ lib.optionals (packpathDirs.myNeovimPackages.start != [] || packpathDirs.myNeovimPackages.opt != []) [ - "--add-flags" ''--cmd "set packpath^=${vimUtils.packDir packpathDirs}"'' - "--add-flags" ''--cmd "set rtp^=${vimUtils.packDir packpathDirs}"'' + ] + ++ lib.optionals (packpathDirs.myNeovimPackages.start != [] || packpathDirs.myNeovimPackages.opt != []) [ + "--add-flags" ''--cmd "set packpath^=${finalPackdir}"'' + "--add-flags" ''--cmd "set rtp^=${finalPackdir}"'' ] ; @@ -160,7 +167,17 @@ let + '' rm $out/bin/nvim touch $out/rplugin.vim - makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr} + + echo "Looking for lua dependencies..." + source ${lua}/nix-support/utils.sh + + _addToLuaPath "${finalPackdir}" + + echo "LUA_PATH towards the end of packdir: $LUA_PATH" + + makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr} \ + --prefix LUA_PATH ';' "$LUA_PATH" \ + --prefix LUA_CPATH ';' "$LUA_CPATH" ''; buildPhase = '' diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix index d2e3013a782d9..50de9c6bfb79e 100644 --- a/pkgs/applications/editors/vim/common.nix +++ b/pkgs/applications/editors/vim/common.nix @@ -1,6 +1,6 @@ { lib, fetchFromGitHub }: rec { - version = "9.1.0412"; + version = "9.1.0509"; outputs = [ "out" "xxd" ]; @@ -8,7 +8,7 @@ rec { owner = "vim"; repo = "vim"; rev = "v${version}"; - hash = "sha256-uLdXFZ8eW+iMXrvkaEkArZmRfAiyORaEZxFFPt0TrdI="; + hash = "sha256-CATjUalRjvVjEfWT5evFAk//Oj4iB1fDBsRU5MhDyn4="; }; enableParallelBuilding = true; |