diff --git a/dev/nvim-ts.nix b/dev/nvim-ts.nix new file mode 100644 index 0000000..fbc432e --- /dev/null +++ b/dev/nvim-ts.nix @@ -0,0 +1,31 @@ +{ pkgs ? import { } }: + +let + d2-vim = pkgs.vimUtils.buildVimPluginFrom2Nix { + name = "d2-vim"; + src = pkgs.fetchFromGitHub { + owner = "terrastruct"; + repo = "d2-vim"; + rev = "ac58c07ba192d215cbbd2b2207f9def808a9283d"; + hash = "sha256-rXUhXVmva4K0PqUboSXUpTqNttwehjkjjsEgTCZbGKI="; + }; + }; + + neovim = pkgs.neovim.override { + configure = { + customRC = '' + source ${./vimrc.vim} + ''; + + packages.myPlugins.start = with pkgs.vimPlugins; [ + d2-vim + nvim-treesitter + ]; + }; + }; + +in +pkgs.runCommand "nvim-ts" { } '' + mkdir -p $out/bin + ln -s ${neovim}/bin/nvim $out/bin/nvim-ts +'' diff --git a/dev/vimrc.vim b/dev/vimrc.vim new file mode 100644 index 0000000..8b30bca --- /dev/null +++ b/dev/vimrc.vim @@ -0,0 +1,15 @@ +" Basic settings for tests +set mouse=a +set number +set cursorline +set expandtab +set shiftwidth=2 +set softtabstop=-1 +set signcolumn=yes +set completeopt=menuone,noselect +set ttimeoutlen=1 +set autoindent + +" Always show statusline. +set laststatus=2 +set statusline=%<%f\ %m%r%y\ %LL\ %=\ 0x%-4.B\ %-16.(%lL,%cC%V,%oB%)\ %P diff --git a/flake.nix b/flake.nix index a5d0d39..d35a900 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,7 @@ nodePackages.eslint nodePackages.prettier nodePackages.vscode-langservers-extracted # html, css, json, eslint + (import ./dev/nvim-ts.nix { inherit pkgs; }) ]; }; });