- Added README

- Nuked most of the variables as it was confusing
This commit is contained in:
Barna Máté 2024-12-18 14:23:38 +01:00
parent ad6f6bf42b
commit c0db3a0283
2 changed files with 75 additions and 147 deletions

View file

@ -1,6 +1,50 @@
# Shades of purple neovim
A port of [the original vscode theme](https://github.com/ahmadawais/shades-of-purple-vscode).
A port of [the original vscode theme](https://github.com/ahmadawais/shades-of-purple-vscode).
This theme is still balls deep into development but it's possible to use it.
# Install
a. Using lazy.nvim
```lua
require('lazy').setup({
{ "https://git.4o1x5.dev/4o1x5/shades-of-purple-nvim", opts = {} },
})
```
b. Using nixvim
```nix
# inside nixvim
extraPlugins = with pkgs; [
{
plugin = pkgs.vimUtils.buildVimPlugin {
pname = "shades_of_purple";
version = "1.0.0";
src = pkgs.fetchFromGitea {
domain = "git.4o1x5.dev";
owner = "4o1x5";
repo = "shades-of-purple-nvim";
rev = "ad6f6bf42b2cd4e6f9f5d798ba88e23a28d60b80";
hash = "sha256-prkkBUFgbLvLAdMZvFlGaHIHINFiRX2rc97zEsQzz4g=";
};
}
}
];
colorscheme = "shades_of_purple";
```
> Btw by copying this you may not get the latest version, I recommend running the following to get the latest.
```bash
nix run nixpkgs#nurl -- https://git.4o1x5.dev/4o1x5/shades-of-purple-nvim -f fetchFromGitea
```
## Made possible with
- [lush.nvim](https://github.com/rktjmp/lush.nvim/) and it's [starter template](https://github.com/rktjmp/lush-template).
- [oxocarbon](https://github.com/nyoom-engineering/oxocarbon.nvim) - variable inspo

View file

@ -1,171 +1,55 @@
local lush = require('lush')
local hsl = lush.hsl
local base00 = "#191830"
local base06 = "#ffffff"
local base09 = "#78a9ff"
local colors = {
base00 = base00,
base01 = base00,
base02 = "#fad000",
base03 = "#FFFFFF",
base04 = "#FFFFFF",
base05 = "#FFFFFF",
base06 = "#FFFFFF",
base07 = "#fad000",
base08 = "#3ddbd9",
base09 = base09,
base10 = "#ee5396",
base11 = "#33b1ff",
base12 = "#ff7eb6",
base13 = "#42be65",
base14 = "#be95ff",
base15 = "#82cfff",
blend = "#131313",
string = "#A5FF90",
keyword = "#ff9d00",
type = "#fad000",
error = "#EC3A37F5",
storage = "#FB94FF",
macro = "#fad000",
fg = "#FFFFFF",
lineNumber = "#7870ab",
bg = "#191830",
lightgreen = "#A5FF90",
orange_peel = "#ff9d00",
gold= "#fad000",
violet = "#FB94FF",
crayola = "#FF628C",
amethyst = "#b362ff",
white = "#FFFFFF",
meta = "#9efff",
number = "#FF628C",
cyan = "#9EFFFF",
space_cadet = "#191830",
none = "NONE"
}
-- LSP/Linters mistakenly show `undefined global` errors in the spec, they may
-- support an annotation like the following. Consult your server documentation.
---@diagnostic disable: undefined-global
local theme = lush(function(injected_functions)
local sym = injected_functions.sym
return {
ColorColumn {fg = colors.none, bg = colors.bg },
Cursor {fg = colors.base00, bg = colors.base04},
CursorLine {fg = colors.none, bg = colors.base01},
CursorColumn {fg = colors.none, bg = colors.base01},
CursorLineNr {fg = colors.base04, bg = colors.none},
QuickFixLine {fg = colors.none, bg = colors.base01},
Error {fg = colors.error, bg = colors.base01},
LineNr {fg = colors.lineNumber, bg = colors.base00},
NonText {fg = colors.fg, bg = colors.none},
Normal {fg = colors.fg, bg = colors.base00},
Pmenu {fg = colors.base04, bg = colors.base01},
PmenuSbar {fg = colors.base04, bg = colors.base01},
PmenuSel {fg = colors.base08, bg = colors.base02},
PmenuThumb {fg = colors.base08, bg = colors.base02},
SpecialKey {fg = colors.base03, bg = colors.none},
Visual {fg = colors.none, bg = colors.base02},
VisualNOS {fg = colors.none, bg = colors.base02},
TooLong {fg = colors.none, bg = colors.base02},
Debug {fg = colors.white, bg = colors.none},
Macro {fg = colors.cyan, bg = colors.none},
MatchParen {fg = colors.none, bg = colors.base02, underline = true},
Bold {fg = colors.none, bg = colors.none, bold = true},
Italic {fg = colors.none, bg = colors.none, italic = true},
Underlined {fg = colors.none, bg = colors.none, underline = true},
DiagnosticWarn {fg = colors.base14, bg = colors.none},
DiagnosticError {fg = colors.base10, bg = colors.none},
DiagnosticInfo {fg = colors.base09, bg = colors.none},
DiagnosticHint {fg = colors.base04, bg = colors.none},
DiagnosticUnderlineWarn {fg = colors.base14, bg = colors.none, undercurl = true},
DiagnosticUnderlineError {fg = colors.base10, bg = colors.none, undercurl = true},
DiagnosticUnderlineInfo {fg = colors.macro, bg = colors.none, undercurl = true},
DiagnosticUnderlineHint {fg = colors.macro, bg = colors.none, undercurl = true},
HealthError {fg = colors.base10, bg = colors.none},
HealthWarning {fg = colors.base14, bg = colors.none},
HealthSuccess {fg = colors.base13, bg = colors.none},
ColorColumn {fg = colors.none, bg = colors.gold },
LspCodeLens {fg = colors.none, bg = colors.base03},
LspReferenceText {fg = colors.none, bg = colors.base03},
LspReferenceread {fg = colors.none, bg = colors.base03},
LspReferenceWrite {fg = colors.none, bg = colors.base03},
LspSignatureActiveParameter {fg = colors.base08, bg = colors.none},
Normal {fg = colors.fg, bg = colors.space_cadet },
Comment {fg = colors.amethyst, bg = colors.none, italic = true},
Constant {fg = colors.gold, bg = colors.none},
Number {fg = colors.crayola, bg = colors.none},
Folded {fg = colors.base02, bg = colors.base01},
FoldColumn {fg = colors.base01, bg = colors.base00},
SignColumn {fg = colors.base01, bg = colors.base00},
Directory {fg = colors.base08, bg = colors.none},
EndOfBuffer {fg = colors.base01, bg = colors.none},
ErrorMsg {fg = colors.error, bg = colors.none},
ModeMsg {fg = colors.base04, bg = colors.none},
MoreMsg {fg = colors.base08, bg = colors.none},
Question {fg = colors.base04, bg = colors.none},
Substitute {fg = colors.base01, bg = colors.base08},
WarningMsg {fg = colors.base14, bg = colors.none},
WildMenu {fg = colors.base08, bg = colors.base01},
helpHyperTextJump {fg = colors.base08, bg = colors.none},
helpSpecial {fg = colors.base09, bg = colors.none},
helpHeadline {fg = colors.base10, bg = colors.none},
helpHeader {fg = colors.base15, bg = colors.none},
DiffAdded {fg = colors.base07, bg = colors.none},
DiffChanged {fg = colors.base09, bg = colors.none},
DiffRemoved {fg = colors.base10, bg = colors.none},
DiffAdd {bg = "#122f2f", fg = colors.none},
DiffChange {bg = "#222a39", fg = colors.none},
DiffText {bg = "#2f3f5c", fg = colors.none},
DiffDelete {bg = "#361c28", fg = colors.none},
IncSearch {fg = colors.base06, bg = colors.base10},
Search {fg = colors.base01, bg = colors.base08},
TabLine {link = "StatusLineNC"},
TabLineFill {link = "TabLine"},
TabLineSel {link = "StatusLine"},
Title {fg = colors.base04, bg = colors.none},
VertSplit {fg = colors.base01, bg = colors.base00},
WinSeparator {fg = colors.base01, bg = colors.base00},
Boolean {fg = colors.number, bg = colors.none},
Character {fg = colors.base14, bg = colors.none},
Comment {fg = colors.error, bg = colors.none, italic = true},
Conceal {fg = colors.none, bg = colors.none},
Conditional {fg = colors.base09, bg = colors.none},
Constant {fg = colors.macro, bg = colors.none},
Decorator {fg = colors.base12, bg = colors.none},
Define {fg = colors.storage, bg = colors.none},
Delimeter {fg = colors.keyword, bg = colors.none},
Exception {fg = colors.base09, bg = colors.none},
Include {fg = colors.gold, bg = colors.none},
Keyword {fg = colors.orange_peel, bg = colors.none},
Label {fg = colors.orange_peel, bg = colors.none},
Operator {fg = colors.orange_peel, bg = colors.none},
PreProc {fg = colors.cyan, bg = colors.none},
Float {link = "Number"},
Function {fg = colors.type, bg = colors.none},
Identifier {fg = colors.white, bg = colors.none},
Include {fg = colors.macro, bg = colors.none},
Keyword {fg = colors.keyword, bg = colors.none},
Label {fg = colors.type, bg = colors.none},
Number {fg = colors.number, bg = colors.none},
Operator {fg = colors.keyword, bg = colors.none},
PreProc {fg = colors.meta, bg = colors.none},
Repeat {fg = colors.base09, bg = colors.none},
Special {fg = colors.base04, bg = colors.none},
SpecialChar {fg = colors.base04, bg = colors.none},
SpecialComment {fg = colors.base08, bg = colors.none},
Statement {fg = colors.type, bg = colors.none},
StorageClass {fg = colors.keyword, bg = colors.none},
String {fg = colors.string, bg = colors.none},
Structure {fg = colors.macro, bg = colors.none},
Tag {fg = colors.base04, bg = colors.none},
Todo {fg = colors.base13, bg = colors.none},
Type {fg = colors.type, bg = colors.none},
Function {fg = colors.gold, bg = colors.none},
Identifier {fg = colors.cyan, bg = colors.none},
Type {fg = colors.gold, bg = colors.none},
String {fg = colors.lightgreen, bg = colors.none},
-- Language specific stuff
-- rustModPath {fg = "#fad000" },
rustFoldBraces = {fg = colors.macro },
rustFloat = { fg = colors.number },
rustFoldBraces {fg = colors.cyan },
rustStorage { fg = colors.orange_peel },
-- Plugins
RainbowRed = { fg = "#E06C75" },
RainbowYellow= { fg = "#E5C07B" },
-- Language specific stuff..
sym"@lsp.typemod.selfKeyword.reference.rust" { fg = colors.violet },
sym"@lsp.typemod.variable.reference.rust" { fg = colors.violet },
-- sym"@lsp.typemod.property.public" { fg = colors.white },
sym"@lsp.type.selfTypeKeyword" { fg = colors.violet },
rustSigil {fg = colors.orange_peel },
rustSelf { fg = colors.violet },
}
end)
-- Return our parsed theme for extension or use elsewhere.
return theme
-- vi:nowrap