diff --git a/README.md b/README.md index 474391c..a0d9874 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/lua/shades_of_purple/shades_of_purple.lua b/lua/shades_of_purple/shades_of_purple.lua index 68525d0..bfe5821 100644 --- a/lua/shades_of_purple/shades_of_purple.lua +++ b/lua/shades_of_purple/shades_of_purple.lua @@ -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