Carlos Gutierrez 555718c010 feat(v1.1.0): major refactor with modular architecture and plugin support
- Add config.lua for comprehensive configuration options
  (transparent, italic_comments, bold_keywords, bold_functions, bold_types, terminal_colors)
- Add highlights.lua with 500+ highlight groups for 30+ plugins
  (Telescope, NvimTree, Neo-tree, GitSigns, nvim-cmp, Lazy.nvim, Mason, etc.)
- Add colors/ directory for :colorscheme command support
- Add terminal colors (16-color palette for :terminal)
- Add test suite (test/test_colors.lua)
- Add development tools (selene.toml, stylua.toml, vim.toml)
- Add CHANGELOG.md following Keep a Changelog format

- Fix colors.lua not being used by init.lua
- Fix setup(opts) not applying configuration options
- Fix README referencing non-existent files

- Update documentation with accurate file structure and API docs
2026-01-10 22:13:00 -05:00
2025-08-02 14:23:10 -04:00
2025-08-02 14:23:10 -04:00

CargDev-Cyberpunk.nvim

A vibrant, high-contrast Neovim color scheme crafted for developers who thrive in bold, electrifying visuals. Built with TypeScript support and atomic design principles in mind, this theme delivers blazing neon tones and a cyberpunk aesthetic that maximizes focus and visual impact.

Features

  • High-Contrast Neon Colors: Hot pink keywords, electric purple types, vibrant cyan accents, and lush green functions
  • Cyberpunk Aesthetic: Deep blue backgrounds with neon accents for maximum visual impact
  • TypeScript Support: Comprehensive LSP and Treesitter highlighting for TypeScript/JavaScript
  • Configurable: Transparent background, italic/bold toggles, and custom color overrides
  • Plugin Integration: Native support for Telescope, NvimTree, Neo-tree, GitSigns, nvim-cmp, Lazy.nvim, and more
  • Terminal Colors: Full 16-color terminal palette for :terminal
  • LSP Integration: Full support for Language Server Protocol highlighting and semantic tokens
  • Treesitter Support: Advanced syntax highlighting with Treesitter

Screenshots

TypeScript

TypeScript Example

TypeScript React (TSX)

TypeScript React Example

CSS

CSS Example

JSON

JSON Example

Color Palette

Syntax Colors

Element Color Preview
Keywords #FF79C6 Control flow and declarations (bold)
Functions #50FA7B Function calls and definitions (bold)
Strings #FFFFFF String literals
Numbers #FFB86C Numeric literals and constants
Types #BD93F9 Type annotations and interfaces (bold)
Variables #BD93F9 Variable names
Properties #50FA7B Object properties (bold)
Comments #666666 Code comments (italic)

Background Colors

Element Color Description
Primary #002B36 Main background
Secondary #003B46 Sidebars and floating windows
Tertiary #004B56 Selected tabs and highlights
Cursor Line #112233 Current line highlight
Selection #44475A Visual selection

Diagnostic Colors

Type Color
Error #FF5555
Warning #FFB86C
Info #8BE9FD
Hint #50FA7B

Installation

{
  "yourusername/cargdev-cyberpunk.nvim",
  lazy = false,
  priority = 1000,
  config = function()
    require("cargdev-cyberpunk").setup()
  end,
}

Using Packer

use {
  "yourusername/cargdev-cyberpunk.nvim",
  config = function()
    require("cargdev-cyberpunk").setup()
  end
}

Using vim-plug

Plug 'yourusername/cargdev-cyberpunk.nvim'

Then in your Lua config:

require("cargdev-cyberpunk").setup()

Manual Installation

Clone this repository to your Neovim plugins directory:

git clone https://github.com/yourusername/cargdev-cyberpunk.nvim \
  ~/.local/share/nvim/site/pack/plugins/start/cargdev-cyberpunk.nvim

Configuration

Basic Setup

require("cargdev-cyberpunk").setup()

Using Colorscheme Command

After installation, you can load the colorscheme with:

:colorscheme cargdev-cyberpunk

Advanced Configuration

require("cargdev-cyberpunk").setup({
  -- Enable transparent background
  transparent = false,

  -- Style options
  italic_comments = true,
  bold_keywords = true,
  bold_functions = true,
  bold_types = true,

  -- Enable terminal colors
  terminal_colors = true,

  -- Custom color overrides
  colors = {
    syntax = {
      keyword = "#FF0000",  -- Make keywords red
    },
    bg = {
      primary = "#000000",  -- Pure black background
    },
  },
})

Configuration Options

Option Type Default Description
transparent boolean false Enable transparent background
italic_comments boolean true Use italic style for comments
bold_keywords boolean true Use bold style for keywords
bold_functions boolean true Use bold style for functions
bold_types boolean true Use bold style for types
terminal_colors boolean true Set terminal colors for :terminal
colors table {} Custom color overrides

Plugin Support

CargDev-Cyberpunk includes native highlight groups for these plugins:

  • Telescope: Search and picker UI
  • NvimTree / Neo-tree: File explorers
  • GitSigns: Git diff indicators
  • nvim-cmp: Completion menu
  • indent-blankline: Indentation guides
  • which-key: Keybinding hints
  • Lazy.nvim: Plugin manager UI
  • Mason: LSP/DAP installer UI
  • bufferline.nvim: Buffer tabs
  • lualine.nvim: Status line
  • nvim-notify: Notification popups
  • noice.nvim: UI replacement
  • trouble.nvim: Diagnostics list
  • dashboard-nvim / alpha-nvim: Start screen
  • Copilot: AI suggestions

Architecture

The plugin follows a modular structure:

lua/cargdev-cyberpunk/
├── init.lua          # Main entry point and setup
├── colors.lua        # Color palette definitions
├── config.lua        # Configuration management
├── highlights.lua    # Highlight group definitions
└── plugin.lua        # Plugin metadata

colors/
└── cargdev-cyberpunk.lua  # Colorscheme command file

test/
└── test_colors.lua   # Test suite

Modules

  • init.lua: Main setup, load, and apply functions
  • colors.lua: Centralized color palette with override support
  • config.lua: Configuration defaults and user options
  • highlights.lua: All highlight group definitions organized by category
  • plugin.lua: Plugin metadata (name, version, author)

TypeScript Support

This color scheme includes extensive TypeScript support:

  • LSP Integration: Full support for TypeScript Language Server highlighting
  • Semantic Tokens: Enhanced highlighting with LSP semantic tokens
  • Treesitter: Advanced syntax highlighting with Treesitter
  • Type Annotations: Special highlighting for type annotations and interfaces
  • Import/Export: Distinct colors for import and export statements
  • Decorators: Support for TypeScript decorators
  • Generics: Proper highlighting for generic types

Requirements

  • Neovim 0.8.0 or higher
  • termguicolors enabled (automatically set by the plugin)
  • Treesitter (recommended for best experience)
  • LSP support (recommended for TypeScript features)

Testing

Run the test suite:

nvim --headless -c "lua dofile('test/test_colors.lua')"

Or from within Neovim:

:lua dofile('test/test_colors.lua')

API

Functions

local cyberpunk = require("cargdev-cyberpunk")

-- Setup with options
cyberpunk.setup(opts)

-- Load/reload the colorscheme
cyberpunk.load()

-- Apply highlights (useful for refreshing)
cyberpunk.apply_highlights()

-- Get the current color palette
local colors = cyberpunk.get_colors()

Accessing Colors

local colors = require("cargdev-cyberpunk.colors")

-- Get the palette
local palette = colors.palette

-- Override colors
colors.override({
  syntax = {
    keyword = "#FF0000",
  },
})

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Development Setup

  1. Fork the repository
  2. Clone your fork locally
  3. Make your changes
  4. Run tests: nvim --headless -c "lua dofile('test/test_colors.lua')"
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Neovim Community: For the excellent plugin ecosystem
  • Dracula Theme: Inspiration for some color choices
  • Cyberpunk Aesthetic: Inspired by the vibrant neon colors of cyberpunk culture

Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Include your Neovim version and configuration

Enjoy coding with vibrant colors!

"If I squint at this theme, I should feel like Tron is about to compile!"

Description
No description provided
Readme MIT 1.9 MiB
Languages
Lua 90.9%
Shell 9.1%