This patch implements derving a .vimrc from vim-plugins.nix loading those
plugins by either Pathogen or VAM (VAM seems to be slightly faster and is much
more powerful).
Example:
environment.systemPackages = [
# default plain vim
vim_configurable
# vim which get's called vim-with-addon-nix
(vim_configurable.customize {
name = "vim-with-addon-nix";
vimrcConfig.vam.pluginDictionaries = [{name = "vim-addon-nix"; }];
})
];
This way you can provide an "enhanced Vim" and a standard Vim.
Details about what this commit changes:
1) provide a new toplevel name vimrc which
* provides a way to build up a .vimrc using either pathogen or VAM (knowing about plugin dependencies by name)
* can enhance vim to support. vim.customize { name = "name-user"; vam.pluginDictionaries and/or pathogen.pluginNames = .. }
* introduce rtp names for each vim plugin pointing to the runtimepath path
* suggest naming to be the same as vim-pi so that VAM's dependencies work
* derive some packages as example from vim-pi using VAM's new autoload/nix.vim
supporting simple dependencies
* test case for vim-addon-nix for VAM/pathogen
2) enhance vim_configurable to support .customize
3) update many plugins by using VAM's implementation not rewriting those which
* vim-pi doesn't know about the git source yet (TODO: make vim-pi be aware of
those)
* have special build code
This commit partially conflicts with commits done by Bjørn Forsman starting by
37f961628b, eg the one using lower case attr and pkg names, because they don't
match vim-pi (eg YouCompleteMe). Rather than resolving the conflict this just
adds aliases so that both names can be used
Git commit ids shouldn't be used as version numbers in nixpkgs:
* they don't increase monotonically
* they don't always start with a digit, causing nix to not parse them as
version numbers, and instead sees them as part of the package name,
causing the package to (seemingly) conflict with itself upon upgrade.
And use fetchzip instead of fetchurl towards github.com to not let this
happen again. (fetchzip checks the hash on the *extracted* archive, so
changes in compression algo etc. doesn't change the hash.)
Currently some plugins use "vim-" prefix, some use "-vim" suffix and
some have no prefix or suffix at all.
I chose "vimplugin-" prefix to match the attribute path: vimPlugins.*
retroarchBare was too old for any practical use at this point, so it was removed in favor
of fetching releases from git. RetroArch often recommends checkout out the latest git master
if you are on a desktop platform, so we are conforming with their recommendation. I plan on
bumping the git of retroarch and each core every month, and I plan on adding more libretro
cores in the future.
The libretro cores that were added are nestopia, quicknes, snes9x, and vba-m
planned next are : bsnes-accuracy, bsnes-balanced, bsnes-performance, a few libretro mame ports
Closes#4448
Using a git commit id as version number doesn't work well, so use the
commit date instead.
Also, there is no other version of YouCompleteMe than the git version,
so drop 'git' from the package name.
patchShebangs fixes build failure in chroot (in this new version).
The --system-libclang flag is now needed to prevent YouCompleteMe from
trying to download and build clang (which fails).
These are wrappers for retroarch wrappers, they are needed since launching a
process from XBMC(as a display manager and probably otherwise), using
AdvancedLauncher, results in it and it's parent recieving the same gamepad
input.
These wrappers will produce no sound on XBMC and AdvancedLauncher setups not
using a sound daemon, since XBMC gets paused while still holding onto the sound
device.
This reverts commit 13fab57d12.
Hopefully fixes the printing tests at
http://hydra.nixos.org/build/14952070/log/raw ; if not, it's probably
gutenprint although I doubt:
client# lp: Unsupported document-format "application/pdf".
Now we can parametrize Higan locally.
By default, guiToolkit = "gtk" and profile = "performance" (the accuracy
profile is seriously slow on my machine :) )
Closes#4340
Sound of Sorting is an array-sorting visual+sound demo program.
It shows an array as a list of horizontal bars, and realizes a
step-by-step sorting of it. Moreover, it colorizes and emits a
"8-bit-game-like" sound throughout its execution.
Closes#4341
Now builder.sh will install a higan-config.sh script
to write auxiliary stuff on $HOME/.config/higan directory.
That way, higan searches locally and runs cleanly.
Obviously it's a hack, but the only other way is to do a huge patch on
upstream sources; personally I think it is better to work that type of
thing directly on higan sources.
Higan uses a lot of hardcoded paths when it looks for runtime files
as shaders, icons and mainly BIOS files. So, we made a q&d wrapper
script: it copies all these files to $HOME/.config/higan in the 1st
invocation.
Higan is a cycle-accurate Nintendo multi-system emulator
It is a preliminary release for Nix - I need to investigate
some issues about install process and hardcoded paths...
(My OCD kicked in today...)
Remove repeated package names, capitalize first word, remove trailing
periods and move overlong descriptions to longDescription.
I also simplified some descriptions as well, when they were particularly
long or technical, often based on Arch Linux' package descriptions.
I've tried to stay away from generated expressions (and I think I
succeeded).
Some specifics worth mentioning:
* cron, has "Vixie Cron" in its description. The "Vixie" part is not
mentioned anywhere else. I kept it in a parenthesis at the end of the
description.
* ctags description started with "Exuberant Ctags ...", and the
"exuberant" part is not mentioned elsewhere. Kept it in a parenthesis
at the end of description.
* nix has the description "The Nix Deployment System". Since that
doesn't really say much what it is/does (especially after removing
the package name!), I changed that to "Powerful package manager that
makes package management reliable and reproducible" (borrowed from
nixos.org).
* Tons of "GNU Foo, Foo is a [the important bits]" descriptions
is changed to just [the important bits]. If the package name doesn't
contain GNU I don't think it's needed to say it in the description
either.