Last active
July 26, 2020 23:41
-
-
Save manveru/3175d0dcbbfcca2527193afb03c0a9a5 to your computer and use it in GitHub Desktop.
Updating vim plugins for nix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ 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" | |
]; | |
}]; | |
}; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ 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"; | |
}; | |
}; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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