Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
6.4 kB · 221 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222{ source ? "default", callPackage, lib, stdenv, ncurses, pkg-config, gettext, writeText, config, glib, gtk2-x11, gtk3-x11, lua, python3, perl, tcl, ruby, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu, libsodium, libICE, vimPlugins, makeWrapper, wrapGAppsHook3,
features ? "huge", # One of tiny, small, normal, big or huge wrapPythonDrv ? false, guiSupport ? config.vim.gui or (if stdenv.hostPlatform.isDarwin then "gtk2" else "gtk3"), luaSupport ? config.vim.lua or true, perlSupport ? config.vim.perl or false, # Perl interpreter pythonSupport ? config.vim.python or true, # Python interpreter rubySupport ? config.vim.ruby or true, # Ruby interpreter nlsSupport ? config.vim.nls or false, # Enable NLS (gettext()) tclSupport ? config.vim.tcl or false, # Include Tcl interpreter multibyteSupport ? config.vim.multibyte or false, # Enable multibyte editing support cscopeSupport ? config.vim.cscope or true, # Enable cscope interface netbeansSupport ? config.netbeans or true, # Enable NetBeans integration support. ximSupport ? config.vim.xim or true, # less than 15KB, needed for deadkeys darwinSupport ? config.vim.darwin or false, # Enable Darwin support ftNixSupport ? config.vim.ftNix or true, # Add nix indentation support from vim-nix (not needed for basic syntax highlighting) sodiumSupport ? config.vim.sodium or true, # Enable sodium based encryption}:
let nixosRuntimepath = writeText "nixos-vimrc" '' set nocompatible syntax on
function! NixosPluginPath() let seen = {} for p in reverse(split($NIX_PROFILES)) for d in split(glob(p . '/share/vim-plugins/*')) let pluginname = substitute(d, ".*/", "", "") if !has_key(seen, pluginname) exec 'set runtimepath^='.d let after = d."/after" if isdirectory(after) exec 'set runtimepath^='.after endif let seen[pluginname] = 1 endif endfor endfor endfunction
execute NixosPluginPath()
if filereadable("/etc/vimrc") source /etc/vimrc elseif filereadable("/etc/vim/vimrc") source /etc/vim/vimrc endif '';
common = callPackage ./common.nix { };
instdenv.mkDerivation {
pname = "vim-full";
inherit (common) version outputs postPatch hardeningDisable enableParallelBuilding meta ;
src = builtins.getAttr source { default = common.src; # latest release };
patches = [ ./cflags-prune.diff ];
configureFlags = [ "--with-features=${features}" "--disable-xsmp" # XSMP session management "--disable-xsmp_interact" # XSMP interaction "--disable-workshop" # Sun Visual Workshop support "--disable-sniff" # Sniff interface "--disable-hangulinput" # Hangul input support "--disable-fontset" # X fontset output support "--disable-acl" # ACL support "--disable-gpm" # GPM (Linux mouse daemon) "--disable-mzschemeinterp" "--disable-gtk_check" "--disable-gtk2_check" "--disable-gnome_check" "--disable-motif_check" "--disable-athena_check" "--disable-nextaf_check" "--disable-carbon_check" "--disable-gtktest" ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "vim_cv_toupper_broken=no" "--with-tlib=ncurses" "vim_cv_terminfo=yes" "vim_cv_tgetent=zero" # it does on native anyway "vim_cv_tty_group=tty" "vim_cv_tty_mode=0660" "vim_cv_getcwd_broken=no" "vim_cv_stat_ignores_slash=yes" "vim_cv_memmove_handles_overlap=yes" ] ++ lib.optional (guiSupport == "gtk2" || guiSupport == "gtk3") "--enable-gui=${guiSupport}" ++ lib.optional stdenv.hostPlatform.isDarwin ( if darwinSupport then "--enable-darwin" else "--disable-darwin" ) ++ lib.optionals luaSupport [ "--with-lua-prefix=${lua}" "--enable-luainterp" ] ++ lib.optionals lua.pkgs.isLuaJIT [ "--with-luajit" ] ++ lib.optionals pythonSupport [ "--enable-python3interp=yes" "--with-python3-config-dir=${python3}/lib" # Disables Python 2 "--disable-pythoninterp" ] ++ lib.optional nlsSupport "--enable-nls" ++ lib.optional perlSupport "--enable-perlinterp" ++ lib.optional rubySupport "--enable-rubyinterp" ++ lib.optional tclSupport "--enable-tclinterp" ++ lib.optional multibyteSupport "--enable-multibyte" ++ lib.optional cscopeSupport "--enable-cscope" ++ lib.optional netbeansSupport "--enable-netbeans" ++ lib.optional ximSupport "--enable-xim" ++ lib.optional sodiumSupport "--enable-sodium";
nativeBuildInputs = [ pkg-config ] ++ lib.optional wrapPythonDrv makeWrapper ++ lib.optional nlsSupport gettext ++ lib.optional perlSupport perl ++ lib.optional (guiSupport == "gtk3") wrapGAppsHook3;
buildInputs = [ ncurses glib ] # All X related dependencies ++ lib.optionals (guiSupport == "gtk2" || guiSupport == "gtk3") [ libSM libICE libX11 libXext libXpm libXt libXaw libXau libXmu ] ++ lib.optional (guiSupport == "gtk2") gtk2-x11 ++ lib.optional (guiSupport == "gtk3") gtk3-x11 ++ lib.optional luaSupport lua ++ lib.optional pythonSupport python3 ++ lib.optional tclSupport tcl ++ lib.optional rubySupport ruby ++ lib.optional sodiumSupport libsodium;
# error: '__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-fdeclspec";
preConfigure = lib.optionalString ftNixSupport '' cp ${vimPlugins.vim-nix.src}/ftplugin/nix.vim runtime/ftplugin/nix.vim cp ${vimPlugins.vim-nix.src}/indent/nix.vim runtime/indent/nix.vim '';
preInstall = '' mkdir -p $out/share/applications $out/share/icons/{hicolor,locolor}/{16x16,32x32,48x48}/apps '';
postInstall = '' ln -s $out/bin/vim $out/bin/vi '' + lib.optionalString stdenv.hostPlatform.isLinux '' ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc '';
postFixup = common.postFixup + lib.optionalString wrapPythonDrv '' wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin" \ --set NIX_PYTHONPATH "${python3}/${python3.sitePackages}" '';
dontStrip = true;}