2022-09-18 11:19:23 +01:00
|
|
|
{
|
|
|
|
description = "A set of test configurations for nixvim";
|
|
|
|
|
|
|
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
inputs.nixvim.url = "./..";
|
|
|
|
|
2022-12-01 14:05:35 +00:00
|
|
|
inputs.build-ts.url = "github:pta2002/build-ts-grammar.nix";
|
|
|
|
inputs.gleam.url = "github:gleam-lang/tree-sitter-gleam";
|
|
|
|
inputs.gleam.flake = false;
|
|
|
|
|
2022-10-04 15:04:22 +01:00
|
|
|
inputs.nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-22.05";
|
2022-10-17 15:08:17 +02:00
|
|
|
inputs.nixvim-stable = {
|
|
|
|
url = "./..";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs-stable";
|
|
|
|
};
|
2022-10-04 15:04:22 +01:00
|
|
|
|
2022-12-01 14:05:35 +00:00
|
|
|
outputs = { self, nixvim, nixvim-stable, nixpkgs, flake-utils, nixpkgs-stable, build-ts, gleam, ... }:
|
2022-09-18 11:19:23 +01:00
|
|
|
(flake-utils.lib.eachDefaultSystem
|
|
|
|
(system:
|
|
|
|
let
|
|
|
|
pkgs = import nixpkgs { inherit system; };
|
2022-10-04 15:04:22 +01:00
|
|
|
pkgs-stable = import nixpkgs-stable { inherit system; };
|
2022-10-17 15:08:17 +02:00
|
|
|
build = nixvim.legacyPackages.${system}.makeNixvim;
|
|
|
|
build-stable = nixvim-stable.legacyPackages.${system}.makeNixvim;
|
2022-09-18 11:19:23 +01:00
|
|
|
in
|
|
|
|
rec {
|
|
|
|
# A plain nixvim configuration
|
|
|
|
packages = {
|
|
|
|
plain = build { };
|
|
|
|
|
|
|
|
# Should print "Hello!" when starting up
|
|
|
|
hello = build {
|
|
|
|
extraConfigLua = "print(\"Hello!\")";
|
|
|
|
};
|
|
|
|
|
|
|
|
simple-plugin = build {
|
|
|
|
extraPlugins = [ pkgs.vimPlugins.vim-surround ];
|
|
|
|
};
|
|
|
|
|
|
|
|
gruvbox = build {
|
|
|
|
extraPlugins = [ pkgs.vimPlugins.gruvbox ];
|
|
|
|
colorscheme = "gruvbox";
|
|
|
|
};
|
|
|
|
|
|
|
|
gruvbox-module = build {
|
|
|
|
colorschemes.gruvbox.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
treesitter = build {
|
|
|
|
plugins.treesitter.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
treesitter-nonix = build {
|
|
|
|
plugins.treesitter = {
|
|
|
|
enable = true;
|
|
|
|
nixGrammars = false;
|
|
|
|
};
|
|
|
|
};
|
2022-10-22 15:45:03 +01:00
|
|
|
elixir-ls = build {
|
|
|
|
plugins.lsp.enable = true;
|
|
|
|
plugins.lsp.servers.elixirls.enable = true;
|
|
|
|
};
|
2022-10-03 15:21:28 +01:00
|
|
|
|
2022-10-10 15:21:57 +01:00
|
|
|
lsp-lines = build-stable {
|
|
|
|
plugins.lsp-lines.enable = true;
|
|
|
|
};
|
|
|
|
|
2022-11-15 10:14:43 +00:00
|
|
|
trouble = build {
|
|
|
|
plugins.lsp = {
|
|
|
|
enable = true;
|
|
|
|
servers.clangd.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
plugins.trouble.enable = true;
|
|
|
|
};
|
|
|
|
|
2022-11-15 11:36:42 +00:00
|
|
|
beautysh = build {
|
|
|
|
plugins.null-ls = {
|
|
|
|
enable = true;
|
|
|
|
sources.formatting.beautysh.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-01-12 20:13:47 +01:00
|
|
|
keymaps = build {
|
|
|
|
maps.normal."," = "<cmd>echo \"test\"<cr>";
|
|
|
|
};
|
|
|
|
|
2022-10-04 15:04:22 +01:00
|
|
|
issue-40 = build-stable {
|
2022-10-03 15:21:28 +01:00
|
|
|
plugins = {
|
|
|
|
nix.enable = true;
|
|
|
|
nvim-autopairs.enable = true;
|
|
|
|
|
|
|
|
lualine = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
sectionSeparators = {
|
|
|
|
left = "";
|
|
|
|
right = "";
|
|
|
|
};
|
|
|
|
|
|
|
|
componentSeparators = {
|
|
|
|
left = "";
|
|
|
|
right = "";
|
|
|
|
};
|
|
|
|
|
|
|
|
theme = "auto";
|
|
|
|
};
|
|
|
|
|
|
|
|
goyo = {
|
|
|
|
enable = true;
|
|
|
|
showLineNumbers = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
lsp = {
|
|
|
|
enable = true;
|
|
|
|
servers = {
|
|
|
|
rust-analyzer.enable = true;
|
|
|
|
rnix-lsp.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
options = {
|
|
|
|
# Indentation
|
|
|
|
autoindent = true;
|
|
|
|
tabstop = 4;
|
|
|
|
shiftwidth = 4;
|
|
|
|
expandtab = true;
|
|
|
|
backspace = "indent,eol,start";
|
|
|
|
|
|
|
|
# Text
|
|
|
|
showmatch = true;
|
|
|
|
mouse = "a";
|
|
|
|
number = true;
|
|
|
|
relativenumber = false;
|
|
|
|
ttyfast = true;
|
|
|
|
clipboard = "unnamedplus";
|
|
|
|
|
|
|
|
# Colors
|
|
|
|
background = "dark";
|
|
|
|
termguicolors = true;
|
|
|
|
};
|
|
|
|
};
|
2022-11-08 11:19:38 +00:00
|
|
|
|
|
|
|
issue-65 = build {
|
|
|
|
colorschemes.gruvbox = {
|
|
|
|
enable = true;
|
|
|
|
contrastLight = "hard";
|
|
|
|
contrastDark = "hard";
|
|
|
|
};
|
|
|
|
|
|
|
|
options = {
|
|
|
|
number = true;
|
|
|
|
shiftwidth = 2;
|
|
|
|
tabstop = 2;
|
|
|
|
guifont = "FiraCode\ Nerd\ Font\ Mono:h14";
|
|
|
|
};
|
|
|
|
|
|
|
|
plugins = {
|
|
|
|
lsp = {
|
|
|
|
enable = true;
|
|
|
|
servers.rnix-lsp.enable = true;
|
|
|
|
servers.rust-analyzer.enable = true;
|
|
|
|
servers.jsonls.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
nvim-tree = {
|
|
|
|
enable = true;
|
|
|
|
openOnSetup = true;
|
|
|
|
openOnTab = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
telescope = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
nvim-cmp = {
|
|
|
|
formatting = {
|
|
|
|
format = ''
|
2022-11-10 18:22:45 +00:00
|
|
|
require("lspkind").cmp_format({
|
|
|
|
mode="symbol",
|
|
|
|
maxwidth = 50,
|
|
|
|
ellipsis_char = "..."
|
|
|
|
})
|
|
|
|
'';
|
2022-11-08 11:19:38 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
auto_enable_sources = true;
|
|
|
|
snippet = {
|
|
|
|
expand = ''
|
2022-11-10 18:22:45 +00:00
|
|
|
function(args)
|
|
|
|
require("luasnip").lsp_expand(args.body)
|
|
|
|
end
|
|
|
|
'';
|
2022-11-08 11:19:38 +00:00
|
|
|
};
|
|
|
|
enable = true;
|
|
|
|
sources = [
|
|
|
|
{ name = "nvim_lsp"; }
|
|
|
|
{
|
|
|
|
name = "luasnip";
|
|
|
|
option = {
|
|
|
|
show_autosnippets = true;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{ name = "path"; }
|
|
|
|
{ name = "buffer"; }
|
|
|
|
];
|
|
|
|
|
|
|
|
};
|
|
|
|
barbar.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
globals.mapleader = " ";
|
|
|
|
extraPlugins = with pkgs.vimPlugins; [
|
|
|
|
which-key-nvim
|
|
|
|
# leap-nvim
|
|
|
|
vim-flutter
|
|
|
|
plenary-nvim
|
|
|
|
fidget-nvim
|
|
|
|
luasnip
|
|
|
|
lspkind-nvim
|
|
|
|
];
|
|
|
|
|
|
|
|
# extraConfigLua = (builtins.readFile ./nvim-extra-lua.lua);
|
|
|
|
};
|
2022-11-10 18:22:45 +00:00
|
|
|
|
2022-11-27 16:53:49 -05:00
|
|
|
issue-71 = build {
|
|
|
|
maps.normal."<leader>hb" = "<cmd>lua require('gitsigns').blame_line{full=true}<cr>";
|
|
|
|
};
|
|
|
|
|
2022-11-10 18:22:45 +00:00
|
|
|
lspkind = build {
|
|
|
|
plugins = {
|
|
|
|
lsp = {
|
|
|
|
enable = true;
|
|
|
|
servers.clangd.enable = true;
|
|
|
|
};
|
|
|
|
nvim-cmp.enable = true;
|
|
|
|
lspkind.enable = true;
|
|
|
|
};
|
|
|
|
};
|
2022-11-11 02:15:23 +00:00
|
|
|
|
|
|
|
highlight = build {
|
|
|
|
options.termguicolors = true;
|
|
|
|
highlight = {
|
|
|
|
Normal.fg = "#ff0000";
|
|
|
|
};
|
|
|
|
};
|
2022-12-01 14:05:35 +00:00
|
|
|
|
|
|
|
ts-custom = build {
|
|
|
|
plugins.treesitter = {
|
|
|
|
enable = true;
|
|
|
|
nixGrammars = true;
|
|
|
|
grammarPackages = [
|
|
|
|
(build-ts.lib.buildGrammar pkgs {
|
|
|
|
language = "gleam";
|
|
|
|
version = "0.25.0";
|
|
|
|
source = gleam;
|
|
|
|
})
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2022-09-18 11:19:23 +01:00
|
|
|
};
|
|
|
|
})) // {
|
|
|
|
nixosConfigurations.nixvim-machine = nixpkgs.lib.nixosSystem {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
modules = [
|
|
|
|
({ pkgs, ... }: {
|
|
|
|
environment.systemPackages = [
|
|
|
|
(nixvim.build pkgs { colorschemes.gruvbox.enable = true; })
|
|
|
|
];
|
|
|
|
})
|
|
|
|
];
|
|
|
|
};
|
|
|
|
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
modules =
|
|
|
|
[
|
|
|
|
({ pkgs, ... }: {
|
|
|
|
boot.isContainer = true;
|
|
|
|
|
|
|
|
# Let 'nixos-version --json' know about the Git revision
|
|
|
|
# of this flake.
|
|
|
|
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
|
|
|
|
|
|
|
imports = [
|
|
|
|
nixvim.nixosModules.x86_64-linux.nixvim
|
|
|
|
];
|
|
|
|
|
|
|
|
programs.nixvim = {
|
|
|
|
enable = true;
|
|
|
|
colorschemes.gruvbox.enable = true;
|
|
|
|
};
|
|
|
|
})
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|