Skip to content

Instantly share code, notes, and snippets.

@manveru
Last active July 26, 2020 23:41
Show Gist options
  • Save manveru/3175d0dcbbfcca2527193afb03c0a9a5 to your computer and use it in GitHub Desktop.
Save manveru/3175d0dcbbfcca2527193afb03c0a9a5 to your computer and use it in GitHub Desktop.
Updating vim plugins for nix
{ pkgs }:
let plugins = pkgs.callPackage ./plugins.nix {};
in {
customRC = ''${builtins.readFile ./vimrc}'';
vam = {
knownPlugins = pkgs.vimPlugins // plugins;
pluginDictionaries = [{
names = [
"Tagbar"
"css-pretty"
"editorconfig-vim"
"gruvbox"
"lessspace-vim"
"neomake"
"neovim-fuzzy"
"supertab"
"surround"
"vim-addon-nix"
"vim-airline"
"vim-airline-themes"
"vim-bundler"
"vim-codeclimate"
"vim-crystal"
"vim-gitgutter"
"vim-grepper"
"vim-jade"
"vim-rails"
"vim-sneak"
"vim-surround"
"vim-wakatime"
"youcompleteme"
# "ctrlp"
# "fzy-vim"
# "syntastic"
# "vim-hdevtools"
];
}];
};
}
{ pkgs, fetchFromGitHub }:
let buildVimPlugin = pkgs.vimUtils.buildVimPluginFrom2Nix;
in {
fzy-vim = buildVimPlugin {
name = "fzy-vim";
src = fetchFromGitHub {
owner = "Dkendal";
repo = "fzy-vim";
rev = "503b82dfdd28e73c38f2b38e79684e831d1c976a";
sha256 = "1s2c0nl4wk86ky0wc7y09kazyx4yb3laii29z5kcmck2r0v4f43f";
};
};
ag-nvim = buildVimPlugin {
name = "ag-nvim";
src = fetchFromGitHub {
owner = "Numkil";
repo = "ag.nvim";
rev = "b3646565de2e914efc784bb9f75f46546b94ac2d";
sha256 = "1w2adggnjvk9ygkxl1d73cbdpyns179w0yr595kp6xb8g5h8x74w";
};
};
vim-gitgutter = buildVimPlugin {
name = "vim-gitgutter";
src = fetchFromGitHub {
owner = "airblade";
repo = "vim-gitgutter";
rev = "7b81a8a22607f073b76b106e2d5e63cc936b0d25";
sha256 = "19v2akrhhfb9zy7mvljjwvi7lqrnviw88gxh4xmpy82vghiwdrfs";
};
};
neovim-fuzzy = buildVimPlugin {
name = "neovim-fuzzy";
src = fetchFromGitHub {
owner = "cloudhead";
repo = "neovim-fuzzy";
rev = "8832151646d08d69c3cf330ebb8f365764e62245";
sha256 = "06rsp6ryq6y7dlladiipgrial42rlr0rkqk6svx6v952l80x0gsb";
};
};
editorconfig-vim = buildVimPlugin {
name = "editorconfig-vim";
src = fetchFromGitHub {
owner = "editorconfig";
repo = "editorconfig-vim";
rev = "a459b8cfef00100da40fd69c8ae92c4d1e63e1d2";
sha256 = "0xh66p2w3171fry8q4xjiwgrzyi3a176k1j5iz64df9s8j92hykn";
};
};
supertab = buildVimPlugin {
name = "supertab";
src = fetchFromGitHub {
owner = "ervandew";
repo = "supertab";
rev = "cdaa5c27c5a7f8b08a43d0b2e65929512299e33a";
sha256 = "0hym28chljfglqdrxajbh92r35cppxl5wyxdrgqwpa0am9d2xdvg";
};
};
vim-sneak = buildVimPlugin {
name = "vim-sneak";
src = fetchFromGitHub {
owner = "justinmk";
repo = "vim-sneak";
rev = "311b905e4da3fdaeb12aae51229742f3a789a334";
sha256 = "09zr51kdjcnhr4qych80wmp7v3pga7r8vdg2q6s5gl90pvh3xq5r";
};
};
vim-grepper = buildVimPlugin {
name = "vim-grepper";
src = fetchFromGitHub {
owner = "mhinz";
repo = "vim-grepper";
rev = "aba22535b1ab4011dbb7e627a4294530d1f29a04";
sha256 = "09r7lsazskb1yy63inhbjgh456idcay6175m0b5izadzq9nr58rc";
};
};
sourcebeautify-vim = buildVimPlugin {
name = "sourcebeautify-vim";
src = fetchFromGitHub {
owner = "michalliu";
repo = "sourcebeautify.vim";
rev = "6c5867a8322b04a3d2bf72c26ec1c5bc2fa8f676";
sha256 = "01zcfmc7kp2drarark6m87h4il5qcqdjj16pv22sm3mvc3pshcpj";
};
};
gruvbox = buildVimPlugin {
name = "gruvbox";
src = fetchFromGitHub {
owner = "morhetz";
repo = "gruvbox";
rev = "127c9d14d4bac1bac31e328b835a8919a255789c";
sha256 = "19wg9143wvlynblpxm0cnk3ars2hgss3y745hligqgvfy308f7sm";
};
};
neomake = buildVimPlugin {
name = "neomake";
src = fetchFromGitHub {
owner = "neomake";
repo = "neomake";
rev = "b3d8edd27d81d57d0e9c02b405e93bfcda048423";
sha256 = "0q54s65a4ayk1k6xma0mwcmlsdzd289qjwr8m8f5fx5z1pqnccq0";
};
};
vim-crystal = buildVimPlugin {
name = "vim-crystal";
src = fetchFromGitHub {
owner = "rhysd";
repo = "vim-crystal";
rev = "a4426852347336d844b0d24e3941f793506c4f57";
sha256 = "1x4d7pc4rb5ydkks2x6p6ljl22njxii9c5swxl8sa5ks1if4fbpw";
};
};
syntastic = buildVimPlugin {
name = "syntastic";
src = fetchFromGitHub {
owner = "scrooloose";
repo = "syntastic";
rev = "40ac6c462e2f76cb76d8a0f295abc358abc198bb";
sha256 = "043s5nni9xbbvyy9bkakc8x9hq62430ayciiv5vh120hvgi4gscs";
};
};
vim-polyglot = buildVimPlugin {
name = "vim-polyglot";
src = fetchFromGitHub {
owner = "sheerun";
repo = "vim-polyglot";
rev = "e404a658b1647fad396a954776eda0bdabf8353c";
sha256 = "09yqkdfks0h5cgd7lz9400269sn1b495rhsv9ng7c2nj72hb84k8";
};
};
lessspace-vim = buildVimPlugin {
name = "lessspace-vim";
src = fetchFromGitHub {
owner = "thirtythreeforty";
repo = "lessspace.vim";
rev = "793a5cebb79782da6dd046f1312cbc36950e2159";
sha256 = "0qy58180znp9x2qksyvj7llssg07v1nj6q9iym51yrzmq4ndlq4a";
};
};
vim-bundler = buildVimPlugin {
name = "vim-bundler";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-bundler";
rev = "b42217a20cd4cac5a00096dc4e98d2497c21b3fe";
sha256 = "1ir1l4qihz5pd47anzbpiwjdvm1s0yxh69zafa03cad0k3bvb3xl";
};
};
vim-rails = buildVimPlugin {
name = "vim-rails";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-rails";
rev = "09ffc844ef959ffe133d0994641ade192531007e";
sha256 = "16ns8s1dkargf1zwlh7nrhmi718igfq9h7l4knjrr8y7q3p2bd1b";
};
};
vim-surround = buildVimPlugin {
name = "vim-surround";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-surround";
rev = "e49d6c2459e0f5569ff2d533b4df995dd7f98313";
sha256 = "1v0q2f1n8ngbja3wpjvqp2jh89pb5ij731qmm18k41nhgz6hhm46";
};
};
vim-airline = buildVimPlugin {
name = "vim-airline";
src = fetchFromGitHub {
owner = "vim-airline";
repo = "vim-airline";
rev = "a2431f2adb23a003abdfe5294861bbd69de52e52";
sha256 = "1qd5f133rg3pqdm889zg0hxhrmgzd71maz6jif4a4hjbghi61wjs";
};
};
vim-airline-themes = buildVimPlugin {
name = "vim-airline-themes";
src = fetchFromGitHub {
owner = "vim-airline";
repo = "vim-airline-themes";
rev = "2a97d9ee410d7b9980a7741fc6e705d53eea23c2";
sha256 = "1crqpryfvamjqw8wqn6nlfqbflgwcfxqf4jk3j58rjxssl0vrfbc";
};
};
css-pretty = buildVimPlugin {
name = "css-pretty";
src = fetchFromGitHub {
owner = "vim-scripts";
repo = "Css-Pretty";
rev = "0c90d27d38b7cfa2ba636986ab0d0d63865bd633";
sha256 = "0i08bnsyhar1ynzvkbb79z5fxg22ifcyjnp4f8sbkx3p4lw4hhvq";
};
};
vim-codeclimate = buildVimPlugin {
name = "vim-codeclimate";
src = fetchFromGitHub {
owner = "wfleming";
repo = "vim-codeclimate";
rev = "fc0d9acafd278b8d1371dfe7a5a092fe1da8a02d";
sha256 = "0kksqnvf8swrs314v1nykz1y6c4jm85xwygg76yjdaly2sb5glkq";
};
};
}
require 'open-uri'
require 'open3'
require 'erb'
require 'fileutils'
require 'pp'
plugins = %w[
rhysd/vim-crystal
airblade/vim-gitgutter
cloudhead/neovim-fuzzy
Dkendal/fzy-vim
editorconfig/editorconfig-vim
ervandew/supertab
justinmk/vim-sneak
mhinz/vim-grepper
michalliu/sourcebeautify.vim
morhetz/gruvbox
neomake/neomake
Numkil/ag.nvim
scrooloose/syntastic
thirtythreeforty/lessspace.vim
tpope/vim-bundler
tpope/vim-rails
tpope/vim-surround
vim-airline/vim-airline
vim-airline/vim-airline-themes
vim-scripts/Css-Pretty
wfleming/vim-codeclimate
sheerun/vim-polyglot
]
packages = []
plugins.sort.each do |plugin|
warn "Processing: #{plugin}..."
rev = `git ls-remote https://github.com/#{plugin} master`.split.first
fail "couldn't query remote" unless $?.success?
owner, repo = plugin.split('/', 2)
name = repo.gsub(/[^a-zA-Z]+/, '-').downcase
url = "https://github.com/#{plugin}/archive/#{rev}.tar.gz"
o, e, s = Open3.capture3('nix-prefetch-url', '--unpack', '--type', 'sha256', url)
fail e unless s.success?
sha256 = o.strip
packages << {
name: name,
owner: owner,
repo: repo,
rev: rev,
sha256: sha256,
}
end
File.write('plugins.nix.tmp', ERB.new(<<-TEMPLATE, 1, '<->').result)
{ pkgs, fetchFromGitHub }:
let buildVimPlugin = pkgs.vimUtils.buildVimPluginFrom2Nix;
in {
<% packages.each do |name:, owner:, repo:, rev:, sha256:| -%>
<%= name %> = buildVimPlugin {
name = "<%= name %>";
src = fetchFromGitHub {
owner = "<%= owner %>";
repo = "<%= repo %>";
rev = "<%= rev %>";
sha256 = "<%= sha256 %>";
};
};
<% end -%>
}
TEMPLATE
FileUtils.mv('plugins.nix.tmp', 'plugins.nix')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment