diff --git a/pkgs/vim-plugins/default.nix b/pkgs/vim-plugins/default.nix index 54b62f7c..6a8e8f8e 100644 --- a/pkgs/vim-plugins/default.nix +++ b/pkgs/vim-plugins/default.nix @@ -1,4 +1,5 @@ { pkgs }: { gemini-vim-syntax = pkgs.callPackage ./gemini-vim-syntax { }; vim-syntax-shakespeare = pkgs.callPackage ./vim-syntax-shakespeare { }; + vim-medieval = pkgs.callPackage ./vim-medieval { }; } diff --git a/pkgs/vim-plugins/vim-medieval/default.nix b/pkgs/vim-plugins/vim-medieval/default.nix new file mode 100644 index 00000000..f814a951 --- /dev/null +++ b/pkgs/vim-plugins/vim-medieval/default.nix @@ -0,0 +1,12 @@ +{ lib, vimUtils, fetchFromGitHub }: vimUtils.buildVimPlugin rec { + pname = "vim-medieval"; + version = "2022-02-07"; + dontBuild = true; + src = fetchFromGitHub { + owner = "gpanders"; + repo = "${pname}"; + rev = "029ba76340cc51d481d5fa0ad19e25b0ee13b3c5"; + sha256 = "sha256-JYkevNxW/RYLVfxXSGYvVSQwmjk2zSvzxLVTbR0lzek="; + }; + patches = [ ./preview-instead-of-scratch.patch ]; +} diff --git a/pkgs/vim-plugins/vim-medieval/preview-instead-of-scratch.patch b/pkgs/vim-plugins/vim-medieval/preview-instead-of-scratch.patch new file mode 100644 index 00000000..3c85335a --- /dev/null +++ b/pkgs/vim-plugins/vim-medieval/preview-instead-of-scratch.patch @@ -0,0 +1,31 @@ +diff --git a/autoload/medieval.vim b/autoload/medieval.vim +index eee3adc..91e99b9 100644 +--- a/autoload/medieval.vim ++++ b/autoload/medieval.vim +@@ -1,3 +1,4 @@ ++let s:tempfile = fnamemodify(tempname(), ':h') . '/medieval' + let s:fences = [{'start': '[`~]\{3,}'}, {'start': '\$\$'}] + let s:opts = ['name', 'target', 'require', 'tangle'] + let s:optspat = '\(' . join(s:opts, '\|') . '\):\s*\([0-9A-Za-z_+.$#&/-]\+\)' +@@ -196,18 +197,9 @@ function! s:callback(context, output) abort + call append(tstart + 1, a:output) + endif + else +- " Open result in scratch buffer +- if &splitbelow +- botright new +- else +- topleft new +- endif +- +- call append(0, a:output) +- call deletebufline('%', '$') +- exec 'resize' &previewheight +- setlocal buftype=nofile bufhidden=delete nobuflisted noswapfile winfixheight +- wincmd p ++ " Open result in preview window ++ call writefile(a:output, s:tempfile) ++ exec 'pedit ' . s:tempfile + endif + endfunction + diff --git a/users/misterio/home/cli/nvim/default.nix b/users/misterio/home/cli/nvim/default.nix index 6e97770b..533e1e10 100644 --- a/users/misterio/home/cli/nvim/default.nix +++ b/users/misterio/home/cli/nvim/default.nix @@ -35,9 +35,6 @@ with inputs.nix-colors.lib { inherit pkgs; }; "Clipboard set clipboard=unnamedplus - "Conceal - set conceallevel=2 - "Fix nvim size according to terminal "(https://github.com/neovim/neovim/issues/11330) autocmd VimEnter * silent exec "!kill -s SIGWINCH" getpid() @@ -76,16 +73,25 @@ with inputs.nix-colors.lib { inherit pkgs; }; plugin = vimThemeFromScheme { scheme = config.colorscheme; }; config = "colorscheme nix-${config.colorscheme.slug}"; } + { + plugin = vim-medieval; + config = '' + nmap Z (medieval-eval) + let g:medieval_langs = ['haskell=runghc', 'sh'] + ''; + } ]; }; - xdg.configFile."nvim/init.vim".onChange = let - nvr = "${pkgs.neovim-remote}/bin/nvr"; - in '' - ${nvr} --serverlist | while read server; do - ${nvr} --servername $server --nostart -c ':so $MYVIMRC' & \ - done - ''; + xdg.configFile."nvim/init.vim".onChange = + let + nvr = "${pkgs.neovim-remote}/bin/nvr"; + in + '' + ${nvr} --serverlist | while read server; do + ${nvr} --servername $server --nostart -c ':so $MYVIMRC' & \ + done + ''; home.sessionVariables = { EDITOR = "nvim"; };