# nvim-github-theme GitHub's modern theme variants for Neovim. ## Requirements - Neovim `0.9+` - `termguicolors` enabled ## Installation Install the plugin with your preferred plugin manager, then pick one of the shipped colorschemes: - `github_light_default` - `github_light_high_contrast` - `github_light_colorblind` - `github_dark_default` - `github_dark_high_contrast` - `github_dark_colorblind` - `github_dark_dimmed` ## Usage ```lua require("github_theme").setup({ transparent = false, styles = { comments = { italic = true }, keywords = { bold = false }, functions = { italic = false }, types = { italic = false }, }, colors = { comment = "#6e7781", }, highlights = { CursorLineNr = { bold = true }, }, }) vim.cmd.colorscheme("github_dark_default") ``` ## Configuration `setup()` accepts these options: ```lua { transparent = false, styles = { comments = { italic = false, bold = false, underline = false }, keywords = { italic = false, bold = false, underline = false }, functions = { italic = false, bold = false, underline = false }, types = { italic = false, bold = false, underline = false }, }, colors = { -- overrides normalized palette keys before highlight compilation -- for example: bg, fg, comment, string, keyword, type, accent }, highlights = { -- overrides final highlight groups after compilation }, } ``` ## Scope This port covers: - core UI groups - standard Vim syntax groups - Treesitter captures - LSP semantic token groups - diagnostics, diff, git sign groups - terminal ANSI colors This first version does not ship third-party plugin adapters. ## Updating From Upstream The runtime does not depend on Node, but the repo includes a maintenance script for refreshing the generated color intent from the official GitHub VS Code theme and Primer palettes. Refresh the pinned sources: ```sh node scripts/sync_intent.mjs ``` Verify the committed generated artifacts still match the pinned upstream versions: ```sh node scripts/sync_intent.mjs --check ``` Override the upstream versions for a one-off update: ```sh node scripts/sync_intent.mjs --github-vscode-theme 6.3.5 --primer 7.10.0 ``` The pinned defaults live in `scripts/sources.json`.