diff --git a/neovim/colors/jdkaplan-cool.lua b/neovim/colors/jdkaplan-cool.lua index 9a98e88..0a70d9b 100644 --- a/neovim/colors/jdkaplan-cool.lua +++ b/neovim/colors/jdkaplan-cool.lua @@ -1,14 +1,14 @@ -vim.opt.background = 'dark' -vim.g.colors_name = 'jdkaplan-cool' +vim.opt.background = "dark" +vim.g.colors_name = "jdkaplan-cool" vim.o.termguicolors = true -local pkg = 'jdkaplan.cool_theme' +local pkg = "jdkaplan.cool_theme" -- Clear the Lua cache for the theme package to force it to load every time. package.loaded[pkg] = nil -local lush = require('lush') +local lush = require("lush") local theme = require(pkg) lush(theme) diff --git a/neovim/colors/jdkaplan-warm.lua b/neovim/colors/jdkaplan-warm.lua index bb31faf..8317334 100644 --- a/neovim/colors/jdkaplan-warm.lua +++ b/neovim/colors/jdkaplan-warm.lua @@ -1,14 +1,14 @@ -vim.opt.background = 'light' -vim.g.colors_name = 'jdkaplan-warm' +vim.opt.background = "light" +vim.g.colors_name = "jdkaplan-warm" vim.o.termguicolors = true -local pkg = 'jdkaplan.warm_theme' +local pkg = "jdkaplan.warm_theme" -- Clear the Lua cache for the theme package to force it to load every time. package.loaded[pkg] = nil -local lush = require('lush') +local lush = require("lush") local theme = require(pkg) lush(theme) diff --git a/neovim/ftplugin/rust.lua b/neovim/ftplugin/rust.lua index 9b82115..e586f92 100644 --- a/neovim/ftplugin/rust.lua +++ b/neovim/ftplugin/rust.lua @@ -1,16 +1,13 @@ local bufnr = vim.api.nvim_get_current_buf() function rustLspMap(mode, keys, cmd) - vim.keymap.set( - mode, - keys, - function() vim.cmd.RustLsp(cmd) end, - { silent = true, buffer = bufnr } - ) + vim.keymap.set(mode, keys, function() + vim.cmd.RustLsp(cmd) + end, { silent = true, buffer = bufnr }) end -- Use rust-analyzer's grouping of actions rustLspMap("n", "gra", "codeAction") -- Use rustaceanvim's hover actions -rustLspMap("n", "K", {'hover', 'actions'}) +rustLspMap("n", "K", { "hover", "actions" }) diff --git a/neovim/init.lua b/neovim/init.lua index 7920ae5..cbacf83 100644 --- a/neovim/init.lua +++ b/neovim/init.lua @@ -1,19 +1,19 @@ -vim.o.shell = '/bin/sh' +vim.o.shell = "/bin/sh" vim.g.python3_host_prog = vim.fn.expand("~/.virtualenvs/neovim3/bin/python") local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath }) - vim.fn.system({ "git", "-C", lazypath, "checkout", "tags/stable" }) + vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath }) + vim.fn.system({ "git", "-C", lazypath, "checkout", "tags/stable" }) end vim.opt.rtp:prepend(lazypath) -- Load from ./lua/plugins/*.lua require("lazy").setup("plugins", { - change_detection = { - -- Disable automatic reloading of config files. - enabled = false, - } + change_detection = { + -- Disable automatic reloading of config files. + enabled = false, + }, }) theme = "jdkaplan-temp" @@ -45,11 +45,11 @@ vim.keymap.set("", "k", "gk", { silent = true }) vim.o.list = false vim.o.wrapmargin = 0 vim.opt.listchars = { - tab = ">-", - extends = ">", - precedes = "<", - nbsp = "+", - trail = "-", + tab = ">-", + extends = ">", + precedes = "<", + nbsp = "+", + trail = "-", } vim.o.ignorecase = true @@ -74,23 +74,23 @@ vim.o.secure = true vim.keymap.set("", "w", "", { remap = true }) vim.keymap.set("", 'w"', ":split") -vim.keymap.set("", 'w%', ":vsplit") +vim.keymap.set("", "w%", ":vsplit") -vim.keymap.set("", 'w', ":w") +vim.keymap.set("", "w", ":w") vim.keymap.set("n", "]", function() - if vim.api.nvim_win_get_width(0) > 2 * 80 then - vim.cmd('vertical wincmd ]') - else - vim.cmd('horizontal wincmd ]') - end + if vim.api.nvim_win_get_width(0) > 2 * 80 then + vim.cmd("vertical wincmd ]") + else + vim.cmd("horizontal wincmd ]") + end end) -- TODO: Delete these ; fake-leader bindings -vim.keymap.set("", ';w', ":w") +vim.keymap.set("", ";w", ":w") -- TODO: Delete these ; fake-leader bindings -vim.keymap.set("", ';;', ";") +vim.keymap.set("", ";;", ";") vim.keymap.set("", "", ":nohlsearch") @@ -128,27 +128,35 @@ vim.opt.spellcapcheck = "" -- CTRL-L usually clears and redraws the screen. Might as well use it to reset -- the colorscheme too! vim.keymap.set("n", "", function() - vim.cmd.colorscheme(theme) - vim.cmd.redraw() + vim.cmd.colorscheme(theme) + vim.cmd.redraw() end) vim.diagnostic.config({ jump = { float = true } }) function auto_correct(mode, old, new, scale, limit, cmd) - delay = scale + delay = scale - vim.keymap.set(mode, old, function() - vim.print("You should use " .. new) - vim.cmd.sleep(delay .. "m") - cmd() - delay = math.min(delay + scale, limit) - end) + vim.keymap.set(mode, old, function() + vim.print("You should use " .. new) + vim.cmd.sleep(delay .. "m") + cmd() + delay = math.min(delay + scale, limit) + end) end -auto_correct("n", ';"', 's', 100, 1000, vim.cmd.split) -auto_correct("n", ';%', 'v', 100, 1000, vim.cmd.vsplit) -auto_correct("n", ';0', 'c', 100, 1000, vim.cmd.close) -auto_correct("n", ";h", "h", 10, 500, function() vim.cmd.wincmd("h") end) -auto_correct("n", ";j", "j", 10, 500, function() vim.cmd.wincmd("j") end) -auto_correct("n", ";k", "k", 10, 500, function() vim.cmd.wincmd("k") end) -auto_correct("n", ";l", "l", 10, 500, function() vim.cmd.wincmd("l") end) +auto_correct("n", ';"', "s", 100, 1000, vim.cmd.split) +auto_correct("n", ";%", "v", 100, 1000, vim.cmd.vsplit) +auto_correct("n", ";0", "c", 100, 1000, vim.cmd.close) +auto_correct("n", ";h", "h", 10, 500, function() + vim.cmd.wincmd("h") +end) +auto_correct("n", ";j", "j", 10, 500, function() + vim.cmd.wincmd("j") +end) +auto_correct("n", ";k", "k", 10, 500, function() + vim.cmd.wincmd("k") +end) +auto_correct("n", ";l", "l", 10, 500, function() + vim.cmd.wincmd("l") +end) diff --git a/neovim/lazy-lock.json b/neovim/lazy-lock.json index fe304f8..b405193 100644 --- a/neovim/lazy-lock.json +++ b/neovim/lazy-lock.json @@ -7,9 +7,9 @@ "gitsigns.nvim": { "branch": "main", "commit": "220446c8c86a280180d852efac60991eaf1a21d4" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "keytrail.nvim": { "branch": "main", "commit": "153a76d5891065a328be82316b6813662904da71" }, - "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, + "lazy.nvim": { "branch": "main", "commit": "ed4dc336a73c18da6fea6e1cf7ad6e1b76d281eb" }, "lush.nvim": { "branch": "main", "commit": "9c60ec2279d62487d942ce095e49006af28eed6e" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "2304ff65ecc8cb2afc2484de3e2ed9a407edf0b9" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1d77bd86e1c3eaa777010c95dad455b83823f247" }, "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, "nerdtree": { "branch": "master", "commit": "690d061b591525890f1471c6675bcb5bdc8cdff9" }, "none-ls.nvim": { "branch": "main", "commit": "a96172f673f720cd4f3572e1fcd08400ed3eb25d" }, @@ -18,8 +18,8 @@ "nvim-cmp": { "branch": "main", "commit": "a7bcf1d88069fc67c9ace8a62ba480b8fe879025" }, "nvim-coverage": { "branch": "main", "commit": "a939e425e363319d952a6c35fb3f38b34041ded2" }, "nvim-dap": { "branch": "master", "commit": "6782b097af2417a4c3e33849b0a26ae2188bd7ea" }, - "nvim-lspconfig": { "branch": "master", "commit": "52a893217b2c12e215c6851bd8813b43204416cd" }, - "nvim-surround": { "branch": "main", "commit": "0cadeb0f1930e6b25cf65395f8269bfcc36b6791" }, + "nvim-lspconfig": { "branch": "master", "commit": "a9b2fb560c4ab22c10728fd5149dbd7b62aa4f69" }, + "nvim-surround": { "branch": "main", "commit": "fcfa7e02323d57bfacc3a141f8a74498e1522064" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "a9742cbc1f95db9eaf3293bf8cd0622ca36542bb" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, diff --git a/neovim/lua/jdkaplan/cool_theme.lua b/neovim/lua/jdkaplan/cool_theme.lua index c75d473..7db18f6 100644 --- a/neovim/lua/jdkaplan/cool_theme.lua +++ b/neovim/lua/jdkaplan/cool_theme.lua @@ -1,210 +1,211 @@ -local lush = require('lush') +local lush = require("lush") local hsl = lush.hsl local theme = lush(function(injected_functions) - -- Required alias for treesitter groups. - -- https://github.com/rktjmp/lush.nvim/issues/109 - local sym = injected_functions.sym + -- Required alias for treesitter groups. + -- https://github.com/rktjmp/lush.nvim/issues/109 + local sym = injected_functions.sym - return { - ColorColumn { bg = '#5F0000' }, -- Columns set with 'colorcolumn' - Conceal {}, -- Placeholder characters substituted for concealed text (see 'conceallevel') - Cursor { reverse = true }, -- Character under the cursor - lCursor {}, -- Character under the cursor when |language-mapping| is used (see 'guicursor') - CursorIM {}, -- Like Cursor, but used when in IME mode |CursorIM| - CursorLine { bg = '#000000' }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. - CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set. - Directory { fg = '#007CFF'}, -- Directory names (and other special names in listings) - DiffAdd { bg = '#005F00' }, -- Diff mode: Added line |diff.txt| - DiffChange { bg = '#00005F' }, -- Diff mode: Changed line |diff.txt| - DiffDelete { bg = '#5f0000' }, -- Diff mode: Deleted line |diff.txt| - DiffText { bg = '#5F00D7', bold = true }, -- Diff mode: Changed text within a changed line |diff.txt| - TermCursor { Cursor }, -- Cursor in a focused terminal - TermCursorNC {}, -- Cursor in an unfocused terminal - ErrorMsg { fg = '#D70000' }, -- Error messages on the command line - VertSplit { fg = '#4E4E4E' }, -- Column separating vertically split windows - Folded { fg = '#F0C674', bg = '#282A2E'}, -- Line used for closed folds - FoldColumn { fg = '#8ABEB7', bg = '#6C6C6C' }, -- 'foldcolumn' - SignColumn { FoldColumn }, -- Column where |signs| are displayed - LineNr { fg = '#a7a7a7' }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. - CursorLineNr { fg = '#FFD787' }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. - MatchParen { fg = '#FF875F' }, -- Character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| - ModeMsg { bold = true }, -- 'showmode' message (e.g., "-- INSERT -- ") - MsgArea {}, -- Area for messages and cmdline - MoreMsg { bold = true }, -- |more-prompt| - NonText { fg = '#87AFD7', bg = '#444444' }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. - EndOfBuffer { NonText }, -- Filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. - Normal { fg = "#ffffff" }, -- Normal text - NormalFloat { bg = "#111111" }, -- Normal text in floating windows. - NormalNC {}, -- normal text in non-current windows - Pmenu { bg = "#111111" }, -- Popup menu: Normal item. - PmenuSel { bg = "#000000" }, -- Popup menu: Selected item. - PmenuSbar { bg = "#000000" }, -- Popup menu: Scrollbar. - PmenuThumb { bg = "#ffffff" }, -- Popup menu: Thumb of the scrollbar. - Question { fg = '#87FFAF' }, -- |hit-enter| prompt and yes/no questions - IncSearch { reverse = true }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" - Search { fg = '#000000', bg = '#D7AF00' }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. - QuickFixLine { Search }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. - Substitute { Search }, -- |:substitute| replacement text highlighting - SpecialKey { fg = '#84D45F' }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| - SpellBad { underline = true }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. - SpellCap { SpellBad }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise. - SpellLocal { SpellBad }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. - SpellRare { SpellBad }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. - StatusLine { fg = '#FFFFFF', bg = '#444444' }, -- Status line of current window - StatusLineNC { fg = '#6D7073', bg = '#303030' }, -- Status lines of not-current windows. Note: If this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. - MsgSeparator { StatusLine }, -- Separator for scrolled messages, `msgsep` flag of 'display' - TabLine {}, -- Tab pages line, not active tab page label - TabLineFill {}, -- Tab pages line, where there are no labels - TabLineSel {}, -- Tab pages line, active tab page label - Title {}, -- Titles for output from ":set all", ":autocmd" etc. - Visual { bg = '#3A3A3A' }, -- Visual mode selection - VisualNOS {}, -- Visual mode selection when vim is "Not Owning the Selection". - WarningMsg { fg = '#FFD700' }, -- Warning messages - Whitespace { fg = '#4E4E4E' }, -- "nbsp", "space", "tab" and "trail" in 'listchars' - Winseparator { VertSplit }, -- Separator between window splits. Inherts from |hl-VertSplit| by default, which it will replace eventually. - WildMenu { fg = '#282A2E', bg = '#F0C674' }, -- Current match in 'wildmenu' completion + -- stylua: ignore + return { + ColorColumn { bg = '#5F0000' }, -- Columns set with 'colorcolumn' + Conceal {}, -- Placeholder characters substituted for concealed text (see 'conceallevel') + Cursor { reverse = true }, -- Character under the cursor + lCursor {}, -- Character under the cursor when |language-mapping| is used (see 'guicursor') + CursorIM {}, -- Like Cursor, but used when in IME mode |CursorIM| + CursorLine { bg = '#000000' }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. + CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set. + Directory { fg = '#007CFF'}, -- Directory names (and other special names in listings) + DiffAdd { bg = '#005F00' }, -- Diff mode: Added line |diff.txt| + DiffChange { bg = '#00005F' }, -- Diff mode: Changed line |diff.txt| + DiffDelete { bg = '#5f0000' }, -- Diff mode: Deleted line |diff.txt| + DiffText { bg = '#5F00D7', bold = true }, -- Diff mode: Changed text within a changed line |diff.txt| + TermCursor { Cursor }, -- Cursor in a focused terminal + TermCursorNC {}, -- Cursor in an unfocused terminal + ErrorMsg { fg = '#D70000' }, -- Error messages on the command line + VertSplit { fg = '#4E4E4E' }, -- Column separating vertically split windows + Folded { fg = '#F0C674', bg = '#282A2E'}, -- Line used for closed folds + FoldColumn { fg = '#8ABEB7', bg = '#6C6C6C' }, -- 'foldcolumn' + SignColumn { FoldColumn }, -- Column where |signs| are displayed + LineNr { fg = '#a7a7a7' }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. + CursorLineNr { fg = '#FFD787' }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. + MatchParen { fg = '#FF875F' }, -- Character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| + ModeMsg { bold = true }, -- 'showmode' message (e.g., "-- INSERT -- ") + MsgArea {}, -- Area for messages and cmdline + MoreMsg { bold = true }, -- |more-prompt| + NonText { fg = '#87AFD7', bg = '#444444' }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. + EndOfBuffer { NonText }, -- Filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. + Normal { fg = "#ffffff" }, -- Normal text + NormalFloat { bg = "#111111" }, -- Normal text in floating windows. + NormalNC {}, -- normal text in non-current windows + Pmenu { bg = "#111111" }, -- Popup menu: Normal item. + PmenuSel { bg = "#000000" }, -- Popup menu: Selected item. + PmenuSbar { bg = "#000000" }, -- Popup menu: Scrollbar. + PmenuThumb { bg = "#ffffff" }, -- Popup menu: Thumb of the scrollbar. + Question { fg = '#87FFAF' }, -- |hit-enter| prompt and yes/no questions + IncSearch { reverse = true }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" + Search { fg = '#000000', bg = '#D7AF00' }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. + QuickFixLine { Search }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. + Substitute { Search }, -- |:substitute| replacement text highlighting + SpecialKey { fg = '#84D45F' }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| + SpellBad { underline = true }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. + SpellCap { SpellBad }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise. + SpellLocal { SpellBad }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. + SpellRare { SpellBad }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. + StatusLine { fg = '#FFFFFF', bg = '#444444' }, -- Status line of current window + StatusLineNC { fg = '#6D7073', bg = '#303030' }, -- Status lines of not-current windows. Note: If this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + MsgSeparator { StatusLine }, -- Separator for scrolled messages, `msgsep` flag of 'display' + TabLine {}, -- Tab pages line, not active tab page label + TabLineFill {}, -- Tab pages line, where there are no labels + TabLineSel {}, -- Tab pages line, active tab page label + Title {}, -- Titles for output from ":set all", ":autocmd" etc. + Visual { bg = '#3A3A3A' }, -- Visual mode selection + VisualNOS {}, -- Visual mode selection when vim is "Not Owning the Selection". + WarningMsg { fg = '#FFD700' }, -- Warning messages + Whitespace { fg = '#4E4E4E' }, -- "nbsp", "space", "tab" and "trail" in 'listchars' + Winseparator { VertSplit }, -- Separator between window splits. Inherts from |hl-VertSplit| by default, which it will replace eventually. + WildMenu { fg = '#282A2E', bg = '#F0C674' }, -- Current match in 'wildmenu' completion - Comment { fg = '#AFAFAF' }, -- Any comment + Comment { fg = '#AFAFAF' }, -- Any comment - Constant { fg = '#AF87FF' }, -- (*) Any constant - String { fg = '#D7AF00' }, -- A string constant: "this is a string" - Character { Constant }, -- A character constant: 'c', '\n' - Number { fg = '#FF8700' }, -- A number constant: 234, 0xff - Boolean { Constant }, -- A boolean constant: TRUE, false - Float { Number }, -- A floating point constant: 2.3e10 + Constant { fg = '#AF87FF' }, -- (*) Any constant + String { fg = '#D7AF00' }, -- A string constant: "this is a string" + Character { Constant }, -- A character constant: 'c', '\n' + Number { fg = '#FF8700' }, -- A number constant: 234, 0xff + Boolean { Constant }, -- A boolean constant: TRUE, false + Float { Number }, -- A floating point constant: 2.3e10 - Identifier { Normal }, -- (*) Any variable name - Function { fg = '#00D7FF' }, -- Function name (also: methods for classes) + Identifier { Normal }, -- (*) Any variable name + Function { fg = '#00D7FF' }, -- Function name (also: methods for classes) - Statement { fg = '#5FD75F' }, -- (*) Any statement - Conditional { Statement }, -- if, then, else, endif, switch, etc. - Repeat { Statement }, -- for, do, while, etc. - Label { Statement }, -- case, default, etc. - Operator { Statement }, -- "sizeof", "+", "*", etc. - Keyword { Statement }, -- any other keyword - Exception { Statement }, -- try, catch, throw + Statement { fg = '#5FD75F' }, -- (*) Any statement + Conditional { Statement }, -- if, then, else, endif, switch, etc. + Repeat { Statement }, -- for, do, while, etc. + Label { Statement }, -- case, default, etc. + Operator { Statement }, -- "sizeof", "+", "*", etc. + Keyword { Statement }, -- any other keyword + Exception { Statement }, -- try, catch, throw - PreProc { Statement }, -- (*) Generic Preprocessor - Include { Statement }, -- Preprocessor #include - Define { Statement }, -- Preprocessor #define - Macro { Statement }, -- Same as Define - PreCondit { Statement }, -- Preprocessor #if, #else, #endif, etc. + PreProc { Statement }, -- (*) Generic Preprocessor + Include { Statement }, -- Preprocessor #include + Define { Statement }, -- Preprocessor #define + Macro { Statement }, -- Same as Define + PreCondit { Statement }, -- Preprocessor #if, #else, #endif, etc. - Type { fg = '#D7D700' }, -- (*) int, long, char, etc. - StorageClass { Type }, -- static, register, volatile, etc. - Structure { Type }, -- struct, union, enum, etc. - Typedef { Type }, -- A typedef + Type { fg = '#D7D700' }, -- (*) int, long, char, etc. + StorageClass { Type }, -- static, register, volatile, etc. + Structure { Type }, -- struct, union, enum, etc. + Typedef { Type }, -- A typedef - Special { fg = '#FFFFFF' }, -- (*) Any special symbol - SpecialChar { Special }, -- Special character in a constant - Tag { Special }, -- You can use CTRL-] on this - Delimiter { Special }, -- Character that needs attention - SpecialComment { Special }, -- Special things inside a comment (e.g. '\n') - Debug { Special }, -- Debugging statements + Special { fg = '#FFFFFF' }, -- (*) Any special symbol + SpecialChar { Special }, -- Special character in a constant + Tag { Special }, -- You can use CTRL-] on this + Delimiter { Special }, -- Character that needs attention + SpecialComment { Special }, -- Special things inside a comment (e.g. '\n') + Debug { Special }, -- Debugging statements - Underlined { gui = "underline" }, -- Text that stands out, HTML links - Ignore { fg = '#000000' }, -- Left blank, hidden |hl-Ignore| (NOTE: May be invisible here in template) - Error { fg = '#EEEEEE', bg = '#AF0000' }, -- Any erroneous construct - Todo { fg = '#D70000' }, -- Anything that needs extra attention; mostly the keywords TODO FIXME and XXX + Underlined { gui = "underline" }, -- Text that stands out, HTML links + Ignore { fg = '#000000' }, -- Left blank, hidden |hl-Ignore| (NOTE: May be invisible here in template) + Error { fg = '#EEEEEE', bg = '#AF0000' }, -- Any erroneous construct + Todo { fg = '#D70000' }, -- Anything that needs extra attention; mostly the keywords TODO FIXME and XXX - LspInlayHint { Comment }, - LspReferenceText {} , -- Used for highlighting "text" references - LspReferenceRead {} , -- Used for highlighting "read" references - LspReferenceWrite {} , -- Used for highlighting "write" references - LspCodeLens {} , -- Used to color the virtual text of the codelens. See |nvim_buf_set_extmark()|. - LspCodeLensSeparator {} , -- Used to color the seperator between two or more code lens. - LspSignatureActiveParameter { bold = true } , -- Used to highlight the active parameter in the signature help. See |vim.lsp.handlers.signature_help()|. + LspInlayHint { Comment }, + LspReferenceText {} , -- Used for highlighting "text" references + LspReferenceRead {} , -- Used for highlighting "read" references + LspReferenceWrite {} , -- Used for highlighting "write" references + LspCodeLens {} , -- Used to color the virtual text of the codelens. See |nvim_buf_set_extmark()|. + LspCodeLensSeparator {} , -- Used to color the seperator between two or more code lens. + LspSignatureActiveParameter { bold = true } , -- Used to highlight the active parameter in the signature help. See |vim.lsp.handlers.signature_help()|. - DiagnosticError {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticWarn {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticInfo {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticHint {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticVirtualTextError { fg = '#A54242' } , -- Used for "Error" diagnostic virtual text. - DiagnosticVirtualTextWarn { fg = '#DE935F' } , -- Used for "Warn" diagnostic virtual text. - DiagnosticVirtualTextInfo { fg = '#5F819D' } , -- Used for "Info" diagnostic virtual text. - DiagnosticVirtualTextHint { fg = '#777777' } , -- Used for "Hint" diagnostic virtual text. - DiagnosticUnderlineError { underline = true } , -- Used to underline "Error" diagnostics. - DiagnosticUnderlineWarn { underline = true } , -- Used to underline "Warn" diagnostics. - DiagnosticUnderlineInfo { underline = true } , -- Used to underline "Info" diagnostics. - DiagnosticUnderlineHint { underline = true } , -- Used to underline "Hint" diagnostics. - DiagnosticFloatingError { DiagnosticVirtualTextError } , -- Used to color "Error" diagnostic messages in diagnostics float. See |vim.diagnostic.open_float()| - DiagnosticFloatingWarn { DiagnosticVirtualTextWarn } , -- Used to color "Warn" diagnostic messages in diagnostics float. - DiagnosticFloatingInfo { DiagnosticVirtualTextInfo } , -- Used to color "Info" diagnostic messages in diagnostics float. - DiagnosticFloatingHint { DiagnosticVirtualTextHint } , -- Used to color "Hint" diagnostic messages in diagnostics float. - DiagnosticSignError { DiagnosticVirtualTextError } , -- Used for "Error" signs in sign column. - DiagnosticSignWarn { DiagnosticVirtualTextWarn } , -- Used for "Warn" signs in sign column. - DiagnosticSignInfo { DiagnosticVirtualTextInfo } , -- Used for "Info" signs in sign column. - DiagnosticSignHint { DiagnosticVirtualTextHint } , -- Used for "Hint" signs in sign column. + DiagnosticError {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticWarn {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticInfo {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticHint {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticVirtualTextError { fg = '#A54242' } , -- Used for "Error" diagnostic virtual text. + DiagnosticVirtualTextWarn { fg = '#DE935F' } , -- Used for "Warn" diagnostic virtual text. + DiagnosticVirtualTextInfo { fg = '#5F819D' } , -- Used for "Info" diagnostic virtual text. + DiagnosticVirtualTextHint { fg = '#777777' } , -- Used for "Hint" diagnostic virtual text. + DiagnosticUnderlineError { underline = true } , -- Used to underline "Error" diagnostics. + DiagnosticUnderlineWarn { underline = true } , -- Used to underline "Warn" diagnostics. + DiagnosticUnderlineInfo { underline = true } , -- Used to underline "Info" diagnostics. + DiagnosticUnderlineHint { underline = true } , -- Used to underline "Hint" diagnostics. + DiagnosticFloatingError { DiagnosticVirtualTextError } , -- Used to color "Error" diagnostic messages in diagnostics float. See |vim.diagnostic.open_float()| + DiagnosticFloatingWarn { DiagnosticVirtualTextWarn } , -- Used to color "Warn" diagnostic messages in diagnostics float. + DiagnosticFloatingInfo { DiagnosticVirtualTextInfo } , -- Used to color "Info" diagnostic messages in diagnostics float. + DiagnosticFloatingHint { DiagnosticVirtualTextHint } , -- Used to color "Hint" diagnostic messages in diagnostics float. + DiagnosticSignError { DiagnosticVirtualTextError } , -- Used for "Error" signs in sign column. + DiagnosticSignWarn { DiagnosticVirtualTextWarn } , -- Used for "Warn" signs in sign column. + DiagnosticSignInfo { DiagnosticVirtualTextInfo } , -- Used for "Info" signs in sign column. + DiagnosticSignHint { DiagnosticVirtualTextHint } , -- Used for "Hint" signs in sign column. - -- lewis6991/gitsigns.nvim - GitSignsAdd { bg = '#328e30', fg = '#FFFFFF' }, - GitSignsChange { bg = '#295493', fg = '#FFFFFF' }, - GitSignsDelete { bg = '#af3140', fg = '#FFFFFF' }, - GitSignsCurrentLineBlame { CursorLine, fg = '#81aeea' }, + -- lewis6991/gitsigns.nvim + GitSignsAdd { bg = '#328e30', fg = '#FFFFFF' }, + GitSignsChange { bg = '#295493', fg = '#FFFFFF' }, + GitSignsDelete { bg = '#af3140', fg = '#FFFFFF' }, + GitSignsCurrentLineBlame { CursorLine, fg = '#81aeea' }, - -- lukas-reineke/indent-blankline.nvim - IblIndent { fg = "#000000" }, + -- lukas-reineke/indent-blankline.nvim + IblIndent { fg = "#000000" }, - -- RRethy/vim-illuminate - IlluminatedWordText { bold = true }, - IlluminatedWordRead { IlluminatedWordText }, - IlluminatedWordWrite { IlluminatedWordText, underline = true }, + -- RRethy/vim-illuminate + IlluminatedWordText { bold = true }, + IlluminatedWordRead { IlluminatedWordText }, + IlluminatedWordWrite { IlluminatedWordText, underline = true }, - -- For :Lushify to work, the groups have to be spelled as `sym` called - -- on a string literal. + -- For :Lushify to work, the groups have to be spelled as `sym` called + -- on a string literal. - -- These match the default highlight groups from regex highlighting. - sym"@text.literal" { Comment }, - sym"@text.reference" { Identifier }, - sym"@text.title" { Title }, - sym"@text.uri" { Underlined }, - sym"@text.underline" { Underlined }, - sym"@text.todo" { Todo }, - sym"@comment" { Comment }, - sym"@punctuation" { Delimiter }, - sym"@constant" { Constant }, - sym"@constant.builtin" { Constant }, - sym"@constant.macro" { Define }, - sym"@define" { Define }, - sym"@macro" { Macro }, - sym"@string" { String }, - sym"@string.escape" { SpecialChar }, - sym"@string.special" { SpecialChar }, - sym"@character" { Character }, - sym"@character.special" { SpecialChar }, - sym"@number" { Number }, - sym"@boolean" { Boolean }, - sym"@float" { Float }, - sym"@function" { Function }, - sym"@function.builtin" { Function }, - sym"@function.macro" { Macro }, - sym"@parameter" { Identifier }, - sym"@method" { Function }, - sym"@field" { Identifier }, - sym"@property" { Identifier }, - sym"@constructor" { Special }, - sym"@conditional" { Conditional }, - sym"@repeat" { Repeat }, - sym"@label" { Label }, - sym"@operator" { Operator }, - sym"@keyword" { Keyword }, - sym"@exception" { Exception }, - sym"@variable" { Identifier }, - sym"@type" { Type }, - sym"@type.definition" { Typedef }, - sym"@storageclass" { StorageClass }, - sym"@structure" { Structure }, - sym"@namespace" { Identifier }, - sym"@include" { Include }, - sym"@preproc" { PreProc }, - sym"@debug" { Debug }, + -- These match the default highlight groups from regex highlighting. + sym"@text.literal" { Comment }, + sym"@text.reference" { Identifier }, + sym"@text.title" { Title }, + sym"@text.uri" { Underlined }, + sym"@text.underline" { Underlined }, + sym"@text.todo" { Todo }, + sym"@comment" { Comment }, + sym"@punctuation" { Delimiter }, + sym"@constant" { Constant }, + sym"@constant.builtin" { Constant }, + sym"@constant.macro" { Define }, + sym"@define" { Define }, + sym"@macro" { Macro }, + sym"@string" { String }, + sym"@string.escape" { SpecialChar }, + sym"@string.special" { SpecialChar }, + sym"@character" { Character }, + sym"@character.special" { SpecialChar }, + sym"@number" { Number }, + sym"@boolean" { Boolean }, + sym"@float" { Float }, + sym"@function" { Function }, + sym"@function.builtin" { Function }, + sym"@function.macro" { Macro }, + sym"@parameter" { Identifier }, + sym"@method" { Function }, + sym"@field" { Identifier }, + sym"@property" { Identifier }, + sym"@constructor" { Special }, + sym"@conditional" { Conditional }, + sym"@repeat" { Repeat }, + sym"@label" { Label }, + sym"@operator" { Operator }, + sym"@keyword" { Keyword }, + sym"@exception" { Exception }, + sym"@variable" { Identifier }, + sym"@type" { Type }, + sym"@type.definition" { Typedef }, + sym"@storageclass" { StorageClass }, + sym"@structure" { Structure }, + sym"@namespace" { Identifier }, + sym"@include" { Include }, + sym"@preproc" { PreProc }, + sym"@debug" { Debug }, - -- These differ from regex highlighting. Sometimes this is an override, - -- and sometimes the equivalent base highlight group doesn't exist. - sym"@tag" { Keyword }, - sym"@tag.attribute" { Type }, - } + -- These differ from regex highlighting. Sometimes this is an override, + -- and sometimes the equivalent base highlight group doesn't exist. + sym"@tag" { Keyword }, + sym"@tag.attribute" { Type }, + } end) return theme diff --git a/neovim/lua/jdkaplan/warm_theme.lua b/neovim/lua/jdkaplan/warm_theme.lua index 2ecf95a..645b6b9 100644 --- a/neovim/lua/jdkaplan/warm_theme.lua +++ b/neovim/lua/jdkaplan/warm_theme.lua @@ -1,210 +1,211 @@ -local lush = require('lush') +local lush = require("lush") local hsl = lush.hsl local theme = lush(function(injected_functions) - -- Required alias for treesitter groups. - -- https://github.com/rktjmp/lush.nvim/issues/109 - local sym = injected_functions.sym + -- Required alias for treesitter groups. + -- https://github.com/rktjmp/lush.nvim/issues/109 + local sym = injected_functions.sym - return { - ColorColumn { bg = '#5F0000' }, -- Columns set with 'colorcolumn' - Conceal {}, -- Placeholder characters substituted for concealed text (see 'conceallevel') - Cursor { reverse = true }, -- Character under the cursor - lCursor {}, -- Character under the cursor when |language-mapping| is used (see 'guicursor') - CursorIM {}, -- Like Cursor, but used when in IME mode |CursorIM| - CursorLine { bg = '#eeeeee' }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. - CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set. - Directory { fg = '#1B15FD' }, -- Directory names (and other special names in listings) - DiffAdd { bg = '#e5ffe5' }, -- Diff mode: Added line |diff.txt| - DiffChange { bg = '#d8e7ff' }, -- Diff mode: Changed line |diff.txt| - DiffDelete { bg = '#ffe5e8' }, -- Diff mode: Deleted line |diff.txt| - DiffText { bg = '#b2cfff', bold = true }, -- Diff mode: Changed text within a changed line |diff.txt| - TermCursor { Cursor }, -- Cursor in a focused terminal - TermCursorNC {}, -- Cursor in an unfocused terminal - ErrorMsg {}, -- Error messages on the command line - VertSplit { fg = '#C6C6C6' }, -- Column separating vertically split windows - Folded {}, -- Line used for closed folds - FoldColumn { fg = '#337ADA', bg = '#C6C6C6' }, -- 'foldcolumn' - SignColumn { fg = '#000000', bg = '#C6C6C6' }, -- Column where |signs| are displayed - LineNr { fg = '#a6a6a6' }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. - CursorLineNr { fg = '#1B15FD' }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. - MatchParen { fg = '#FF5F00' }, -- Character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| - ModeMsg { bold = true }, -- 'showmode' message (e.g., "-- INSERT -- ") - MsgArea {}, -- Area for messages and cmdline - MoreMsg { bold = true }, -- |more-prompt| - NonText { fg = '#8EB1D5', bg = '#eeeeee' }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. - EndOfBuffer { fg = '#dddddd', bg = "#f8f8f8" }, -- Filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. - Normal { fg = "#000000" }, -- Normal text - NormalFloat { bg = "#eeeeee" }, -- Normal text in floating windows. - NormalNC {}, -- normal text in non-current windows - Pmenu { bg = "#eeeeee" }, -- Popup menu: Normal item. - PmenuSel { bg = "#cccccc" }, -- Popup menu: Selected item. - PmenuSbar { bg = "#aaaaaa" }, -- Popup menu: Scrollbar. - PmenuThumb { bg = "#000000" }, -- Popup menu: Thumb of the scrollbar. - Question { fg = '#005F00' }, -- |hit-enter| prompt and yes/no questions - IncSearch { reverse = true }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" - Search { fg = '#000000', bg = '#D7AF00' }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. - QuickFixLine { Search }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. - Substitute { Search }, -- |:substitute| replacement text highlighting - SpecialKey { fg = '#84D45F' }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| - SpellBad { underline = true }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. - SpellCap { SpellBad }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise. - SpellLocal { SpellBad }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. - SpellRare { SpellBad }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. - StatusLine { fg = '#000000', bg = '#C6C6C6' }, -- Status line of current window - StatusLineNC { fg = '#808080', bg = '#C6C6C6' }, -- Status lines of not-current windows. Note: If this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. - MsgSeparator { StatusLine }, -- Separator for scrolled messages, `msgsep` flag of 'display' - TabLine {}, -- Tab pages line, not active tab page label - TabLineFill {}, -- Tab pages line, where there are no labels - TabLineSel {}, -- Tab pages line, active tab page label - Title {}, -- Titles for output from ":set all", ":autocmd" etc. - Visual { reverse = true }, -- Visual mode selection - VisualNOS {}, -- Visual mode selection when vim is "Not Owning the Selection". - WarningMsg { fg = '#FFD700' }, -- Warning messages - Whitespace { fg = '#808080' }, -- "nbsp", "space", "tab" and "trail" in 'listchars' - Winseparator { VertSplit }, -- Separator between window splits. Inherts from |hl-VertSplit| by default, which it will replace eventually. - WildMenu { fg = '#282A2E', bg = '#F0C674' }, -- Current match in 'wildmenu' completion + -- stylua: ignore + return { + ColorColumn { bg = '#5F0000' }, -- Columns set with 'colorcolumn' + Conceal {}, -- Placeholder characters substituted for concealed text (see 'conceallevel') + Cursor { reverse = true }, -- Character under the cursor + lCursor {}, -- Character under the cursor when |language-mapping| is used (see 'guicursor') + CursorIM {}, -- Like Cursor, but used when in IME mode |CursorIM| + CursorLine { bg = '#eeeeee' }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. + CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set. + Directory { fg = '#1B15FD' }, -- Directory names (and other special names in listings) + DiffAdd { bg = '#e5ffe5' }, -- Diff mode: Added line |diff.txt| + DiffChange { bg = '#d8e7ff' }, -- Diff mode: Changed line |diff.txt| + DiffDelete { bg = '#ffe5e8' }, -- Diff mode: Deleted line |diff.txt| + DiffText { bg = '#b2cfff', bold = true }, -- Diff mode: Changed text within a changed line |diff.txt| + TermCursor { Cursor }, -- Cursor in a focused terminal + TermCursorNC {}, -- Cursor in an unfocused terminal + ErrorMsg {}, -- Error messages on the command line + VertSplit { fg = '#C6C6C6' }, -- Column separating vertically split windows + Folded {}, -- Line used for closed folds + FoldColumn { fg = '#337ADA', bg = '#C6C6C6' }, -- 'foldcolumn' + SignColumn { fg = '#000000', bg = '#C6C6C6' }, -- Column where |signs| are displayed + LineNr { fg = '#a6a6a6' }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. + CursorLineNr { fg = '#1B15FD' }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. + MatchParen { fg = '#FF5F00' }, -- Character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| + ModeMsg { bold = true }, -- 'showmode' message (e.g., "-- INSERT -- ") + MsgArea {}, -- Area for messages and cmdline + MoreMsg { bold = true }, -- |more-prompt| + NonText { fg = '#8EB1D5', bg = '#eeeeee' }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. + EndOfBuffer { fg = '#dddddd', bg = "#f8f8f8" }, -- Filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. + Normal { fg = "#000000" }, -- Normal text + NormalFloat { bg = "#eeeeee" }, -- Normal text in floating windows. + NormalNC {}, -- normal text in non-current windows + Pmenu { bg = "#eeeeee" }, -- Popup menu: Normal item. + PmenuSel { bg = "#cccccc" }, -- Popup menu: Selected item. + PmenuSbar { bg = "#aaaaaa" }, -- Popup menu: Scrollbar. + PmenuThumb { bg = "#000000" }, -- Popup menu: Thumb of the scrollbar. + Question { fg = '#005F00' }, -- |hit-enter| prompt and yes/no questions + IncSearch { reverse = true }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" + Search { fg = '#000000', bg = '#D7AF00' }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. + QuickFixLine { Search }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. + Substitute { Search }, -- |:substitute| replacement text highlighting + SpecialKey { fg = '#84D45F' }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| + SpellBad { underline = true }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. + SpellCap { SpellBad }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise. + SpellLocal { SpellBad }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. + SpellRare { SpellBad }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. + StatusLine { fg = '#000000', bg = '#C6C6C6' }, -- Status line of current window + StatusLineNC { fg = '#808080', bg = '#C6C6C6' }, -- Status lines of not-current windows. Note: If this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + MsgSeparator { StatusLine }, -- Separator for scrolled messages, `msgsep` flag of 'display' + TabLine {}, -- Tab pages line, not active tab page label + TabLineFill {}, -- Tab pages line, where there are no labels + TabLineSel {}, -- Tab pages line, active tab page label + Title {}, -- Titles for output from ":set all", ":autocmd" etc. + Visual { reverse = true }, -- Visual mode selection + VisualNOS {}, -- Visual mode selection when vim is "Not Owning the Selection". + WarningMsg { fg = '#FFD700' }, -- Warning messages + Whitespace { fg = '#808080' }, -- "nbsp", "space", "tab" and "trail" in 'listchars' + Winseparator { VertSplit }, -- Separator between window splits. Inherts from |hl-VertSplit| by default, which it will replace eventually. + WildMenu { fg = '#282A2E', bg = '#F0C674' }, -- Current match in 'wildmenu' completion - Comment { fg = '#666666' }, -- Any comment + Comment { fg = '#666666' }, -- Any comment - Constant { fg = '#876FFF' }, -- (*) Any constant - String { fg = '#005F00' }, -- A string constant: "this is a string" - Character { Constant }, -- A character constant: 'c', '\n' - Number { fg = '#876FFF' }, -- A number constant: 234, 0xff - Boolean { Constant }, -- A boolean constant: TRUE, false - Float { Number }, -- A floating point constant: 2.3e10 + Constant { fg = '#876FFF' }, -- (*) Any constant + String { fg = '#005F00' }, -- A string constant: "this is a string" + Character { Constant }, -- A character constant: 'c', '\n' + Number { fg = '#876FFF' }, -- A number constant: 234, 0xff + Boolean { Constant }, -- A boolean constant: TRUE, false + Float { Number }, -- A floating point constant: 2.3e10 - Identifier { Normal }, -- (*) Any variable name - Function { fg = '#D75F00' }, -- Function name (also: methods for classes) + Identifier { Normal }, -- (*) Any variable name + Function { fg = '#D75F00' }, -- Function name (also: methods for classes) - Statement { fg = '#880000' }, -- (*) Any statement - Conditional { Statement }, -- if, then, else, endif, switch, etc. - Repeat { Statement }, -- for, do, while, etc. - Label { Statement }, -- case, default, etc. - Operator { Statement }, -- "sizeof", "+", "*", etc. - Keyword { Statement }, -- any other keyword - Exception { Statement }, -- try, catch, throw + Statement { fg = '#880000' }, -- (*) Any statement + Conditional { Statement }, -- if, then, else, endif, switch, etc. + Repeat { Statement }, -- for, do, while, etc. + Label { Statement }, -- case, default, etc. + Operator { Statement }, -- "sizeof", "+", "*", etc. + Keyword { Statement }, -- any other keyword + Exception { Statement }, -- try, catch, throw - PreProc { Statement }, -- (*) Generic Preprocessor - Include { Statement }, -- Preprocessor #include - Define { Statement }, -- Preprocessor #define - Macro { Statement }, -- Same as Define - PreCondit { Statement }, -- Preprocessor #if, #else, #endif, etc. + PreProc { Statement }, -- (*) Generic Preprocessor + Include { Statement }, -- Preprocessor #include + Define { Statement }, -- Preprocessor #define + Macro { Statement }, -- Same as Define + PreCondit { Statement }, -- Preprocessor #if, #else, #endif, etc. - Type { fg = '#8700D7' }, -- (*) int, long, char, etc. - StorageClass { Type }, -- static, register, volatile, etc. - Structure { Type }, -- struct, union, enum, etc. - Typedef { Type }, -- A typedef + Type { fg = '#8700D7' }, -- (*) int, long, char, etc. + StorageClass { Type }, -- static, register, volatile, etc. + Structure { Type }, -- struct, union, enum, etc. + Typedef { Type }, -- A typedef - Special { fg = '#000000' }, -- (*) Any special symbol - SpecialChar { Special }, -- Special character in a constant - Tag { Special }, -- You can use CTRL-] on this - Delimiter { Special }, -- Character that needs attention - SpecialComment { Special }, -- Special things inside a comment (e.g. '\n') - Debug { Special }, -- Debugging statements + Special { fg = '#000000' }, -- (*) Any special symbol + SpecialChar { Special }, -- Special character in a constant + Tag { Special }, -- You can use CTRL-] on this + Delimiter { Special }, -- Character that needs attention + SpecialComment { Special }, -- Special things inside a comment (e.g. '\n') + Debug { Special }, -- Debugging statements - Underlined { gui = "underline" }, -- Text that stands out, HTML links - Ignore { fg = '#E4E4E4' }, -- Left blank, hidden |hl-Ignore| (NOTE: May be invisible here in template) - Error { fg = '#000000', bg = '#FF5F00' }, -- Any erroneous construct - Todo { fg = '#FF0000' }, -- Anything that needs extra attention; mostly the keywords TODO FIXME and XXX + Underlined { gui = "underline" }, -- Text that stands out, HTML links + Ignore { fg = '#E4E4E4' }, -- Left blank, hidden |hl-Ignore| (NOTE: May be invisible here in template) + Error { fg = '#000000', bg = '#FF5F00' }, -- Any erroneous construct + Todo { fg = '#FF0000' }, -- Anything that needs extra attention; mostly the keywords TODO FIXME and XXX - LspInlayHint { Comment }, - LspReferenceText {} , -- Used for highlighting "text" references - LspReferenceRead {} , -- Used for highlighting "read" references - LspReferenceWrite {} , -- Used for highlighting "write" references - LspCodeLens {} , -- Used to color the virtual text of the codelens. See |nvim_buf_set_extmark()|. - LspCodeLensSeparator {} , -- Used to color the seperator between two or more code lens. - LspSignatureActiveParameter { bold = true } , -- Used to highlight the active parameter in the signature help. See |vim.lsp.handlers.signature_help()|. + LspInlayHint { Comment }, + LspReferenceText {} , -- Used for highlighting "text" references + LspReferenceRead {} , -- Used for highlighting "read" references + LspReferenceWrite {} , -- Used for highlighting "write" references + LspCodeLens {} , -- Used to color the virtual text of the codelens. See |nvim_buf_set_extmark()|. + LspCodeLensSeparator {} , -- Used to color the seperator between two or more code lens. + LspSignatureActiveParameter { bold = true } , -- Used to highlight the active parameter in the signature help. See |vim.lsp.handlers.signature_help()|. - DiagnosticError {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticWarn {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticInfo {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticHint {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) - DiagnosticVirtualTextError { fg = '#F32840'} , -- Used for "Error" diagnostic virtual text. - DiagnosticVirtualTextWarn { fg = '#F06D14'} , -- Used for "Warn" diagnostic virtual text. - DiagnosticVirtualTextInfo { fg = '#4E85DA'} , -- Used for "Info" diagnostic virtual text. - DiagnosticVirtualTextHint { fg = '#015F00'} , -- Used for "Hint" diagnostic virtual text. - DiagnosticUnderlineError { underline = true } , -- Used to underline "Error" diagnostics. - DiagnosticUnderlineWarn { underline = true } , -- Used to underline "Warn" diagnostics. - DiagnosticUnderlineInfo { underline = true } , -- Used to underline "Info" diagnostics. - DiagnosticUnderlineHint { underline = true } , -- Used to underline "Hint" diagnostics. - DiagnosticFloatingError { DiagnosticVirtualTextError } , -- Used to color "Error" diagnostic messages in diagnostics float. See |vim.diagnostic.open_float()| - DiagnosticFloatingWarn { DiagnosticVirtualTextWarn } , -- Used to color "Warn" diagnostic messages in diagnostics float. - DiagnosticFloatingInfo { DiagnosticVirtualTextInfo } , -- Used to color "Info" diagnostic messages in diagnostics float. - DiagnosticFloatingHint { DiagnosticVirtualTextHint } , -- Used to color "Hint" diagnostic messages in diagnostics float. - DiagnosticSignError { DiagnosticVirtualTextError } , -- Used for "Error" signs in sign column. - DiagnosticSignWarn { DiagnosticVirtualTextWarn } , -- Used for "Warn" signs in sign column. - DiagnosticSignInfo { DiagnosticVirtualTextInfo } , -- Used for "Info" signs in sign column. - DiagnosticSignHint { DiagnosticVirtualTextHint } , -- Used for "Hint" signs in sign column. + DiagnosticError {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticWarn {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticInfo {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticHint {} , -- Used as the base highlight group. Other Diagnostic highlights link to this by default (except Underline) + DiagnosticVirtualTextError { fg = '#F32840'} , -- Used for "Error" diagnostic virtual text. + DiagnosticVirtualTextWarn { fg = '#F06D14'} , -- Used for "Warn" diagnostic virtual text. + DiagnosticVirtualTextInfo { fg = '#4E85DA'} , -- Used for "Info" diagnostic virtual text. + DiagnosticVirtualTextHint { fg = '#015F00'} , -- Used for "Hint" diagnostic virtual text. + DiagnosticUnderlineError { underline = true } , -- Used to underline "Error" diagnostics. + DiagnosticUnderlineWarn { underline = true } , -- Used to underline "Warn" diagnostics. + DiagnosticUnderlineInfo { underline = true } , -- Used to underline "Info" diagnostics. + DiagnosticUnderlineHint { underline = true } , -- Used to underline "Hint" diagnostics. + DiagnosticFloatingError { DiagnosticVirtualTextError } , -- Used to color "Error" diagnostic messages in diagnostics float. See |vim.diagnostic.open_float()| + DiagnosticFloatingWarn { DiagnosticVirtualTextWarn } , -- Used to color "Warn" diagnostic messages in diagnostics float. + DiagnosticFloatingInfo { DiagnosticVirtualTextInfo } , -- Used to color "Info" diagnostic messages in diagnostics float. + DiagnosticFloatingHint { DiagnosticVirtualTextHint } , -- Used to color "Hint" diagnostic messages in diagnostics float. + DiagnosticSignError { DiagnosticVirtualTextError } , -- Used for "Error" signs in sign column. + DiagnosticSignWarn { DiagnosticVirtualTextWarn } , -- Used for "Warn" signs in sign column. + DiagnosticSignInfo { DiagnosticVirtualTextInfo } , -- Used for "Info" signs in sign column. + DiagnosticSignHint { DiagnosticVirtualTextHint } , -- Used for "Hint" signs in sign column. - -- lewis6991/gitsigns.nvim - GitSignsAdd { bg = '#90d68f', fg = '#FFFFFF' }, - GitSignsChange { bg = '#80abed', fg = '#FFFFFF' }, - GitSignsDelete { bg = '#f9acb5', fg = '#FFFFFF' }, - GitSignsCurrentLineBlame { CursorLine, fg = '#337ADA' }, + -- lewis6991/gitsigns.nvim + GitSignsAdd { bg = '#90d68f', fg = '#FFFFFF' }, + GitSignsChange { bg = '#80abed', fg = '#FFFFFF' }, + GitSignsDelete { bg = '#f9acb5', fg = '#FFFFFF' }, + GitSignsCurrentLineBlame { CursorLine, fg = '#337ADA' }, - -- lukas-reineke/indent-blankline.nvim - IblIndent { fg = "#eeeeee" }, + -- lukas-reineke/indent-blankline.nvim + IblIndent { fg = "#eeeeee" }, - -- RRethy/vim-illuminate - IlluminatedWordText { bold = true }, - IlluminatedWordRead { IlluminatedWordText }, - IlluminatedWordWrite { IlluminatedWordText, underline = true }, + -- RRethy/vim-illuminate + IlluminatedWordText { bold = true }, + IlluminatedWordRead { IlluminatedWordText }, + IlluminatedWordWrite { IlluminatedWordText, underline = true }, - -- For :Lushify to work, the groups have to be spelled as `sym` called - -- on a string literal. + -- For :Lushify to work, the groups have to be spelled as `sym` called + -- on a string literal. - -- These match the default highlight groups from regex highlighting. - sym"@text.literal" { Comment }, - sym"@text.reference" { Identifier }, - sym"@text.title" { Title }, - sym"@text.uri" { Underlined }, - sym"@text.underline" { Underlined }, - sym"@text.todo" { Todo }, - sym"@comment" { Comment }, - sym"@punctuation" { Delimiter }, - sym"@constant" { Constant }, - sym"@constant.builtin" { Constant }, - sym"@constant.macro" { Define }, - sym"@define" { Define }, - sym"@macro" { Macro }, - sym"@string" { String }, - sym"@string.escape" { SpecialChar }, - sym"@string.special" { SpecialChar }, - sym"@character" { Character }, - sym"@character.special" { SpecialChar }, - sym"@number" { Number }, - sym"@boolean" { Boolean }, - sym"@float" { Float }, - sym"@function" { Function }, - sym"@function.builtin" { Function }, - sym"@function.macro" { Macro }, - sym"@parameter" { Identifier }, - sym"@method" { Function }, - sym"@field" { Identifier }, - sym"@property" { Identifier }, - sym"@constructor" { Special }, - sym"@conditional" { Conditional }, - sym"@repeat" { Repeat }, - sym"@label" { Label }, - sym"@operator" { Operator }, - sym"@keyword" { Keyword }, - sym"@exception" { Exception }, - sym"@variable" { Identifier }, - sym"@type" { Type }, - sym"@type.definition" { Typedef }, - sym"@storageclass" { StorageClass }, - sym"@structure" { Structure }, - sym"@namespace" { Identifier }, - sym"@include" { Include }, - sym"@preproc" { PreProc }, - sym"@debug" { Debug }, + -- These match the default highlight groups from regex highlighting. + sym"@text.literal" { Comment }, + sym"@text.reference" { Identifier }, + sym"@text.title" { Title }, + sym"@text.uri" { Underlined }, + sym"@text.underline" { Underlined }, + sym"@text.todo" { Todo }, + sym"@comment" { Comment }, + sym"@punctuation" { Delimiter }, + sym"@constant" { Constant }, + sym"@constant.builtin" { Constant }, + sym"@constant.macro" { Define }, + sym"@define" { Define }, + sym"@macro" { Macro }, + sym"@string" { String }, + sym"@string.escape" { SpecialChar }, + sym"@string.special" { SpecialChar }, + sym"@character" { Character }, + sym"@character.special" { SpecialChar }, + sym"@number" { Number }, + sym"@boolean" { Boolean }, + sym"@float" { Float }, + sym"@function" { Function }, + sym"@function.builtin" { Function }, + sym"@function.macro" { Macro }, + sym"@parameter" { Identifier }, + sym"@method" { Function }, + sym"@field" { Identifier }, + sym"@property" { Identifier }, + sym"@constructor" { Special }, + sym"@conditional" { Conditional }, + sym"@repeat" { Repeat }, + sym"@label" { Label }, + sym"@operator" { Operator }, + sym"@keyword" { Keyword }, + sym"@exception" { Exception }, + sym"@variable" { Identifier }, + sym"@type" { Type }, + sym"@type.definition" { Typedef }, + sym"@storageclass" { StorageClass }, + sym"@structure" { Structure }, + sym"@namespace" { Identifier }, + sym"@include" { Include }, + sym"@preproc" { PreProc }, + sym"@debug" { Debug }, - -- These differ from regex highlighting. Sometimes this is an override, - -- and sometimes the equivalent base highlight group doesn't exist. - sym"@tag" { Keyword }, - sym"@tag.attribute" { Type }, - } + -- These differ from regex highlighting. Sometimes this is an override, + -- and sometimes the equivalent base highlight group doesn't exist. + sym"@tag" { Keyword }, + sym"@tag.attribute" { Type }, + } end) return theme diff --git a/neovim/lua/plugins/etc.lua b/neovim/lua/plugins/etc.lua index f5d3630..b7870b9 100644 --- a/neovim/lua/plugins/etc.lua +++ b/neovim/lua/plugins/etc.lua @@ -1,165 +1,165 @@ return { - -- Theme - 'rktjmp/lush.nvim', + -- Theme + "rktjmp/lush.nvim", - -- tpope extended universe - "tpope/vim-abolish", - "tpope/vim-commentary", - "tpope/vim-endwise", - "tpope/vim-repeat", - { "kylechui/nvim-surround", config = true }, - { - "tpope/vim-fugitive", - lazy = false, - keys = { - { "G", ":Git", mode = "n" }, - }, + -- tpope extended universe + "tpope/vim-abolish", + "tpope/vim-commentary", + "tpope/vim-endwise", + "tpope/vim-repeat", + { "kylechui/nvim-surround", config = true }, + { + "tpope/vim-fugitive", + lazy = false, + keys = { + { "G", ":Git", mode = "n" }, }, - { - "tummetott/unimpaired.nvim", - opts = { - keymaps = { - -- Tags - tprevious = false, - tnext = false, - tfirst = false, - tlast = false, - ptprevious = false, - ptnext = false, + }, + { + "tummetott/unimpaired.nvim", + opts = { + keymaps = { + -- Tags + tprevious = false, + tnext = false, + tfirst = false, + tlast = false, + ptprevious = false, + ptnext = false, - -- Files - previous_file = false, - next_file = false, + -- Files + previous_file = false, + next_file = false, - -- Settings - enable_cursorline = false, - disable_cursorline = false, - toggle_cursorline = false, - enable_diff = false, - disable_diff = false, - toggle_diff = false, - enable_hlsearch = false, - disable_hlsearch = false, - toggle_hlsearch = false, - enable_ignorecase = false, - disable_ignorecase = false, - toggle_ignorecase = false, - enable_list = false, - disable_list = false, - toggle_list = false, - enable_number = false, - disable_number = false, - toggle_number = false, - enable_relativenumber = false, - disable_relativenumber = false, - toggle_relativenumber = false, - enable_spell = false, - disable_spell = false, - toggle_spell = false, - enable_background = false, - disable_background = false, - toggle_background = false, - enable_colorcolumn = false, - disable_colorcolumn = false, - toggle_colorcolumn = false, - enable_cursorcolumn = false, - disable_cursorcolumn = false, - toggle_cursorcolumn = false, - enable_virtualedit = false, - disable_virtualedit = false, - toggle_virtualedit = false, - enable_wrap = false, - disable_wrap = false, - toggle_wrap = false, - enable_cursorcross = false, - disable_cursorcross = false, - toggle_cursorcross = false, - } - } + -- Settings + enable_cursorline = false, + disable_cursorline = false, + toggle_cursorline = false, + enable_diff = false, + disable_diff = false, + toggle_diff = false, + enable_hlsearch = false, + disable_hlsearch = false, + toggle_hlsearch = false, + enable_ignorecase = false, + disable_ignorecase = false, + toggle_ignorecase = false, + enable_list = false, + disable_list = false, + toggle_list = false, + enable_number = false, + disable_number = false, + toggle_number = false, + enable_relativenumber = false, + disable_relativenumber = false, + toggle_relativenumber = false, + enable_spell = false, + disable_spell = false, + toggle_spell = false, + enable_background = false, + disable_background = false, + toggle_background = false, + enable_colorcolumn = false, + disable_colorcolumn = false, + toggle_colorcolumn = false, + enable_cursorcolumn = false, + disable_cursorcolumn = false, + toggle_cursorcolumn = false, + enable_virtualedit = false, + disable_virtualedit = false, + toggle_virtualedit = false, + enable_wrap = false, + disable_wrap = false, + toggle_wrap = false, + enable_cursorcross = false, + disable_cursorcross = false, + toggle_cursorcross = false, + }, }, + }, - -- etc. - "MarcWeber/vim-addon-local-vimrc", - "qpkorr/vim-bufkill", - { - "almo7aya/openingh.nvim", - url = "https://github.com/jdkaplan/openingh.nvim", - keys = { - { "gh", "V:OpenInGHFile", mode = {"n"} }, - { "gh", ":OpenInGHFile", mode = {"v"} }, - }, + -- etc. + "MarcWeber/vim-addon-local-vimrc", + "qpkorr/vim-bufkill", + { + "almo7aya/openingh.nvim", + url = "https://github.com/jdkaplan/openingh.nvim", + keys = { + { "gh", "V:OpenInGHFile", mode = { "n" } }, + { "gh", ":OpenInGHFile", mode = { "v" } }, }, - { - "junegunn/vim-easy-align", - keys = { - { "ga", "(EasyAlign)", mode = "x" }, - { "ga", "(EasyAlign)", mode = "n" }, - }, + }, + { + "junegunn/vim-easy-align", + keys = { + { "ga", "(EasyAlign)", mode = "x" }, + { "ga", "(EasyAlign)", mode = "n" }, }, - { - "ntpeters/vim-better-whitespace", - init = function() - vim.g.better_whitespace_enabled = 1 - vim.g.better_whitespace_filetypes_blacklist = { 'diff', 'zig' } - vim.g.strip_whitespace_on_save = 1 - vim.g.strip_whitespace_confirm = 0 - vim.g.better_whitespace_operator = '' + }, + { + "ntpeters/vim-better-whitespace", + init = function() + vim.g.better_whitespace_enabled = 1 + vim.g.better_whitespace_filetypes_blacklist = { "diff", "zig" } + vim.g.strip_whitespace_on_save = 1 + vim.g.strip_whitespace_confirm = 0 + vim.g.better_whitespace_operator = "" + end, + }, + { + "windwp/nvim-autopairs", + opts = { + map_cr = true, + enable_moveright = true, + enable_check_bracket_line = false, + check_ts = true, + }, + }, + + { + "folke/which-key.nvim", + event = "VeryLazy", + opts = { + preset = "helix", + keys = { + Up = " ", + Down = " ", + Left = " ", + Right = " ", + C = "^", + M = "M-", + D = "W-", + S = "S-", + CR = "CR", + Esc = "Esc", + ScrollWheelDown = "⤓", + ScrollWheelUp = "⤒", + NL = "⏎", + BS = "⇐", + Space = "Space", + Tab = "Tab", + F1 = "F1", + F2 = "F2", + F3 = "F3", + F4 = "F4", + F5 = "F5", + F6 = "F6", + F7 = "F7", + F8 = "F8", + F9 = "F9", + F10 = "F10", + F11 = "F11", + F12 = "F12", + }, + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) end, + desc = "Buffer Local Keymaps (which-key)", + }, }, - { - "windwp/nvim-autopairs", - opts = { - map_cr = true, - enable_moveright = true, - enable_check_bracket_line = false, - check_ts = true, - }, - }, - - { - "folke/which-key.nvim", - event = "VeryLazy", - opts = { - preset = "helix", - keys = { - Up = " ", - Down = " ", - Left = " ", - Right = " ", - C = "^", - M = "M-", - D = "W-", - S = "S-", - CR = "CR", - Esc = "Esc", - ScrollWheelDown = "⤓", - ScrollWheelUp = "⤒", - NL = "⏎", - BS = "⇐", - Space = "Space", - Tab = "Tab", - F1 = "F1", - F2 = "F2", - F3 = "F3", - F4 = "F4", - F5 = "F5", - F6 = "F6", - F7 = "F7", - F8 = "F8", - F9 = "F9", - F10 = "F10", - F11 = "F11", - F12 = "F12", - }, - }, - keys = { - { - "?", - function() - require("which-key").show({ global = false }) - end, - desc = "Buffer Local Keymaps (which-key)", - }, - }, - } + }, } diff --git a/neovim/lua/plugins/ide.lua b/neovim/lua/plugins/ide.lua index afafd11..ed5d675 100644 --- a/neovim/lua/plugins/ide.lua +++ b/neovim/lua/plugins/ide.lua @@ -1,524 +1,587 @@ vim.lsp.inlay_hint.enable(true) -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('jdkaplan.lsp', {}), - callback = function(args) - local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("jdkaplan.lsp", {}), + callback = function(args) + local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) - if client:supports_method('textDocument/completion') then - vim.lsp.completion.enable(true, client.id, args.buf, {autotrigger = false}) - end + if client:supports_method("textDocument/completion") then + vim.lsp.completion.enable(true, client.id, args.buf, { autotrigger = false }) + end - -- Usually not needed if server supports "textDocument/willSaveWaitUntil". - already_waits = client:supports_method('textDocument/willSaveWaitUntil') - can_fmt = client:supports_method('textDocument/formatting') - if not already_waits and can_fmt then - vim.api.nvim_create_autocmd('BufWritePre', { - group = vim.api.nvim_create_augroup('jdkaplan.lsp', {clear=false}), - buffer = args.buf, - callback = function() - vim.lsp.buf.format({ bufnr = args.buf, id = client.id, timeout_ms = 1000 }) - end, - }) - end - end, + -- Usually not needed if server supports "textDocument/willSaveWaitUntil". + already_waits = client:supports_method("textDocument/willSaveWaitUntil") + can_fmt = client:supports_method("textDocument/formatting") + if not already_waits and can_fmt then + vim.api.nvim_create_autocmd("BufWritePre", { + group = vim.api.nvim_create_augroup("jdkaplan.lsp", { clear = false }), + buffer = args.buf, + callback = function() + vim.lsp.buf.format({ bufnr = args.buf, id = client.id, timeout_ms = 1000 }) + end, + }) + end + end, }) return { - -- HUD - { - "preservim/nerdtree", - keys = { - { "t", ":NERDTreeToggle" }, - { "a", ":NERDTreeFind" }, - }, + -- HUD + { + "preservim/nerdtree", + keys = { + { "t", ":NERDTreeToggle" }, + { "a", ":NERDTreeFind" }, }, - { - "stevearc/aerial.nvim", - dependencies = { - "nvim-treesitter/nvim-treesitter", - }, - keys = { - { "m", "AerialToggle" }, - { "n", "AerialNavToggle" }, - }, - config = true, + }, + { + "stevearc/aerial.nvim", + dependencies = { + "nvim-treesitter/nvim-treesitter", }, - { - "wellle/context.vim", - lazy = false, - init = function() - vim.g.context_enabled = 0 - vim.keymap.set("", "cc", ":ContextToggleWindow", { silent = true }) - vim.keymap.set("", "cp", ":ContextPeek", { silent = true }) + keys = { + { "m", "AerialToggle" }, + { "n", "AerialNavToggle" }, + }, + config = true, + }, + { + "wellle/context.vim", + lazy = false, + init = function() + vim.g.context_enabled = 0 + vim.keymap.set("", "cc", ":ContextToggleWindow", { silent = true }) + vim.keymap.set("", "cp", ":ContextPeek", { silent = true }) + end, + }, + { + "lewis6991/gitsigns.nvim", + commit = "220446c8c86a280180d852efac60991eaf1a21d4", + lazy = false, + init = function() + local gitsigns = require("gitsigns") + + local toggle = function(value) + -- BUG: (?) If the blame delay is not zero, the setting can + -- enter a race with cursor movement and leave a ghost blame in + -- the buffer. + + show = not show + gitsigns.toggle_current_line_blame(show) + gitsigns.toggle_deleted(show) + gitsigns.toggle_signs(show) + end + + vim.keymap.set("n", "gg", toggle) + vim.keymap.set("n", "[h", gitsigns.prev_hunk) + vim.keymap.set("n", "]h", gitsigns.next_hunk) + end, + opts = { + signcolumn = false, + show_deleted = false, + current_line_blame = false, + current_line_blame_formatter = " ", + current_line_blame_opts = { + virt_text = true, + virt_text_pos = "eol", + delay = 0, + ignore_whitespace = false, + }, + }, + }, + { + "RRethy/vim-illuminate", + init = function() + local illuminate = require("illuminate") + illuminate.configure({ + delay = 500, + }) + end, + keys = { + { + "ii", + function() + require("illuminate").toggle_buf() end, + }, + { + "in", + function() + require("illuminate").goto_next_reference() + end, + }, + { + "ip", + function() + require("illuminate").goto_prev_reference() + end, + }, + { + "if", + function() + require("illuminate").toggle_freeze_buf() + end, + }, }, - { - "lewis6991/gitsigns.nvim", - commit = "220446c8c86a280180d852efac60991eaf1a21d4", - lazy = false, - init = function() - local gitsigns = require("gitsigns") + }, + { + "lukas-reineke/indent-blankline.nvim", + main = "ibl", + opts = { + indent = { + char = "┊", + }, + scope = { enabled = false }, + }, + }, + { + "andythigpen/nvim-coverage", + requires = { "nvim-lua/plenary.nvim" }, + version = "*", + config = function() + require("coverage").setup({ + auto_reload = true, + signs = { + covered = { text = "▎" }, + partial = { text = "▌" }, + uncovered = { text = "█" }, + }, + }) + end, + }, + { + "pmouraguedes/sql-ghosty.nvim", + dependencies = { "nvim-treesitter/nvim-treesitter" }, + opts = {}, + }, + { + "jfryy/keytrail.nvim", + url = "https://github.com/jdkaplan/keytrail.nvim", + dependencies = { "nvim-treesitter/nvim-treesitter" }, + opts = { + key_mapping = "j", + }, + }, - local toggle = function(value) - -- BUG: (?) If the blame delay is not zero, the setting can - -- enter a race with cursor movement and leave a ghost blame in - -- the buffer. + -- Treesitter + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + init = function() + require("nvim-treesitter.configs").setup({ + highlight = { enable = true }, + incremental_selection = { enable = true }, - show = not show - gitsigns.toggle_current_line_blame(show) - gitsigns.toggle_deleted(show) - gitsigns.toggle_signs(show) + textobjects = { + enable = true, + select = { + enable = true, + lookahead = true, + include_surrounding_whitespace = false, + -- https://github.com/nvim-treesitter/nvim-treesitter-textobjects#overriding-or-extending-textobjects + keymaps = { + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["ac"] = "@comment.outer", + ["ic"] = "@comment.outer", + }, + }, + move = { + enable = true, + set_jumps = true, + goto_next_start = { + ["]m"] = "@function.outer", + ["]{"] = "@block.outer", + }, + goto_next_end = { + ["]M"] = "@function.outer", + ["]}"] = "@block.outer", + }, + goto_previous_start = { + ["[m"] = "@function.outer", + ["[{"] = "@block.outer", + }, + goto_previous_end = { + ["[M"] = "@function.outer", + ["[}"] = "@block.outer", + }, + }, + }, + + ensure_installed = { + "bash", + "css", + "dot", + "diff", + "git_config", + "git_rebase", + "gitattributes", + "gitcommit", + "gitignore", + "go", + "gomod", + "gosum", + "gowork", + "html", + "javascript", + "jq", + "json", + "lua", + "markdown", + "markdown_inline", + "proto", + "python", + "ruby", + "rust", + "scss", + "sql", + "toml", + "tsx", + "typescript", + "yaml", + }, + }) + end, + }, + { + "nvim-treesitter/nvim-treesitter-textobjects", + dependencies = { + "nvim-treesitter/nvim-treesitter", + }, + }, + { + "windwp/nvim-ts-autotag", + opts = { + autotag = { + enabled = true, + enable_close_on_slash = false, + }, + }, + }, + + -- Telescope + { + "nvim-telescope/telescope.nvim", + version = "^0.1.0", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-telescope/telescope-fzf-native.nvim", + "nvim-telescope/telescope-ui-select.nvim", + "MunifTanjim/nui.nvim", + "stevearc/aerial.nvim", + "nvim-telescope/telescope-symbols.nvim", + }, + init = function() + local telescope = require("telescope") + telescope.load_extension("fzf") + telescope.load_extension("aerial") + telescope.load_extension("ui-select") + + local builtin = require("telescope.builtin") + + local function find_files(opts) + opts = opts or {} + opts["hidden"] = true + return builtin.find_files(opts) + end + + vim.keymap.set("n", "f", find_files) + vim.keymap.set("n", "g", builtin.live_grep) + vim.keymap.set("n", "b", builtin.buffers) + vim.keymap.set("n", "*", builtin.grep_string) + vim.keymap.set("n", "o", telescope.extensions.aerial.aerial) + vim.keymap.set("n", "t", builtin.builtin) + + -- TODO: Delete these ; fake-leader bindings + vim.keymap.set("n", ";f", find_files) + vim.keymap.set("n", ";g", builtin.live_grep) + vim.keymap.set("n", ";b", builtin.buffers) + vim.keymap.set("n", ";*", builtin.grep_string) + + vim.keymap.set("i", "", builtin.symbols) + end, + opts = function(_plugin, _config) + local actions = require("telescope.actions") + local action_state = require("telescope.actions.state") + local transform_mod = require("telescope.actions.mt").transform_mod + + -- https://github.com/nvim-telescope/telescope.nvim/issues/1048#issuecomment-1225975038 + local function multiopen(prompt_bufnr, method) + local method = method or "default" + + local edit_file_cmd_map = { + vertical = "vsplit", + horizontal = "split", + tab = "tabedit", + default = "edit", + } + local edit_buf_cmd_map = { + vertical = "vert sbuffer", + horizontal = "sbuffer", + tab = "tab sbuffer", + default = "buffer", + } + + local picker = action_state.get_current_picker(prompt_bufnr) + local multi_selection = picker:get_multi_selection() + + if #multi_selection > 1 then + require("telescope.pickers").on_close_prompt(prompt_bufnr) + pcall(vim.api.nvim_set_current_win, picker.original_win_id) + + for i, entry in ipairs(multi_selection) do + local filename, row, col + + if entry.path or entry.filename then + filename = entry.path or entry.filename + + row = entry.row or entry.lnum + col = vim.F.if_nil(entry.col, 1) + elseif not entry.bufnr then + local value = entry.value + if not value then + goto continue + end + + if type(value) == "table" then + value = entry.display + end + + local sections = vim.split(value, ":") + + filename = sections[1] + row = tonumber(sections[2]) + col = tonumber(sections[3]) end - vim.keymap.set("n", "gg", toggle) - vim.keymap.set("n", "[h", gitsigns.prev_hunk) - vim.keymap.set("n", "]h", gitsigns.next_hunk) - end, - opts = { - signcolumn = false, - show_deleted = false, - current_line_blame = false, - current_line_blame_formatter = ' ', - current_line_blame_opts = { - virt_text = true, - virt_text_pos = 'eol', - delay = 0, - ignore_whitespace = false, - }, - }, - }, - { - "RRethy/vim-illuminate", - init = function() - local illuminate = require('illuminate') - illuminate.configure({ - delay = 500, - }) - end, - keys = { - { "ii", function() require('illuminate').toggle_buf() end }, - { "in", function() require('illuminate').goto_next_reference() end }, - { "ip", function() require('illuminate').goto_prev_reference() end }, - { "if", function() require('illuminate').toggle_freeze_buf() end }, - }, - }, - { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", - opts = { - indent = { - char = '┊', - }, - scope = { enabled = false }, - }, - }, - { - "andythigpen/nvim-coverage", - requires = { "nvim-lua/plenary.nvim" }, - version = "*", - config = function() - require("coverage").setup({ - auto_reload = true, - signs = { - covered = { text="▎" }, - partial = { text="▌" }, - uncovered = { text="█" }, - }, - }) - end, - }, - { - "pmouraguedes/sql-ghosty.nvim", - dependencies = { "nvim-treesitter/nvim-treesitter" }, - opts = {}, - }, - { - "jfryy/keytrail.nvim", - url = "https://github.com/jdkaplan/keytrail.nvim", - dependencies = { "nvim-treesitter/nvim-treesitter" }, - opts = { - key_mapping = 'j', - }, - }, + local entry_bufnr = entry.bufnr - -- Treesitter - { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - init = function() - require('nvim-treesitter.configs').setup({ - highlight = { enable = true }, - incremental_selection = { enable = true }, - - textobjects = { - enable = true, - select = { - enable = true, - lookahead = true, - include_surrounding_whitespace = false, - -- https://github.com/nvim-treesitter/nvim-treesitter-textobjects#overriding-or-extending-textobjects - keymaps = { - ["af"] = "@function.outer", - ["if"] = "@function.inner", - ["ac"] = "@comment.outer", - ["ic"] = "@comment.outer", - }, - }, - move = { - enable = true, - set_jumps = true, - goto_next_start = { - ["]m"] = "@function.outer", - ["]{"] = "@block.outer", - }, - goto_next_end = { - ["]M"] = "@function.outer", - ["]}"] = "@block.outer", - }, - goto_previous_start = { - ["[m"] = "@function.outer", - ["[{"] = "@block.outer", - }, - goto_previous_end = { - ["[M"] = "@function.outer", - ["[}"] = "@block.outer", - }, - }, - }, - - ensure_installed = { - "bash", - "css", - "dot", - "diff", - "git_config", - "git_rebase", - "gitattributes", - "gitcommit", - "gitignore", - "go", - "gomod", - "gosum", - "gowork", - "html", - "javascript", - "jq", - "json", - "lua", - "markdown", - "markdown_inline", - "proto", - "python", - "ruby", - "rust", - "scss", - "sql", - "toml", - "tsx", - "typescript", - "yaml", - }, - }) - end, - }, - { - "nvim-treesitter/nvim-treesitter-textobjects", - dependencies = { - "nvim-treesitter/nvim-treesitter", - }, - }, - { - "windwp/nvim-ts-autotag", - opts = { - autotag = { - enabled = true, - enable_close_on_slash = false, - }, - }, - }, - - -- Telescope - { - "nvim-telescope/telescope.nvim", - version = '^0.1.0', - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-telescope/telescope-fzf-native.nvim", - "nvim-telescope/telescope-ui-select.nvim", - "MunifTanjim/nui.nvim", - "stevearc/aerial.nvim", - "nvim-telescope/telescope-symbols.nvim", - }, - init = function() - local telescope = require('telescope') - telescope.load_extension('fzf') - telescope.load_extension('aerial') - telescope.load_extension('ui-select') - - local builtin = require('telescope.builtin') - - local function find_files(opts) - opts = opts or {} - opts['hidden'] = true - return builtin.find_files(opts) + if entry_bufnr then + if not vim.api.nvim_buf_get_option(entry_bufnr, "buflisted") then + vim.api.nvim_buf_set_option(entry_bufnr, "buflisted", true) + end + local command = i == 1 and "buffer" or edit_buf_cmd_map[method] + pcall(vim.cmd, string.format("%s %s", command, vim.api.nvim_buf_get_name(entry_bufnr))) + else + local command = i == 1 and "edit" or edit_file_cmd_map[method] + if vim.api.nvim_buf_get_name(0) ~= filename or command ~= "edit" then + filename = require("plenary.path"):new(vim.fn.fnameescape(filename)):normalize(vim.loop.cwd()) + pcall(vim.cmd, string.format("%s %s", command, filename)) + end end - vim.keymap.set('n', 'f', find_files) - vim.keymap.set('n', 'g', builtin.live_grep) - vim.keymap.set('n', 'b', builtin.buffers) - vim.keymap.set('n', '*', builtin.grep_string) - vim.keymap.set('n', 'o', telescope.extensions.aerial.aerial) - vim.keymap.set('n', 't', builtin.builtin) - - -- TODO: Delete these ; fake-leader bindings - vim.keymap.set('n', ';f', find_files) - vim.keymap.set('n', ';g', builtin.live_grep) - vim.keymap.set('n', ';b', builtin.buffers) - vim.keymap.set('n', ';*', builtin.grep_string) - - vim.keymap.set('i', '', builtin.symbols) - end, - opts = function(_plugin, _config) - local actions = require("telescope.actions") - local action_state = require("telescope.actions.state") - local transform_mod = require("telescope.actions.mt").transform_mod - - -- https://github.com/nvim-telescope/telescope.nvim/issues/1048#issuecomment-1225975038 - local function multiopen(prompt_bufnr, method) - local method = method or "default" - - local edit_file_cmd_map = { - vertical = "vsplit", - horizontal = "split", - tab = "tabedit", - default = "edit", - } - local edit_buf_cmd_map = { - vertical = "vert sbuffer", - horizontal = "sbuffer", - tab = "tab sbuffer", - default = "buffer", - } - - local picker = action_state.get_current_picker(prompt_bufnr) - local multi_selection = picker:get_multi_selection() - - if #multi_selection > 1 then - require("telescope.pickers").on_close_prompt(prompt_bufnr) - pcall(vim.api.nvim_set_current_win, picker.original_win_id) - - for i, entry in ipairs(multi_selection) do - local filename, row, col - - if entry.path or entry.filename then - filename = entry.path or entry.filename - - row = entry.row or entry.lnum - col = vim.F.if_nil(entry.col, 1) - elseif not entry.bufnr then - local value = entry.value - if not value then - goto continue - end - - if type(value) == "table" then - value = entry.display - end - - local sections = vim.split(value, ":") - - filename = sections[1] - row = tonumber(sections[2]) - col = tonumber(sections[3]) - end - - local entry_bufnr = entry.bufnr - - if entry_bufnr then - if not vim.api.nvim_buf_get_option(entry_bufnr, "buflisted") then - vim.api.nvim_buf_set_option(entry_bufnr, "buflisted", true) - end - local command = i == 1 and "buffer" or edit_buf_cmd_map[method] - pcall(vim.cmd, string.format("%s %s", command, vim.api.nvim_buf_get_name(entry_bufnr))) - else - local command = i == 1 and "edit" or edit_file_cmd_map[method] - if vim.api.nvim_buf_get_name(0) ~= filename or command ~= "edit" then - filename = require("plenary.path"):new(vim.fn.fnameescape(filename)):normalize(vim.loop.cwd()) - pcall(vim.cmd, string.format("%s %s", command, filename)) - end - end - - if row and col then - pcall(vim.api.nvim_win_set_cursor, 0, { row, col-1 }) - end - - ::continue:: - end - else - actions["select_" .. method](prompt_bufnr) - end + if row and col then + pcall(vim.api.nvim_win_set_cursor, 0, { row, col - 1 }) end - return { - defaults = { - mappings = { - i = { - [""] = multiopen, - }, - n = { - [""] = multiopen, - }, - }, - vimgrep_arguments = { - "rg", - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - "--smart-case", - -- Include hidden files, but continue ignoring the .git directory itself. - "--hidden", - "--iglob", "!.git", - }, - }, - pickers = {}, - extensions = { - aerial = {}, - }, - } - end, - }, - { - "nvim-telescope/telescope-fzf-native.nvim", - build = "make", - }, + ::continue:: + end + else + actions["select_" .. method](prompt_bufnr) + end + end - -- LSP - { - "nvimtools/none-ls.nvim", - config = function(_plugin, opts) - local null_ls = require("null-ls") - - local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false }) - - local prettier_filetypes = {} - for k, v in ipairs(null_ls.builtins.formatting.prettier.filetypes) do - prettier_filetypes[k] = v - end - table.insert(prettier_filetypes, "htmldjango") -- Jinja templates - - null_ls.setup({ - sources = { - null_ls.builtins.formatting.prettier.with({ - filetypes = prettier_filetypes, - }), - }, - }) - end, - }, - { - "mrcjkb/rustaceanvim", - version = '^6', - lazy = false, - }, - { - "mason-org/mason-lspconfig.nvim", - opts = {}, - dependencies = { - "neovim/nvim-lspconfig", - { - "mason-org/mason.nvim", - opts = { - PATH = "append", - }, + return { + defaults = { + mappings = { + i = { + [""] = multiopen, }, + n = { + [""] = multiopen, + }, + }, + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--smart-case", + -- Include hidden files, but continue ignoring the .git directory itself. + "--hidden", + "--iglob", + "!.git", + }, }, + pickers = {}, + extensions = { + aerial = {}, + }, + } + end, + }, + { + "nvim-telescope/telescope-fzf-native.nvim", + build = "make", + }, + + -- LSP + { + "nvimtools/none-ls.nvim", + config = function(_plugin, opts) + local null_ls = require("null-ls") + + local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false }) + + local prettier_filetypes = {} + for k, v in ipairs(null_ls.builtins.formatting.prettier.filetypes) do + prettier_filetypes[k] = v + end + table.insert(prettier_filetypes, "htmldjango") -- Jinja templates + + null_ls.setup({ + sources = { + null_ls.builtins.formatting.prettier.with({ + filetypes = prettier_filetypes, + }), + }, + }) + end, + }, + { + "mrcjkb/rustaceanvim", + version = "^6", + lazy = false, + }, + { + "mason-org/mason-lspconfig.nvim", + opts = {}, + dependencies = { + "neovim/nvim-lspconfig", + { + "mason-org/mason.nvim", + opts = { + PATH = "append", + }, + }, }, + }, - -- Completion + snippets - { "hrsh7th/cmp-nvim-lsp", branch = "main" }, - { "hrsh7th/nvim-cmp", branch = "main" }, - { - "saadparwaiz1/cmp_luasnip", - dependencies = { - "L3MON4D3/LuaSnip", - }, + -- Completion + snippets + { "hrsh7th/cmp-nvim-lsp", branch = "main" }, + { "hrsh7th/nvim-cmp", branch = "main" }, + { + "saadparwaiz1/cmp_luasnip", + dependencies = { + "L3MON4D3/LuaSnip", }, - { - "L3MON4D3/LuaSnip", - dependencies = { - "hrsh7th/nvim-cmp", - "hrsh7th/cmp-nvim-lsp", + }, + { + "L3MON4D3/LuaSnip", + dependencies = { + "hrsh7th/nvim-cmp", + "hrsh7th/cmp-nvim-lsp", + }, + build = "make install_jsregexp", + init = function() + local luasnip = require("luasnip") + + luasnip.filetype_extend("typescript", { "javascript" }) + luasnip.filetype_extend("typescriptreact", { "javascript", "react" }) + + -- Put snippets in ./snippets/.snippets + require("luasnip.loaders.from_snipmate").lazy_load() + require("luasnip.loaders.from_lua").lazy_load() + + local cmp = require("cmp") + cmp.setup({ + completion = { + autocomplete = false, }, - build = "make install_jsregexp", - init = function() - local luasnip = require('luasnip') + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + }, + }) + end, + }, - luasnip.filetype_extend("typescript", { "javascript" }) - luasnip.filetype_extend("typescriptreact", { "javascript", "react" }) - - -- Put snippets in ./snippets/.snippets - require("luasnip.loaders.from_snipmate").lazy_load() - require("luasnip.loaders.from_lua").lazy_load() - - local cmp = require('cmp') - cmp.setup { - completion = { - autocomplete = false, - }, - snippet = { - expand = function(args) luasnip.lsp_expand(args.body) end, - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }, - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { 'i', 's' }), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { 'i', 's' }), - }), - sources = { - { name = "nvim_lsp" }, - { name = "luasnip" }, - }, - } + -- Debugging + { + "mfussenegger/nvim-dap", + lazy = false, + keys = { + { + "db", + function() + require("dap").toggle_breakpoint() end, + }, + { + "dB", + function() + require("dap").set_breakpoint() + end, + }, + { + "dc", + function() + require("dap").continue() + end, + }, + { + "dn", + function() + require("dap").step_over() + end, + }, + { + "dsi", + function() + require("dap").step_into() + end, + }, + { + "dso", + function() + require("dap").step_out() + end, + }, + { + "dj", + function() + require("dap").down() + end, + }, + { + "dk", + function() + require("dap").up() + end, + }, }, - - -- Debugging - { - 'mfussenegger/nvim-dap', - lazy = false, - keys = { - { "db", function() require('dap').toggle_breakpoint() end }, - { "dB", function() require('dap').set_breakpoint() end }, - { "dc", function() require('dap').continue() end }, - { "dn", function() require('dap').step_over() end }, - { "dsi", function() require('dap').step_into() end }, - { "dso", function() require('dap').step_out() end }, - { "dj", function() require('dap').down() end }, - { "dk", function() require('dap').up() end }, - }, - }, + }, } diff --git a/neovim/luasnippets/react.lua b/neovim/luasnippets/react.lua index 765159c..c4484d6 100644 --- a/neovim/luasnippets/react.lua +++ b/neovim/luasnippets/react.lua @@ -1,14 +1,14 @@ local snippets = { - -- const [show, setShow] = useState(false); - s("rstate", { - t("const ["), - i(1), - t(","), - l(l._1:gsub("^%l", string.upper):gsub("^", "set"), 1), - t("] = useState("), - i(0), - t(");"), - }), + -- const [show, setShow] = useState(false); + s("rstate", { + t("const ["), + i(1), + t(","), + l(l._1:gsub("^%l", string.upper):gsub("^", "set"), 1), + t("] = useState("), + i(0), + t(");"), + }), } local autosnippets = {} diff --git a/neovim/stylua.toml b/neovim/stylua.toml new file mode 100644 index 0000000..cfcf0ab --- /dev/null +++ b/neovim/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +call_parentheses = "Input"