mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-02-24 04:18:03 +00:00
Compare commits
7 commits
b2f694c78e
...
a75da31d95
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a75da31d95 | ||
![]() |
1ac041ba81 | ||
![]() |
77239bee83 | ||
![]() |
266f880561 | ||
![]() |
423ed4d1d6 | ||
![]() |
49ec0adca3 | ||
![]() |
5db7e2aff9 |
7 changed files with 41 additions and 97 deletions
|
@ -204,3 +204,8 @@ everyone.
|
|||
- Add LSP and Treesitter support for R under `vim.languages.R`.
|
||||
- Add Otter support under `vim.lsp.otter` and an assert to prevent conflict with
|
||||
ccc
|
||||
|
||||
[Bloxx12](https://github.com/Bloxx12)
|
||||
|
||||
- Add support for [base16 theming](https://github.com/RRethy/base16-nvim) under
|
||||
`vim.theme`
|
||||
|
|
|
@ -6,12 +6,10 @@
|
|||
typesDag = import ./dag.nix {inherit lib;};
|
||||
typesPlugin = import ./plugins.nix {inherit inputs lib;};
|
||||
typesLanguage = import ./languages.nix {inherit lib;};
|
||||
typesCustom = import ./custom.nix {inherit lib;};
|
||||
typesTheme = import ./theme.nix {inherit lib;};
|
||||
typesTypes = import ./types.nix {inherit lib;};
|
||||
in {
|
||||
inherit (typesDag) dagOf;
|
||||
inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption luaInline pluginType borderType;
|
||||
inherit (typesLanguage) diagnostics mkGrammarOption;
|
||||
inherit (typesCustom) anythingConcatLists char;
|
||||
inherit (typesTheme) hexColorType;
|
||||
inherit (typesTypes) anythingConcatLists char hexColor;
|
||||
}
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
{lib}: let
|
||||
inherit (lib.strings) isString;
|
||||
inherit (lib.types) mkOptionType;
|
||||
inherit (builtins) match;
|
||||
# This was almost entirely taken from raf himself.
|
||||
in {
|
||||
hexColorType = mkOptionType {
|
||||
name = "hex-color";
|
||||
descriptionClass = "noun";
|
||||
description = "RGB color in hex format";
|
||||
# Check to determine wether the provided color is base16-valid
|
||||
check = x: isString x && (match "#[0-9a-fA-F]{6}" x) != null;
|
||||
};
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
{lib}: let
|
||||
inherit (lib) isStringLike showOption showFiles getFiles mergeOneOption mergeEqualOption mkOptionType;
|
||||
inherit (lib.strings) isString;
|
||||
inherit (lib.types) anything attrsOf;
|
||||
inherit (lib.nvim.types) anythingConcatLists;
|
||||
inherit (builtins) typeOf isAttrs any head concatLists stringLength;
|
||||
inherit (builtins) typeOf isAttrs any head concatLists stringLength match;
|
||||
in {
|
||||
# HACK: Does this break anything in our case?
|
||||
# A modified version of the nixpkgs anything type that concatenates lists
|
||||
|
@ -58,4 +59,11 @@ in {
|
|||
check = value: stringLength value < 2;
|
||||
merge = mergeEqualOption;
|
||||
};
|
||||
|
||||
hexColor = mkOptionType {
|
||||
name = "hex-color";
|
||||
descriptionClass = "noun";
|
||||
description = "RGB color in hex format";
|
||||
check = v: isString v && (match "#?[0-9a-fA-F]{6}" v) != null;
|
||||
};
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
{lib}: let
|
||||
inherit (lib.options) mkOption;
|
||||
inherit (lib.nvim.types) hexColorType;
|
||||
in {
|
||||
base00 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#1e1e2e";
|
||||
};
|
||||
base01 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#181825";
|
||||
};
|
||||
base02 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#313244";
|
||||
};
|
||||
base03 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#45475a";
|
||||
};
|
||||
base04 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#585b70";
|
||||
};
|
||||
base05 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#cdd6f4";
|
||||
};
|
||||
base06 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#f5e0dc";
|
||||
};
|
||||
base07 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#b4befe";
|
||||
};
|
||||
base08 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#f38ba8";
|
||||
};
|
||||
base09 = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#fab387";
|
||||
};
|
||||
base0A = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#a6e3a1";
|
||||
};
|
||||
base0B = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#94e2d5";
|
||||
};
|
||||
base0C = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#a6e3a1";
|
||||
};
|
||||
base0D = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#89b4fa";
|
||||
};
|
||||
base0E = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#cba6f4";
|
||||
};
|
||||
base0F = mkOption {
|
||||
type = hexColorType;
|
||||
default = "#f2cdcd";
|
||||
};
|
||||
}
|
|
@ -5,12 +5,11 @@
|
|||
inherit (lib.strings) optionalString;
|
||||
inherit (lib.trivial) boolToString warnIf;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
cfg = config.vim.theme;
|
||||
in {
|
||||
base16 = {
|
||||
setup = {base16-colors, ...}: ''
|
||||
-- Base-16 theme
|
||||
require('base16-colorscheme').setup(${toLuaObject cfg.base16-colors})
|
||||
-- Base16 theme
|
||||
require('base16-colorscheme').setup(${toLuaObject base16-colors})
|
||||
'';
|
||||
};
|
||||
onedark = {
|
||||
|
|
|
@ -4,29 +4,46 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.options) mkOption;
|
||||
inherit (lib.attrsets) attrNames;
|
||||
inherit (lib.attrsets) attrNames listToAttrs;
|
||||
inherit (lib.strings) hasPrefix;
|
||||
inherit (lib.types) bool lines enum;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryBefore;
|
||||
inherit (lib.nvim.types) hexColor;
|
||||
|
||||
cfg = config.vim.theme;
|
||||
supportedThemes = import ./supported-themes.nix {
|
||||
inherit lib config;
|
||||
};
|
||||
base16-colors = import ./base16-colors.nix {
|
||||
inherit lib;
|
||||
|
||||
numbers = ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F"];
|
||||
base16Options = listToAttrs (map (n: {
|
||||
name = "base0${n}";
|
||||
value = mkOption {
|
||||
description = "The base0${n} color to use";
|
||||
type = hexColor;
|
||||
apply = v:
|
||||
if hasPrefix "#" v
|
||||
then v
|
||||
else "#${v}";
|
||||
};
|
||||
})
|
||||
numbers);
|
||||
in {
|
||||
options.vim.theme = {
|
||||
enable = mkOption {
|
||||
type = bool;
|
||||
description = "Enable theming";
|
||||
};
|
||||
inherit base16-colors;
|
||||
name = mkOption {
|
||||
type = enum (attrNames supportedThemes);
|
||||
description = "Supported themes can be found in `supportedThemes.nix`";
|
||||
description = ''
|
||||
Supported themes can be found in {file}`supportedThemes.nix`.
|
||||
Setting the theme to "base16" enables base16 theming and
|
||||
requires all of the colors in {option}`vim.theme.base16-colors` to be set.
|
||||
'';
|
||||
};
|
||||
base16-colors = base16Options;
|
||||
|
||||
style = mkOption {
|
||||
type = enum supportedThemes.${cfg.name}.styles;
|
||||
|
|
Loading…
Add table
Reference in a new issue