diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
commit | 99fcaeccb89621dd492203ce1f2d551c06f228ed (patch) | |
tree | 41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/applications/editors/neovim/default.nix | |
parent | 59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff) | |
parent | 75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff) | |
download | nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2 nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/config/console.nix nixpkgs/nixos/modules/services/mail/mailman.nix nixpkgs/nixos/modules/services/mail/public-inbox.nix nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/nixos/modules/services/networking/ssh/sshd.nix nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix nixpkgs/pkgs/applications/networking/irc/weechat/default.nix nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/interpreters/python/default.nix nixpkgs/pkgs/development/node-packages/overrides.nix nixpkgs/pkgs/development/tools/b4/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix nixpkgs/pkgs/servers/mail/public-inbox/default.nix nixpkgs/pkgs/tools/security/pinentry/default.nix nixpkgs/pkgs/tools/text/unoconv/default.nix nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/neovim/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/neovim/default.nix | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/nixpkgs/pkgs/applications/editors/neovim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/default.nix index 8d8618c881cd..9294e7423159 100644 --- a/nixpkgs/pkgs/applications/editors/neovim/default.nix +++ b/nixpkgs/pkgs/applications/editors/neovim/default.nix @@ -3,6 +3,8 @@ , unibilium, gperf , libvterm-neovim , tree-sitter +, fetchurl +, treesitter-parsers ? import ./treesitter-parsers.nix { inherit fetchurl; } , CoreServices , glibcLocales ? null, procps ? null @@ -12,27 +14,35 @@ , nodejs ? null, fish ? null, python3 ? null }: -with lib; - let neovimLuaEnv = lua.withPackages(ps: (with ps; [ lpeg luabitop mpack ] - ++ optionals doCheck [ + ++ lib.optionals doCheck [ nvim-client luv coxpcall busted luafilesystem penlight inspect ] )); + codegenLua = + if lua.pkgs.isLuaJIT + then + let deterministicLuajit = + lua.override { + deterministicStringIds = true; + self = deterministicLuajit; + }; + in deterministicLuajit.withPackages(ps: [ ps.mpack ps.lpeg ]) + else lua; pyEnv = python3.withPackages(ps: with ps; [ pynvim msgpack ]); in stdenv.mkDerivation rec { pname = "neovim-unwrapped"; - version = "0.7.2"; + version = "0.9.1"; src = fetchFromGitHub { owner = "neovim"; repo = "neovim"; rev = "v${version}"; - sha256 = "sha256-eKKQNM02Vhy+3yL2QV+0FSEpcniEa5Aq6hkAUIgLo1k="; + hash = "sha256-G51qD7GklEn0JrneKSSqDDx0Odi7W2FjdQc0ZDE9ZK4="; }; patches = [ @@ -61,8 +71,8 @@ in neovimLuaEnv tree-sitter unibilium - ] ++ optionals stdenv.isDarwin [ libiconv CoreServices ] - ++ optionals doCheck [ glibcLocales procps ] + ] ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ] + ++ lib.optionals doCheck [ glibcLocales procps ] ; inherit doCheck; @@ -80,19 +90,18 @@ in ]; # extra programs test via `make functionaltest` - checkInputs = [ + nativeCheckInputs = [ fish nodejs pyEnv # for src/clint.py ]; - # nvim --version output retains compilation flags and references to build tools postPatch = '' substituteInPlace src/nvim/version.c --replace NVIM_VERSION_CFLAGS ""; ''; # check that the above patching actually works - disallowedReferences = [ stdenv.cc ]; + disallowedReferences = [ stdenv.cc ] ++ lib.optional (lua != codegenLua) codegenLua; cmakeFlags = [ # Don't use downloaded dependencies. At the end of the configurePhase one @@ -101,21 +110,36 @@ in # third-party/CMakeLists.txt is not read at all. "-DUSE_BUNDLED=OFF" ] - ++ optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON" + ++ lib.optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON" ; - # triggers on buffer overflow bug while running tests - hardeningDisable = [ "fortify" ]; - - preConfigure = lib.optionalString stdenv.isDarwin '' + preConfigure = lib.optionalString lua.pkgs.isLuaJIT '' + cmakeFlagsArray+=( + "-DLUAC_PRG=${codegenLua}/bin/luajit -b -s %s -" + "-DLUA_GEN_PRG=${codegenLua}/bin/luajit" + ) + '' + lib.optionalString stdenv.isDarwin '' substituteInPlace src/nvim/CMakeLists.txt --replace " util" "" - ''; + '' + '' + mkdir -p $out/lib/nvim/parser + '' + lib.concatStrings (lib.mapAttrsToList + (language: src: '' + ln -s \ + ${tree-sitter.buildGrammar { + inherit language src; + version = "neovim-${version}"; + }}/parser \ + $out/lib/nvim/parser/${language}.so + '') + treesitter-parsers); shellHook='' export VIMRUNTIME=$PWD/runtime ''; - meta = { + separateDebugInfo = true; + + meta = with lib; { description = "Vim text editor fork focused on extensibility and agility"; longDescription = '' Neovim is a project that seeks to aggressively refactor Vim in order to: |