From 56e16603121f94b6ea4b7125c596a09540569841 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Thu, 8 Jul 2021 15:28:34 +0200 Subject: Latest updates from LunarVim, new handrolled colorscheme --- .config/nvim/lua/cfg/barbar/init.lua | 27 +++ .config/nvim/lua/cfg/dashboard/init.lua | 11 +- .config/nvim/lua/cfg/galaxyline/init.lua | 106 +++++++-- .config/nvim/lua/cfg/neoformat/init.lua | 29 ++- .config/nvim/lua/cfg/telescope/init.lua | 2 +- .config/nvim/lua/cfg/themes/dark.lua | 367 +++++++++++++++++++++++++++++ .config/nvim/lua/cfg/themes/spacegray.lua | 373 ------------------------------ .config/nvim/lua/cfg/utils/init.lua | 20 +- .config/nvim/lua/cfg/vimtex/init.lua | 10 + .config/nvim/lua/cfg/which-key/init.lua | 47 +--- .config/nvim/lua/default-config.lua | 3 + .config/nvim/lua/keymappings.lua | 27 +-- .config/nvim/lua/plugins.lua | 41 ++-- .config/nvim/lua/settings.lua | 71 +++--- 14 files changed, 607 insertions(+), 527 deletions(-) create mode 100644 .config/nvim/lua/cfg/barbar/init.lua create mode 100644 .config/nvim/lua/cfg/themes/dark.lua delete mode 100644 .config/nvim/lua/cfg/themes/spacegray.lua (limited to '.config/nvim/lua') diff --git a/.config/nvim/lua/cfg/barbar/init.lua b/.config/nvim/lua/cfg/barbar/init.lua new file mode 100644 index 0000000..5257de5 --- /dev/null +++ b/.config/nvim/lua/cfg/barbar/init.lua @@ -0,0 +1,27 @@ +vim.api.nvim_set_keymap("n", "", ":BufferNext", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "", ":BufferPrevious", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "", ":BufferClose", { noremap = true, silent = true }) + +O.user_which_key["b"] = { + name = "Buffers", + j = { "BufferPick", "jump to buffer" }, + f = { "Telescope buffers", "Find buffer" }, + w = { "BufferWipeout", "wipeout buffer" }, + e = { + "BufferCloseAllButCurrent", + "close all but current buffer", + }, + h = { "BufferCloseBuffersLeft", "close all buffers to the left" }, + l = { + "BufferCloseBuffersRight", + "close all BufferLines to the right", + }, + D = { + "BufferOrderByDirectory", + "sort BufferLines automatically by directory", + }, + L = { + "BufferOrderByLanguage", + "sort BufferLines automatically by language", + }, +} diff --git a/.config/nvim/lua/cfg/dashboard/init.lua b/.config/nvim/lua/cfg/dashboard/init.lua index bac9081..770bb5a 100644 --- a/.config/nvim/lua/cfg/dashboard/init.lua +++ b/.config/nvim/lua/cfg/dashboard/init.lua @@ -1,4 +1,3 @@ - local M = {} M.config = function() @@ -17,15 +16,15 @@ M.config = function() description = { " Recently Used Files" }, command = "Telescope oldfiles", }, + -- c = { + -- description = { " Load Last Session " }, + -- command = "SessionLoad", + -- }, c = { - description = { " Load Last Session " }, - command = "SessionLoad", - }, - d = { description = { " Find Word " }, command = "Telescope live_grep", }, - e = { + d = { description = { " Settings " }, command = ":e " .. CONFIG_PATH .. "/config.lua", }, diff --git a/.config/nvim/lua/cfg/galaxyline/init.lua b/.config/nvim/lua/cfg/galaxyline/init.lua index 536144d..c59d4f4 100644 --- a/.config/nvim/lua/cfg/galaxyline/init.lua +++ b/.config/nvim/lua/cfg/galaxyline/init.lua @@ -1,23 +1,30 @@ -local gl = require('galaxyline') +-- if not package.loaded['galaxyline'] then +-- return +-- end +local status_ok, gl = pcall(require, "galaxyline") +if not status_ok then + return +end -- get my theme in galaxyline repo +-- local colors = require('galaxyline.theme').default local colors = { - bg = '#080808', - yellow = '#DCDCAA', - dark_yellow = '#D7BA7D', - cyan = '#4EC9B0', - green = '#608B4E', - light_green = '#B5CEA8', - string_orange = '#CE9178', - orange = '#FF8800', - purple = '#C586C0', - magenta = '#D16D9E', - grey = '#858585', - blue = '#569CD6', - vivid_blue = '#4FC1FF', - light_blue = '#9CDCFE', - red = '#D16969', - error_red = '#F44747', - info_yellow = '#FFCC66' + bg = "#0A0A0A", + yellow = "#DCDCAA", + dark_yellow = "#D7BA7D", + cyan = "#4EC9B0", + green = "#608B4E", + light_green = "#B5CEA8", + string_orange = "#CE9178", + orange = "#FF8800", + purple = "#C586C0", + magenta = "#D16D9E", + grey = "#858585", + blue = "#569CD6", + vivid_blue = "#4FC1FF", + light_blue = "#9CDCFE", + red = "#D16969", + error_red = "#F44747", + info_yellow = "#FFCC66", } local condition = require "galaxyline.condition" @@ -51,8 +58,9 @@ table.insert(gls.left, { t = colors.blue, } vim.api.nvim_command("hi GalaxyViMode guifg=" .. mode_color[vim.fn.mode()]) - return "▎" + return "▊" end, + separator_highlight = "StatusLineSeparator", highlight = "StatusLineNC", }, }) @@ -108,6 +116,60 @@ table.insert(gls.left, { }, }) +table.insert(gls.left, { + Filler = { + provider = function() + return " " + end, + highlight = "StatusLineGitDelete", + }, +}) +-- get output from shell command +function os.capture(cmd, raw) + local f = assert(io.popen(cmd, "r")) + local s = assert(f:read "*a") + f:close() + if raw then + return s + end + s = string.gsub(s, "^%s+", "") + s = string.gsub(s, "%s+$", "") + s = string.gsub(s, "[\n\r]+", " ") + return s +end +-- cleanup virtual env +local function env_cleanup(venv) + if string.find(venv, "/") then + local final_venv = venv + for w in venv:gmatch "([^/]+)" do + final_venv = w + end + venv = final_venv + end + return venv +end +local PythonEnv = function() + if vim.bo.filetype == "python" then + local venv = os.getenv "CONDA_DEFAULT_ENV" + if venv ~= nil then + return "🅒 (" .. env_cleanup(venv) .. ")" + end + venv = os.getenv "VIRTUAL_ENV" + if venv ~= nil then + return "  (" .. env_cleanup(venv) .. ")" + end + return "" + end + return "" +end +table.insert(gls.left, { + VirtualEnv = { + provider = PythonEnv, + highlight = "StatusLineTreeSitter", + event = "BufEnter", + }, +}) + table.insert(gls.right, { DiagnosticError = { provider = "DiagnosticError", @@ -157,7 +219,7 @@ table.insert(gls.right, { }) local get_lsp_client = function(msg) - msg = msg or "No Active LSP Client" + msg = msg or "LSP Inactive" local buf_ft = vim.api.nvim_buf_get_option(0, "filetype") local clients = vim.lsp.get_active_clients() if next(clients) == nil then @@ -173,7 +235,7 @@ local get_lsp_client = function(msg) lsps = client.name else lsps = lsps .. ", " .. client.name - -- print("more", lsps) + -- print("more", lsps) end end end @@ -277,3 +339,5 @@ table.insert(gls.short_line_left, { highlight = "StatusLineNC", }, }) + +--table.insert(gls.short_line_right[1] = {BufferIcon = {provider = 'BufferIcon', highlight = {colors.grey, colors.bg}}}) diff --git a/.config/nvim/lua/cfg/neoformat/init.lua b/.config/nvim/lua/cfg/neoformat/init.lua index eb9596e..9a5ac76 100644 --- a/.config/nvim/lua/cfg/neoformat/init.lua +++ b/.config/nvim/lua/cfg/neoformat/init.lua @@ -1,12 +1,23 @@ -- autoformat if O.format_on_save then - require("cfg.utils").define_augroups { - autoformat = { - { - "BufWritePre", - "*", - [[try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry]], - }, - }, - } + require("cfg.utils").define_augroups({ + autoformat = { + { + "BufWritePre", + "*", + [[try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry]], + }, + }, + }) +end + +vim.g.neoformat_run_all_formatters = 0 + +vim.g.neoformat_enabled_python = { "flake8", "black", "docformatter" } +vim.g.neoformat_enabled_javascript = { "prettier" } + +if not O.format_on_save then + vim.cmd([[if exists('#autoformat#BufWritePre') + :autocmd! autoformat + endif]]) end diff --git a/.config/nvim/lua/cfg/telescope/init.lua b/.config/nvim/lua/cfg/telescope/init.lua index 5411c32..9e0c45f 100644 --- a/.config/nvim/lua/cfg/telescope/init.lua +++ b/.config/nvim/lua/cfg/telescope/init.lua @@ -36,7 +36,7 @@ telescope.setup { file_sorter = require("telescope.sorters").get_fzy_sorter, file_ignore_patterns = {}, generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter, - shorten_path = true, + path_display = {"shorten"}, winblend = 0, border = {}, borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, diff --git a/.config/nvim/lua/cfg/themes/dark.lua b/.config/nvim/lua/cfg/themes/dark.lua new file mode 100644 index 0000000..fe2ff03 --- /dev/null +++ b/.config/nvim/lua/cfg/themes/dark.lua @@ -0,0 +1,367 @@ +local lush = require "lush" +local hsl = lush.hsl + +local theme = lush(function() + local c = { + bg = hsl "#0A0A0A", + bg1 = hsl "#0D0D0D", + bg2 = hsl "#202020", + + white = hsl "#f5f5f5", + + gray = hsl "#505050", + light_gray = hsl "#D0D0D0", + + error_red = hsl "#AC4142", + warning_orange = hsl "#F4BF75", + info_yellow = hsl "#F4BF75", + hint_blue = hsl "#A5D6FF", + + red = hsl "#AC4142", + + blue = hsl "#A5D6FF", + gray_blue = hsl "#A5D6FF", + + yellow = hsl "#F4BF75", + + orange = hsl "#FFA657", + + green = hsl "#A1B56C", + light_green = hsl "#A1B56C", + + aqua = hsl "#A5D6FF", + + purple = hsl "#AA759F", + pale_purple = hsl "#A5D6FF", + + sign_add = hsl "#A1B56C", + sign_change = hsl "#A5D6FF", + sign_delete = hsl "#AC4142", + } + return { + Normal { bg = c.bg, fg = c.white, gui = "NONE" }, -- used for the columns set with 'colorcolumn' + SignColumn { Normal }, + ModeMsg { Normal }, + MsgArea { Normal }, + MsgSeparator { Normal }, + SpellBad { bg = "NONE", fg = c.white, gui = "underline", sp = c.red }, + SpellCap { bg = "NONE", fg = c.white, gui = "underline", sp = c.yellow }, + SpellLocal { bg = "NONE", fg = c.white, gui = "underline", sp = c.green }, + SpellRare { bg = "NONE", fg = c.white, gui = "underline", sp = c.blue }, + NormalNC { Normal }, + Pmenu { bg = c.bg2, fg = c.white, gui = "NONE" }, + PmenuSel { bg = c.gray_blue, fg = c.bg1.da(5), gui = "NONE" }, + WildMenu { PmenuSel }, -- Non Defaults + CursorLineNr { bg = "NONE", fg = c.light_gray, gui = "bold" }, + Comment { bg = "NONE", fg = c.gray, gui = "italic" }, -- any comment + Folded { bg = c.bg1, fg = c.gray, gui = "NONE" }, + FoldColumn { Normal, fg = c.gray, gui = "NONE" }, + LineNr { bg = "NONE", fg = c.gray, gui = "NONE" }, + FloatBorder { bg = c.bg1, fg = c.gray, gui = "NONE" }, + Whitespace { bg = "NONE", fg = c.gray.da(35), gui = "NONE" }, + VertSplit { bg = "NONE", fg = c.bg2, gui = "NONE" }, + CursorLine { bg = c.bg1, fg = "NONE", gui = "NONE" }, + CursorColumn { CursorLine }, + ColorColumn { CursorLine }, + NormalFloat { bg = c.bg2.da(30), fg = "NONE", gui = "NONE" }, + Visual { bg = c.bg2.da(25), fg = "NONE", gui = "NONE" }, + VisualNOS { Visual }, + WarningMsg { bg = "NONE", fg = c.red, gui = "NONE" }, + DiffText { bg = "NONE", fg = "NONE", gui = "NONE" }, + DiffAdd { bg = c.sign_add, fg = "NONE", gui = "NONE" }, + DiffChange { bg = c.sign_change, fg = "NONE", gui = "NONE" }, + DiffDelete { bg = c.sign_delete, fg = "NONE", gui = "NONE" }, + QuickFixLine { CursorLine }, + PmenuSbar { bg = c.bg2.li(15), fg = "NONE", gui = "NONE" }, + PmenuThumb { bg = c.white, fg = "NONE", gui = "NONE" }, + MatchParen { CursorLine, fg = "NONE", gui = "NONE" }, + Cursor { fg = "NONE", bg = "NONE", gui = "reverse" }, + lCursor { Cursor }, + CursorIM { Cursor }, + TermCursor { Cursor }, + TermCursorNC { Cursor }, + Conceal { bg = "NONE", fg = c.blue, gui = "NONE" }, + Directory { bg = "NONE", fg = c.blue, gui = "NONE" }, + SpecialKey { bg = "NONE", fg = c.blue, gui = "bold" }, + Title { bg = "NONE", fg = c.blue, gui = "bold" }, + ErrorMsg { bg = "NONE", fg = c.error_red, gui = "NONE" }, + Search { bg = c.gray_blue, fg = c.white }, + IncSearch { Search }, + Substitute { Search }, + MoreMsg { bg = "NONE", fg = c.aqua, gui = "NONE" }, + Question { MoreMsg }, + EndOfBuffer { bg = "NONE", fg = c.bg, gui = "NONE" }, + NonText { EndOfBuffer }, + + String { fg = c.blue }, + Character { fg = c.light_green }, + Constant { fg = c.orange }, + Number { fg = c.red }, + Boolean { fg = c.red }, + Float { fg = c.red }, + + Identifier { fg = c.white }, + Function { fg = c.orange }, + Operator { fg = c.orange }, + + Type { fg = c.blue }, + StorageClass { Type }, + Structure { Type }, + Typedef { Type }, + + Keyword { fg = c.blue }, + Statement { Keyword }, + Conditional { Keyword }, + Repeat { Keyword }, + Label { Keyword }, + Exception { Keyword }, + + Include { Keyword }, + PreProc { fg = c.aqua }, + Define { PreProc }, + Macro { PreProc }, + PreCondit { PreProc }, + + Special { fg = c.orange }, + SpecialChar { Character }, + Tag { fg = c.pale_purple }, + Debug { fg = c.red }, + Delimiter { fg = c.white.da(25) }, + SpecialComment { fg = c.gray }, + Underlined { fg = "NONE", gui = "underline" }, + Bold { fg = "NONE", gui = "bold" }, + Italic { fg = "NONE", gui = "italic" }, + + -- Todo + -- ("Ignore", below, may be invisible...) + Ignore { fg = c.white }, + Todo { bg = "NONE", fg = c.red, gui = "bold" }, + Error { fg = c.error_red }, + + -- Treesitter + TSComment { Comment }, -- comment blocks. + luaTSConstructor { bg = "NONE", fg = c.white.da(25) }, -- override Lua curly braces + TSAnnotation { bg = "NONE", fg = c.aqua }, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information. + TSAttribute { bg = "NONE", fg = c.aqua }, -- (unstable) TODO: docs + TSConstructor { Type }, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors. + TSType { Type }, -- types. + TSTypeBuiltin { Type }, -- builtin types. + TSConditional { Conditional }, -- keywords related to conditionnals. + TSException { Exception }, -- exception related keywords. + TSInclude { Include }, -- includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua. + TSKeyword { Keyword }, -- keywords that don't fall in previous categories. + TSKeywordFunction { Keyword }, -- keywords used to define a fuction. + TSLabel { Label }, -- labels: `label:` in C and `:label:` in Lua. + TSNamespace { bg = "NONE", fg = c.blue }, -- For identifiers referring to modules and namespaces. + TSRepeat { Repeat }, -- keywords related to loops. + TSConstant { Constant }, -- constants + TSConstBuiltin { Constant }, -- constant that are built in the language: `nil` in Lua. + TSFloat { Float }, -- floats. + TSNumber { Number }, -- all numbers + TSBoolean { Boolean }, -- booleans. + TSCharacter { Character }, -- characters. + TSError { bg = "NONE", fg = "NONE" }, -- For syntax/parser errors. + TSFunction { Function }, -- function (calls and definitions). + TSFuncBuiltin { Function }, -- builtin functions: `table.insert` in Lua. + TSMethod { Function }, -- method calls and definitions. + TSConstMacro { Macro }, -- constants that are defined by macros: `NULL` in C. + TSFuncMacro { Macro }, -- macro defined fuctions (calls and definitions): each `macro_rules` in Rust. + TSVariableBuiltin { bg = "NONE", fg = c.aqua }, -- Variable names that are defined by the languages, like `this` or `self`. + TSProperty { fg = c.aqua }, + TSOperator { Operator }, -- any operator: `+`, but also `->` and `*` in C. + TSVariable { bg = "NONE", fg = c.white }, -- Any variable name that does not have another highlight. + TSField { bg = "NONE", fg = c.white }, -- For fields. + TSParameter { TSField }, -- parameters of a function. + TSParameterReference { TSParameter }, -- references to parameters of a function. + TSSymbol { Identifier }, -- identifiers referring to symbols or atoms. + TSText { fg = c.white }, -- strings considered text in a markup language. + TSPunctDelimiter { Delimiter }, -- delimiters ie: `.` + TSTagDelimiter { Delimiter }, -- Tag delimiter like `<` `>` `/` + TSPunctBracket { Delimiter }, -- brackets and parens. + TSPunctSpecial { Delimiter }, -- special punctutation that does not fall in the catagories before. + TSString { String }, -- strings. + TSStringRegex { TSString }, -- regexes. + TSStringEscape { Character }, -- escape characters within a string. + TSWarning { Todo }, -- Variable names that are defined by the languages, like `this` or `self`. + TSTag { Tag }, -- Tags like html tag names. + TSEmphasis { gui = "italic" }, -- text to be represented with emphasis. + TSUnderline { gui = "underline" }, -- text to be represented with an underline. + TSStrike { gui = "strikethrough" }, -- strikethrough text. + TSTitle { Title }, -- Text that is part of a title. + TSLiteral { String }, -- Literal text. + TSURI { fg = c.aqua }, -- Any URI like a link or email. + -- TSNone { }, -- TODO: docs + + -- These groups are for the native LSP client. Some other LSP clients may + -- use these groups, or use their own. Consult your LSP client's + -- documentation. + + LspDiagnosticsDefaultError { bg = "NONE", fg = c.error_red, gui = "NONE" }, + LspDiagnosticsDefaultWarning { bg = "NONE", fg = c.warning_orange, gui = "NONE" }, + LspDiagnosticsDefaultInformation { bg = "NONE", fg = c.info_yellow, gui = "NONE" }, + LspDiagnosticsDefaultHint { bg = "NONE", fg = c.hint_blue, gui = "NONE" }, + + LspDiagnosticsVirtualTextError { LspDiagnosticsDefaultError }, + LspDiagnosticsVirtualTextWarning { LspDiagnosticsDefaultWarning }, + LspDiagnosticsVirtualTextInformation { LspDiagnosticsDefaultInformation }, + LspDiagnosticsVirtualTextHint { LspDiagnosticsDefaultHint }, + + LspDiagnosticsFloatingError { fg = c.error_red, gui = "NONE" }, + LspDiagnosticsFloatingWarning { fg = c.warning_orange, gui = "NONE" }, + LspDiagnosticsFloatingInformation { fg = c.info_yellow, gui = "NONE" }, + LspDiagnosticsFloatingHint { fg = c.hint_blue, gui = "NONE" }, + + LspDiagnosticsSignError { fg = c.error_red, gui = "NONE" }, + LspDiagnosticsSignWarning { fg = c.warning_orange, gui = "NONE" }, + LspDiagnosticsSignInformation { fg = c.info_yellow, gui = "NONE" }, + LspDiagnosticsSignHint { fg = c.hint_blue, gui = "NONE" }, -- Tree-Sitter + + LspDiagnosticsError { LspDiagnosticsSignError }, + LspDiagnosticsWarning { LspDiagnosticsSignWarning }, + LspDiagnosticsInformation { LspDiagnosticsSignInformation }, + LspDiagnosticsHint { LspDiagnosticsSignHint }, + + -- LspReferenceText {bg = c.bg1, fg = "NONE", gui = "underline"}, + -- LspReferenceRead {bg = c.bg1, fg = "NONE", gui = "underline"}, + -- LspReferenceWrite {bg = c.bg1, fg = "NONE", gui = "underline"}, + + LspDiagnosticsUnderlineError { fg = "NONE", gui = "underline", sp = c.red }, + LspDiagnosticsUnderlineWarning { fg = "NONE", gui = "underline", sp = c.yellow }, + LspDiagnosticsUnderlineInformation { fg = "NONE", gui = "underline", sp = c.blue }, + LspDiagnosticsUnderlineHint { fg = "NONE", gui = "underline", sp = c.green }, + + -- gitsigns.nvim + SignAdd { fg = c.sign_add }, + SignChange { fg = c.sign_change }, + SignDelete { fg = c.sign_delete }, -- Any URI like a link or email. + GitSignsAdd { fg = c.sign_add }, + GitSignsChange { fg = c.sign_change }, + GitSignsDelete { fg = c.sign_delete }, + + -- telescope.nvim + TelescopeSelection { bg = "NONE", fg = c.aqua }, + TelescopeMatching { bg = "NONE", fg = c.red, gui = "bold" }, + TelescopeBorder { bg = c.bg1, fg = c.gray }, -- nvim-tree.lua + + -- Nvimtree + NvimTreeFolderIcon { fg = c.blue }, + NvimTreeIndentMarker { fg = c.gray }, + NvimTreeNormal { fg = c.white.da(10), bg = c.bg1 }, + NvimTreeFolderName { fg = c.blue }, + NvimTreeOpenedFolderName { fg = c.aqua.da(10), gui = "italic" }, + NvimTreeOpenedFile { NvimTreeOpenedFolderName }, + NvimTreeRootFolder { fg = c.blue.da(20) }, + NvimTreeExecFile { fg = c.green }, + NvimTreeImageFile { fg = c.purple }, + NvimTreeSpecialFile { fg = c.aqua }, + + NvimTreeGitStaged { fg = c.sign_add }, + NvimTreeGitNew { fg = c.sign_add }, + NvimTreeGitDirty { fg = c.sign_add }, + NvimTreeGitRenamed { fg = c.sign_change }, + NvimTreeGitMerge { fg = c.sign_change }, + NvimTreeGitDelete { fg = c.sign_delete }, + NvimTreeVertSplit { fg = c.bg1, bg = c.bg1 }, + + -- BarBar + TabLine { bg = c.bg1, fg = c.white, gui = "NONE" }, + TabLineFill { bg = c.bg1, fg = c.gray, gui = "NONE" }, + TabLineSel { bg = c.white, fg = c.bg1, gui = "NONE" }, + + BufferCurrent { fg = c.fg, bg = c.bg }, + BufferCurrentIndex { fg = c.aqua, bg = c.bg }, + BufferCurrentMod { fg = c.info_yellow, bg = c.bg }, + BufferCurrentSign { fg = c.aqua, bg = c.bg }, + BufferCurrentTarget { fg = c.red, bg = c.bg, gui = "bold" }, + + BufferVisible { fg = c.fg, bg = c.bg }, + BufferVisibleIndex { fg = c.fg, bg = c.bg }, + BufferVisibleMod { fg = c.info_yellow, bg = c.bg }, + BufferVisibleSign { fg = c.info_yellow, bg = c.bg }, + BufferVisibleTarget { fg = c.red, bg = c.bg, gui = "bold" }, + + BufferInactive { fg = c.gray, bg = c.bg1 }, + BufferInactiveIndex { fg = c.gray, bg = c.bg1 }, + BufferInactiveMod { fg = c.info_yellow, bg = c.bg1 }, + BufferInactiveSign { fg = c.gray, bg = c.bg1 }, + BufferInactiveTarget { fg = c.red, bg = c.bg1 }, + + -- some fix for html related stuff + htmlH1 { Title }, -- markdown stuff + mkdLink { fg = c.aqua, gui = "underline" }, + mkdLineBreak { bg = "NONE", fg = "NONE", gui = "NONE" }, + mkdHeading { fg = c.white }, + mkdInlineURL { mkdLink }, + mkdUnderline { fg = c.gray }, + markdownUrl { mkdLink }, + markdownCode { fg = c.orange, bg = "NONE" }, + markdownLinkTextDelimiter { Delimiter }, + markdownLinkDelimiter { Delimiter }, + markdownIdDelimiter { Delimiter }, + markdownLinkText { fg = c.aqua }, + markdownItalic { fg = "NONE", gui = "italic" }, -- flutter-tools.nvim + FlutterWidgetGuides { fg = c.gray.li(10) }, -- statusline + + StatusLine { bg = c.bg1, fg = c.white }, -- status line of current window + StatusLineNC { bg = c.bg1, fg = c.light_gray }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + StatusLineSeparator { bg = c.bg1, fg = "NONE" }, + StatusLineGit { bg = c.bg1, fg = c.orange }, + StatusLineGitAdd { bg = c.bg1, fg = c.green }, + StatusLineGitChange { bg = c.bg1, fg = c.blue }, + StatusLineGitDelete { bg = c.bg1, fg = c.red }, + StatusLineLspDiagnosticsError { bg = c.bg1, fg = c.error_red, gui = "NONE" }, + StatusLineLspDiagnosticsWarning { bg = c.bg1, fg = c.warning_orange, gui = "NONE" }, + StatusLineLspDiagnosticsInformation { bg = c.bg1, fg = c.info_yellow, gui = "NONE" }, + StatusLineLspDiagnosticsHint { bg = c.bg1, fg = c.hint_blue, gui = "NONE" }, + StatusLineTreeSitter { bg = c.bg1, fg = c.green }, + + -- StatusLineMode {bg = c.gray, fg = c.bg, gui = "bold"}, + -- StatusLineDeco {bg = c.bg2, fg = c.yellow}, + -- StatusLineLCol {bg = c.bg2, fg = c.white}, + -- StatusLineLColAlt {bg = c.bg1, fg = c.white}, + -- StatusLineFT {bg = c.bg2, fg = c.white}, + -- StatusLineFTAlt {bg = c.bg2, fg = c.white}, + -- StatusLineGitAlt {bg = c.gray, fg = c.bg}, + -- StatusLineLSP {bg = c.bg1, fg = c.gray.li(25)}, + -- StatusLineFileName {bg = c.bg1, fg = c.white, gui = "bold"}, + + -- lsp-trouble.nvim + LspTroubleIndent { fg = c.gray.li(10) }, -- tabline stuff + + -- tabline diagnostic + TabLineError { LspDiagnosticsSignError }, + TabLineWarning { LspDiagnosticsSignWarning }, + TabLineHint { LspDiagnosticsSignHint }, + TabLineInformation { LspDiagnosticsSignInformation }, -- which-key.nvim + + WhichKey { fg = c.white }, -- nvim-compe + WhichKeySeperator { fg = c.gray }, -- nvim-compe + WhichKeyGroup { fg = c.blue }, -- nvim-compe + WhichKeyDesc { fg = c.aqua }, -- nvim-compe + WhichKeyFloat { bg = c.bg1 }, -- nvim-compe + + CompeDocumentation { Pmenu, fg = "NONE" }, -- diffview + + DiffviewNormal { NvimTreeNormal }, + DiffviewStatusAdded { SignAdd }, + DiffviewStatusModified { SignChange }, + DiffviewStatusRenamed { SignChange }, + DiffviewStatusDeleted { SignDelete }, + DiffviewFilePanelInsertion { SignAdd }, + DiffviewFilePanelDeletion { SignDelete }, + DiffviewVertSplit { fg = c.gray, bg = c.bg }, + + DashboardHeader { fg = c.blue }, + DashboardCenter { fg = c.purple }, + DashboardFooter { fg = c.aqua }, + + IndentBlanklineContextChar { fg = c.gray.da(20) }, + + CodiVirtualText { fg = c.hint_blue }, + } +end) + +-- return our parsed theme for extension or use else where. +return theme + +-- vi:nowrap diff --git a/.config/nvim/lua/cfg/themes/spacegray.lua b/.config/nvim/lua/cfg/themes/spacegray.lua deleted file mode 100644 index 0bb695c..0000000 --- a/.config/nvim/lua/cfg/themes/spacegray.lua +++ /dev/null @@ -1,373 +0,0 @@ -local lush = require "lush" -local hsl = lush.hsl - -local theme = lush(function() - local c = { - bg = hsl "#212121", - bg1 = hsl "#2a2a2a", - -- bg2 = hsl("#3a3a3a"), - bg2 = hsl "#383d45", - - white = hsl "#c8c9d1", - - gray = hsl "#858585", - light_gray = hsl "#c8c9c1", - - error_red = hsl "#F44747", - warning_orange = hsl "#ff8800", - info_yellow = hsl "#ffcc66", - hint_blue = hsl "#4fc1ff", - - red = hsl "#b04b57", - - blue = hsl "#5486c0", - gray_blue = hsl "#66899d", - - -- yellow = hsl("#ffcb6b"), - yellow = hsl "#eeba5a", - - -- orange = hsl("#c98a75"), - orange = hsl "#c6735a", - - green = hsl "#87b379", - light_green = hsl "#b2d77c", - - -- aqua = hsl("#46b1d0"), - aqua = hsl "#65a7c5", - - purple = hsl "#bf83c1", - pale_purple = hsl "#7199ee", - - sign_add = hsl "#587C0C", - sign_change = hsl "#0C7D9D", - sign_delete = hsl "#94151B", - - test = hsl "#ff00ff", - } - return { - Normal { bg = c.bg, fg = c.white, gui = "NONE" }, -- used for the columns set with 'colorcolumn' - SignColumn { Normal }, - ModeMsg { Normal }, - MsgArea { Normal }, - MsgSeparator { Normal }, - SpellBad { bg = "NONE", fg = c.white, gui = "underline", sp = c.red }, - SpellCap { bg = "NONE", fg = c.white, gui = "underline", sp = c.yellow }, - SpellLocal { bg = "NONE", fg = c.white, gui = "underline", sp = c.green }, - SpellRare { bg = "NONE", fg = c.white, gui = "underline", sp = c.blue }, - NormalNC { Normal }, - Pmenu { bg = c.bg2, fg = c.white, gui = "NONE" }, - PmenuSel { bg = c.gray_blue, fg = c.bg1.da(5), gui = "NONE" }, - WildMenu { PmenuSel }, -- Non Defaults - CursorLineNr { bg = "NONE", fg = c.light_gray, gui = "bold" }, - Comment { bg = "NONE", fg = c.gray, gui = "italic" }, -- any comment - Folded { bg = c.bg1, fg = c.gray, gui = "NONE" }, - FoldColumn { Normal, fg = c.gray, gui = "NONE" }, - LineNr { bg = "NONE", fg = c.gray, gui = "NONE" }, - FloatBorder { bg = c.bg1, fg = c.gray, gui = "NONE" }, - Whitespace { bg = "NONE", fg = c.gray.da(35), gui = "NONE" }, - VertSplit { bg = "NONE", fg = c.bg2, gui = "NONE" }, - CursorLine { bg = c.bg1, fg = "NONE", gui = "NONE" }, - CursorColumn { CursorLine }, - ColorColumn { CursorLine }, - NormalFloat { bg = c.bg2.da(30), fg = "NONE", gui = "NONE" }, - Visual { bg = c.bg2.da(25), fg = "NONE", gui = "NONE" }, - VisualNOS { Visual }, - WarningMsg { bg = "NONE", fg = c.red, gui = "NONE" }, - DiffText { bg = "NONE", fg = "NONE", gui = "NONE" }, - DiffAdd { bg = c.sign_add, fg = "NONE", gui = "NONE" }, - DiffChange { bg = c.sign_change, fg = "NONE", gui = "NONE" }, - DiffDelete { bg = c.sign_delete, fg = "NONE", gui = "NONE" }, - QuickFixLine { CursorLine }, - PmenuSbar { bg = c.bg2.li(15), fg = "NONE", gui = "NONE" }, - PmenuThumb { bg = c.white, fg = "NONE", gui = "NONE" }, - MatchParen { CursorLine, fg = "NONE", gui = "NONE" }, - Cursor { fg = "NONE", bg = "NONE", gui = "reverse" }, - lCursor { Cursor }, - CursorIM { Cursor }, - TermCursor { Cursor }, - TermCursorNC { Cursor }, - Conceal { bg = "NONE", fg = c.blue, gui = "NONE" }, - Directory { bg = "NONE", fg = c.blue, gui = "NONE" }, - SpecialKey { bg = "NONE", fg = c.blue, gui = "bold" }, - Title { bg = "NONE", fg = c.blue, gui = "bold" }, - ErrorMsg { bg = "NONE", fg = c.error_red, gui = "NONE" }, - Search { bg = c.gray_blue, fg = c.white }, - IncSearch { Search }, - Substitute { Search }, - MoreMsg { bg = "NONE", fg = c.aqua, gui = "NONE" }, - Question { MoreMsg }, - EndOfBuffer { bg = "NONE", fg = c.bg, gui = "NONE" }, - NonText { EndOfBuffer }, - - String { fg = c.green }, - Character { fg = c.light_green }, - Constant { fg = c.orange }, - Number { fg = c.red }, - Boolean { fg = c.red }, - Float { fg = c.red }, - - Identifier { fg = c.white }, - Function { fg = c.yellow }, - Operator { fg = c.gray_blue }, - - Type { fg = c.purple }, - StorageClass { Type }, - Structure { Type }, - Typedef { Type }, - - Keyword { fg = c.blue }, - Statement { Keyword }, - Conditional { Keyword }, - Repeat { Keyword }, - Label { Keyword }, - Exception { Keyword }, - - Include { Keyword }, - PreProc { fg = c.aqua }, - Define { PreProc }, - Macro { PreProc }, - PreCondit { PreProc }, - - Special { fg = c.orange }, - SpecialChar { Character }, - Tag { fg = c.pale_purple }, - Debug { fg = c.red }, - Delimiter { fg = c.white.da(25) }, - SpecialComment { fg = c.gray }, - Underlined { fg = "NONE", gui = "underline" }, - Bold { fg = "NONE", gui = "bold" }, - Italic { fg = "NONE", gui = "italic" }, - - -- Todo - -- ("Ignore", below, may be invisible...) - Ignore { fg = c.white }, - Todo { bg = "NONE", fg = c.red, gui = "bold" }, - Error { fg = c.error_red }, - - -- Treesitter - TSComment { Comment }, -- comment blocks. - luaTSConstructor { bg = "NONE", fg = c.white.da(25) }, -- override Lua curly braces - TSAnnotation { bg = "NONE", fg = c.aqua }, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information. - TSAttribute { bg = "NONE", fg = c.aqua }, -- (unstable) TODO: docs - TSConstructor { Type }, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors. - TSType { Type }, -- types. - TSTypeBuiltin { Type }, -- builtin types. - TSConditional { Conditional }, -- keywords related to conditionnals. - TSException { Exception }, -- exception related keywords. - TSInclude { Include }, -- includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua. - TSKeyword { Keyword }, -- keywords that don't fall in previous categories. - TSKeywordFunction { Keyword }, -- keywords used to define a fuction. - TSLabel { Label }, -- labels: `label:` in C and `:label:` in Lua. - TSNamespace { bg = "NONE", fg = c.blue }, -- For identifiers referring to modules and namespaces. - TSRepeat { Repeat }, -- keywords related to loops. - TSConstant { Constant }, -- constants - TSConstBuiltin { Constant }, -- constant that are built in the language: `nil` in Lua. - TSFloat { Float }, -- floats. - TSNumber { Number }, -- all numbers - TSBoolean { Boolean }, -- booleans. - TSCharacter { Character }, -- characters. - TSError { bg = "NONE", fg = "NONE" }, -- For syntax/parser errors. - TSFunction { Function }, -- function (calls and definitions). - TSFuncBuiltin { Function }, -- builtin functions: `table.insert` in Lua. - TSMethod { Function }, -- method calls and definitions. - TSConstMacro { Macro }, -- constants that are defined by macros: `NULL` in C. - TSFuncMacro { Macro }, -- macro defined fuctions (calls and definitions): each `macro_rules` in Rust. - TSVariableBuiltin { bg = "NONE", fg = c.aqua }, -- Variable names that are defined by the languages, like `this` or `self`. - TSProperty { fg = c.aqua }, - TSOperator { Operator }, -- any operator: `+`, but also `->` and `*` in C. - TSVariable { bg = "NONE", fg = c.white }, -- Any variable name that does not have another highlight. - TSField { bg = "NONE", fg = c.white }, -- For fields. - TSParameter { TSField }, -- parameters of a function. - TSParameterReference { TSParameter }, -- references to parameters of a function. - TSSymbol { Identifier }, -- identifiers referring to symbols or atoms. - TSText { fg = c.white }, -- strings considered text in a markup language. - TSPunctDelimiter { Delimiter }, -- delimiters ie: `.` - TSTagDelimiter { Delimiter }, -- Tag delimiter like `<` `>` `/` - TSPunctBracket { Delimiter }, -- brackets and parens. - TSPunctSpecial { Delimiter }, -- special punctutation that does not fall in the catagories before. - TSString { String }, -- strings. - TSStringRegex { TSString }, -- regexes. - TSStringEscape { Character }, -- escape characters within a string. - TSWarning { Todo }, -- Variable names that are defined by the languages, like `this` or `self`. - TSTag { Tag }, -- Tags like html tag names. - TSEmphasis { gui = "italic" }, -- text to be represented with emphasis. - TSUnderline { gui = "underline" }, -- text to be represented with an underline. - TSStrike { gui = "strikethrough" }, -- strikethrough text. - TSTitle { Title }, -- Text that is part of a title. - TSLiteral { String }, -- Literal text. - TSURI { fg = c.aqua }, -- Any URI like a link or email. - -- TSNone { }, -- TODO: docs - - -- These groups are for the native LSP client. Some other LSP clients may - -- use these groups, or use their own. Consult your LSP client's - -- documentation. - - LspDiagnosticsDefaultError { bg = "NONE", fg = c.error_red, gui = "NONE" }, - LspDiagnosticsDefaultWarning { bg = "NONE", fg = c.warning_orange, gui = "NONE" }, - LspDiagnosticsDefaultInformation { bg = "NONE", fg = c.info_yellow, gui = "NONE" }, - LspDiagnosticsDefaultHint { bg = "NONE", fg = c.hint_blue, gui = "NONE" }, - - LspDiagnosticsVirtualTextError { LspDiagnosticsDefaultError }, - LspDiagnosticsVirtualTextWarning { LspDiagnosticsDefaultWarning }, - LspDiagnosticsVirtualTextInformation { LspDiagnosticsDefaultInformation }, - LspDiagnosticsVirtualTextHint { LspDiagnosticsDefaultHint }, - - LspDiagnosticsFloatingError { fg = c.error_red, gui = "NONE" }, - LspDiagnosticsFloatingWarning { fg = c.warning_orange, gui = "NONE" }, - LspDiagnosticsFloatingInformation { fg = c.info_yellow, gui = "NONE" }, - LspDiagnosticsFloatingHint { fg = c.hint_blue, gui = "NONE" }, - - LspDiagnosticsSignError { fg = c.error_red, gui = "NONE" }, - LspDiagnosticsSignWarning { fg = c.warning_orange, gui = "NONE" }, - LspDiagnosticsSignInformation { fg = c.info_yellow, gui = "NONE" }, - LspDiagnosticsSignHint { fg = c.hint_blue, gui = "NONE" }, -- Tree-Sitter - - LspDiagnosticsError { LspDiagnosticsSignError }, - LspDiagnosticsWarning { LspDiagnosticsSignWarning }, - LspDiagnosticsInformation { LspDiagnosticsSignInformation }, - LspDiagnosticsHint { LspDiagnosticsSignHint }, - - -- LspReferenceText {bg = c.bg1, fg = "NONE", gui = "underline"}, - -- LspReferenceRead {bg = c.bg1, fg = "NONE", gui = "underline"}, - -- LspReferenceWrite {bg = c.bg1, fg = "NONE", gui = "underline"}, - - LspDiagnosticsUnderlineError { fg = "NONE", gui = "underline", sp = c.red }, - LspDiagnosticsUnderlineWarning { fg = "NONE", gui = "underline", sp = c.yellow }, - LspDiagnosticsUnderlineInformation { fg = "NONE", gui = "underline", sp = c.blue }, - LspDiagnosticsUnderlineHint { fg = "NONE", gui = "underline", sp = c.green }, - - -- gitsigns.nvim - SignAdd { fg = c.sign_add }, - SignChange { fg = c.sign_change }, - SignDelete { fg = c.sign_delete }, -- Any URI like a link or email. - GitSignsAdd { fg = c.sign_add }, - GitSignsChange { fg = c.sign_change }, - GitSignsDelete { fg = c.sign_delete }, - - -- telescope.nvim - TelescopeSelection { bg = "NONE", fg = c.aqua }, - TelescopeMatching { bg = "NONE", fg = c.red, gui = "bold" }, - TelescopeBorder { bg = c.bg1, fg = c.gray }, -- nvim-tree.lua - - -- Nvimtree - NvimTreeFolderIcon { fg = c.blue }, - NvimTreeIndentMarker { fg = c.gray }, - NvimTreeNormal { fg = c.white.da(10), bg = c.bg1 }, - NvimTreeFolderName { fg = c.blue }, - NvimTreeOpenedFolderName { fg = c.aqua.da(10), gui = "italic" }, - NvimTreeOpenedFile { NvimTreeOpenedFolderName }, - NvimTreeRootFolder { fg = c.blue.da(20) }, - NvimTreeExecFile { fg = c.green }, - NvimTreeImageFile { fg = c.purple }, - NvimTreeSpecialFile { fg = c.aqua }, - - NvimTreeGitStaged { fg = c.sign_add }, - NvimTreeGitNew { fg = c.sign_add }, - NvimTreeGitDirty { fg = c.sign_add }, - NvimTreeGitRenamed { fg = c.sign_change }, - NvimTreeGitMerge { fg = c.sign_change }, - NvimTreeGitDelete { fg = c.sign_delete }, - NvimTreeVertSplit { fg = c.bg1, bg = c.bg1 }, - - -- BarBar - TabLine { bg = c.bg1, fg = c.white, gui = "NONE" }, - TabLineFill { bg = c.bg1, fg = c.white, gui = "NONE" }, - TabLineSel { bg = c.blue, fg = c.bg1, gui = "NONE" }, - - BufferCurrent { fg = c.fg, bg = c.bg }, - BufferCurrentIndex { fg = c.aqua, bg = c.bg }, - BufferCurrentMod { fg = c.info_yellow, bg = c.bg }, - BufferCurrentSign { fg = c.aqua, bg = c.bg }, - BufferCurrentTarget { fg = c.red, bg = c.bg, gui = "bold" }, - - BufferVisible { fg = c.fg, bg = c.bg }, - BufferVisibleIndex { fg = c.fg, bg = c.bg }, - BufferVisibleMod { fg = c.info_yellow, bg = c.bg }, - BufferVisibleSign { fg = c.info_yellow, bg = c.bg }, - BufferVisibleTarget { fg = c.red, bg = c.bg, gui = "bold" }, - - BufferInactive { fg = c.gray, bg = c.bg1 }, - BufferInactiveIndex { fg = c.gray, bg = c.bg1 }, - BufferInactiveMod { fg = c.info_yellow, bg = c.bg1 }, - BufferInactiveSign { fg = c.gray, bg = c.bg1 }, - BufferInactiveTarget { fg = c.red, bg = c.bg1 }, - - -- some fix for html related stuff - htmlH1 { Title }, -- markdown stuff - mkdLink { fg = c.aqua, gui = "underline" }, - mkdLineBreak { bg = "NONE", fg = "NONE", gui = "NONE" }, - mkdHeading { fg = c.white }, - mkdInlineURL { mkdLink }, - mkdUnderline { fg = c.gray }, - markdownUrl { mkdLink }, - markdownCode { fg = c.orange, bg = "NONE" }, - markdownLinkTextDelimiter { Delimiter }, - markdownLinkDelimiter { Delimiter }, - markdownIdDelimiter { Delimiter }, - markdownLinkText { fg = c.aqua }, - markdownItalic { fg = "NONE", gui = "italic" }, -- flutter-tools.nvim - FlutterWidgetGuides { fg = c.gray.li(10) }, -- statusline - - StatusLine { bg = c.bg1, fg = c.white }, -- status line of current window - StatusLineNC { bg = c.bg1, fg = c.light_gray }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. - StatusLineSeparator { bg = c.bg1, fg = "NONE" }, - StatusLineGit { bg = c.bg1, fg = c.orange }, - StatusLineGitAdd { bg = c.bg1, fg = c.green }, - StatusLineGitChange { bg = c.bg1, fg = c.blue }, - StatusLineGitDelete { bg = c.bg1, fg = c.red }, - StatusLineLspDiagnosticsError { bg = c.bg1, fg = c.error_red, gui = "NONE" }, - StatusLineLspDiagnosticsWarning { bg = c.bg1, fg = c.warning_orange, gui = "NONE" }, - StatusLineLspDiagnosticsInformation { bg = c.bg1, fg = c.info_yellow, gui = "NONE" }, - StatusLineLspDiagnosticsHint { bg = c.bg1, fg = c.hint_blue, gui = "NONE" }, - StatusLineTreeSitter { bg = c.bg1, fg = c.green }, - - -- StatusLineMode {bg = c.gray, fg = c.bg, gui = "bold"}, - -- StatusLineDeco {bg = c.bg2, fg = c.yellow}, - -- StatusLineLCol {bg = c.bg2, fg = c.white}, - -- StatusLineLColAlt {bg = c.bg1, fg = c.white}, - -- StatusLineFT {bg = c.bg2, fg = c.white}, - -- StatusLineFTAlt {bg = c.bg2, fg = c.white}, - -- StatusLineGitAlt {bg = c.gray, fg = c.bg}, - -- StatusLineLSP {bg = c.bg1, fg = c.gray.li(25)}, - -- StatusLineFileName {bg = c.bg1, fg = c.white, gui = "bold"}, - - -- lsp-trouble.nvim - LspTroubleIndent { fg = c.gray.li(10) }, -- tabline stuff - - -- tabline diagnostic - TabLineError { LspDiagnosticsSignError }, - TabLineWarning { LspDiagnosticsSignWarning }, - TabLineHint { LspDiagnosticsSignHint }, - TabLineInformation { LspDiagnosticsSignInformation }, -- which-key.nvim - - WhichKey { fg = c.purple }, -- nvim-compe - WhichKeySeperator { fg = c.green }, -- nvim-compe - WhichKeyGroup { fg = c.blue }, -- nvim-compe - WhichKeyDesc { fg = c.aqua }, -- nvim-compe - WhichKeyFloat { bg = c.bg1 }, -- nvim-compe - - CompeDocumentation { Pmenu, fg = "NONE" }, -- diffview - - DiffviewNormal { NvimTreeNormal }, - DiffviewStatusAdded { SignAdd }, - DiffviewStatusModified { SignChange }, - DiffviewStatusRenamed { SignChange }, - DiffviewStatusDeleted { SignDelete }, - DiffviewFilePanelInsertion { SignAdd }, - DiffviewFilePanelDeletion { SignDelete }, - DiffviewVertSplit { fg = c.gray, bg = c.bg }, - - DashboardHeader { fg = c.blue }, - DashboardCenter { fg = c.purple }, - DashboardFooter { fg = c.aqua }, - - IndentBlanklineContextChar { fg = c.gray.da(20) }, - - CodiVirtualText { fg = c.hint_blue }, - } -end) - --- return our parsed theme for extension or use else where. -return theme - --- vi:nowrap diff --git a/.config/nvim/lua/cfg/utils/init.lua b/.config/nvim/lua/cfg/utils/init.lua index f8ed082..2fe3331 100644 --- a/.config/nvim/lua/cfg/utils/init.lua +++ b/.config/nvim/lua/cfg/utils/init.lua @@ -3,7 +3,7 @@ local utils = {} function utils.reload_config() vim.cmd "source ~/.config/nvim/config.lua" vim.cmd "source ~/.config/nvim/lua/plugins.lua" - vim.cmd "source ~/.config/nvim/lua/neoformat/init.lua" + vim.cmd "source ~/.config/nvim/lua/cfg/neoformat/init.lua" vim.cmd ":PackerCompile" vim.cmd ":PackerInstall" end @@ -54,7 +54,7 @@ utils.define_augroups { "*", "setlocal formatoptions-=c formatoptions-=r formatoptions-=o", }, - { "BufWritePost", "config.lua", "lua require('utils').reload_config()" }, + { "BufWritePost", "config.lua", "lua require('cfg.utils').reload_config()" }, { "VimLeavePre", "*", "set title set titleold=" }, }, -- _solidity = { @@ -74,7 +74,11 @@ utils.define_augroups { }, _auto_resize = { -- will cause split windows to be resized evenly if main window is resized - { "VimResized ", "*", "wincmd =" }, + { "VimResized", "*", "wincmd =" }, + }, + _packer_compile = { + -- will cause split windows to be resized evenly if main window is resized + { "BufWritePost", "plugins.lua", "PackerCompile" }, }, -- _mode_switching = { -- -- will switch between absolute and relative line numbers depending on mode @@ -85,4 +89,14 @@ utils.define_augroups { -- }, } +vim.cmd [[ + function! QuickFixToggle() + if empty(filter(getwininfo(), 'v:val.quickfix')) + copen + else + cclose + endif +endfunction +]] + return utils diff --git a/.config/nvim/lua/cfg/vimtex/init.lua b/.config/nvim/lua/cfg/vimtex/init.lua index 11ed68b..4d7b93b 100644 --- a/.config/nvim/lua/cfg/vimtex/init.lua +++ b/.config/nvim/lua/cfg/vimtex/init.lua @@ -2,6 +2,16 @@ vim.g.vimtex_compiler_method = "latexmk" vim.g.vimtex_view_method = "zathura" vim.g.vimtex_fold_enabled = 0 +O.user_which_key["L"] = { + name = "+Latex", + c = { "VimtexCompile", "Toggle Compilation Mode" }, + f = { "call vimtex#fzf#run()", "Fzf Find" }, + i = { "VimtexInfo", "Project Information" }, + s = { "VimtexStop", "Stop Project Compilation" }, + t = { "VimtexTocToggle", "Toggle Table Of Content" }, + v = { "VimtexView", "View PDF" }, +} + -- Compile on initialization, cleanup on quit vim.api.nvim_exec( [[ diff --git a/.config/nvim/lua/cfg/which-key/init.lua b/.config/nvim/lua/cfg/which-key/init.lua index 2a22c9c..993018c 100644 --- a/.config/nvim/lua/cfg/which-key/init.lua +++ b/.config/nvim/lua/cfg/which-key/init.lua @@ -99,7 +99,7 @@ vim.api.nvim_set_keymap( local mappings = { - ["."] = "LunarConfig", + ["."] = "Config", ["k"] = "Comment", ["c"] = "Close Buffer", ["e"] = "Explorer", @@ -108,29 +108,6 @@ local mappings = { [";"] = "Dashboard", ["v"] = "Vertical Split", ["h"] = "Horizontal Split", - b = { - name = "Buffers", - j = { "BufferPick", "jump to buffer" }, - f = { "Telescope buffers", "Find buffer" }, - w = { "BufferWipeout", "wipeout buffer" }, - e = { - "BufferCloseAllButCurrent", - "close all but current buffer", - }, - h = { "BufferCloseBuffersLeft", "close all buffers to the left" }, - l = { - "BufferCloseBuffersRight", - "close all BufferLines to the right", - }, - D = { - "BufferOrderByDirectory", - "sort BufferLines automatically by directory", - }, - L = { - "BufferOrderByLanguage", - "sort BufferLines automatically by language", - }, - }, p = { name = "Packer", c = { "PackerCompile", "Compile" }, @@ -198,11 +175,6 @@ local mappings = { R = { "Telescope registers", "Registers" }, t = { "Telescope live_grep", "Text" }, }, - S = { - name = "Session", - s = { "SessionSave", "Save Session" }, - l = { "SessionLoad", "Load Session" }, - }, T = { name = "Treesitter", i = { ":TSConfigInfo", "Info" }, @@ -235,18 +207,6 @@ if O.plugin.telescope_project.active then mappings["P"] = "Projects" end -if O.lang.latex.active then - mappings["L"] = { - name = "+Latex", - c = { "VimtexCompile", "Toggle Compilation Mode" }, - f = { "call vimtex#fzf#run()", "Fzf Find" }, - i = { "VimtexInfo", "Project Information" }, - s = { "VimtexStop", "Stop Project Compilation" }, - t = { "VimtexTocToggle", "Toggle Table Of Content" }, - v = { "VimtexView", "View PDF" }, - } -end - if O.lushmode then mappings["L"] = { name = "+Lush", @@ -257,13 +217,8 @@ if O.lushmode then } end --- for _, v in pairs(O.user_which_key) do --- end for k, v in pairs(O.user_which_key) do mappings[k] = v - -- table.insert(mappings, O.user_which_key[1]) - -- print(k) - -- print(v) end local wk = require "which-key" diff --git a/.config/nvim/lua/default-config.lua b/.config/nvim/lua/default-config.lua index fce3caf..2f5a674 100644 --- a/.config/nvim/lua/default-config.lua +++ b/.config/nvim/lua/default-config.lua @@ -8,10 +8,13 @@ O = { auto_close_tree = 0, auto_complete = true, colorscheme = "lunar", + clipboard = "unnamedplus", hidden_files = true, wrap_lines = false, number = true, relative_number = true, + number_width = 4, + cmdheight = 2, cursorline = true, shell = "zsh", timeoutlen = 100, diff --git a/.config/nvim/lua/keymappings.lua b/.config/nvim/lua/keymappings.lua index 3b6a95a..4dfcbb0 100644 --- a/.config/nvim/lua/keymappings.lua +++ b/.config/nvim/lua/keymappings.lua @@ -4,19 +4,16 @@ vim.api.nvim_set_keymap("n", "", "j", { silent = true }) vim.api.nvim_set_keymap("n", "", "k", { silent = true }) vim.api.nvim_set_keymap("n", "", "l", { silent = true }) --- TODO fix this -- Terminal window navigation -vim.cmd [[ - tnoremap h - tnoremap j - tnoremap k - tnoremap l - inoremap h - inoremap j - inoremap k - inoremap l - tnoremap -]] +vim.api.nvim_set_keymap("t", "", "h", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("t", "", "j", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("t", "", "k", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("t", "", "l", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("i", "", "h", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("i", "", "j", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("i", "", "k", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("i", "", "l", {silent = true, noremap = true}) +vim.api.nvim_set_keymap("t", "", "", {silent = true, noremap = true}) -- TODO fix this -- resize with arrows @@ -70,9 +67,3 @@ vim.cmd 'vnoremap P "0P' -- Toggle the QuickFix window vim.api.nvim_set_keymap("", "", ":call QuickFixToggle()", { noremap = true, silent = true }) - --- Telescope stuff --- vim.api.nvim_set_keymap("n", "fb", "lua require'telescope.builtin'.buffers{}", { noremap = true, silent = true }) -- search open buffers --- vim.api.nvim_set_keymap("n", "fl", "lua require'telescope.builtin'.current_buffer_fuzzy_find{}", { noremap = true, silent = true }) -- search lines in current buffer --- vim.api.nvim_set_keymap("n", "gg", "lua require'telescope.builtin'.live_grep{}", { noremap = true, silent = true }) -- search all lines in project --- vim.api.nvim_set_keymap("n", "fr", "lua require'telescope.builtin'.lsp_references{}", { noremap = true, silent = true }) -- search references to symbol under cursor diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua index fcd5239..1f9e4a3 100644 --- a/.config/nvim/lua/plugins.lua +++ b/.config/nvim/lua/plugins.lua @@ -22,8 +22,6 @@ packer.init { }, } -vim.cmd "autocmd BufWritePost plugins.lua PackerCompile" - return require("packer").startup(function(use) -- Packer can manage itself as an optional plugin use "wbthomason/packer.nvim" @@ -38,7 +36,7 @@ return require("packer").startup(function(use) use { "nvim-telescope/telescope.nvim", config = [[require('cfg.telescope')]], - event = "BufEnter", + -- event = "BufEnter", } -- Autocomplete @@ -57,7 +55,13 @@ return require("packer").startup(function(use) use { "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" } -- Neoformat - use { "sbdchd/neoformat" } + use { + "sbdchd/neoformat", + config = function() + require "cfg.neoformat" + end, + event = "BufRead", + } use { "kyazdani42/nvim-tree.lua", @@ -71,7 +75,6 @@ return require("packer").startup(function(use) use { "lewis6991/gitsigns.nvim", - config = function() require("cfg.gitsigns").config() end, @@ -79,7 +82,13 @@ return require("packer").startup(function(use) } -- whichkey - use { "folke/which-key.nvim" } + use { + "folke/which-key.nvim", + config = function() + require "cfg.which-key" + end, + event = "BufWinEnter", + } -- Autopairs use { @@ -94,8 +103,7 @@ return require("packer").startup(function(use) -- Comments use { "terrortylor/nvim-comment", - event = "BufRead", - -- cmd = "CommentToggle", + event = "BufWinEnter", config = function() local status_ok, nvim_comment = pcall(require, "nvim_comment") if not status_ok then @@ -112,16 +120,20 @@ return require("packer").startup(function(use) use { "kyazdani42/nvim-web-devicons" } -- Status Line and Bufferline - use { "glepnir/galaxyline.nvim" } + use { + "glepnir/galaxyline.nvim", + config = function() + require "cfg.galaxyline" + end, + -- event = "VimEnter", + } use { "romgrk/barbar.nvim", config = function() - vim.api.nvim_set_keymap("n", "", ":BufferNext", { noremap = true, silent = true }) - vim.api.nvim_set_keymap("n", "", ":BufferPrevious", { noremap = true, silent = true }) - vim.api.nvim_set_keymap("n", "", ":BufferClose", { noremap = true, silent = true }) + require "cfg.barbar" end, - -- event = "BufRead", + event = "BufWinEnter", } -- Builtins, these do not load by default @@ -146,10 +158,9 @@ return require("packer").startup(function(use) use { "norcalli/nvim-colorizer.lua", - event = "BufRead", + event = "BufWinEnter", config = function() require "cfg.colorizer" - vim.cmd "ColorizerReloadAllBuffers" end, disable = not O.plugin.colorizer.active, } diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua index 371cdb0..914561d 100644 --- a/.config/nvim/lua/settings.lua +++ b/.config/nvim/lua/settings.lua @@ -21,40 +21,41 @@ vim.g.colors_name = O.colorscheme --- SETTINGS --- -opt.backup = false -- creates a backup file -opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard -opt.cmdheight = 2 -- more space in the neovim command line for displaying messages -opt.colorcolumn = "99999" -- fix indentline for now +opt.backup = false -- creates a backup file +opt.clipboard = O.clipboard -- allows neovim to access the system clipboard +opt.cmdheight = O.cmdheight -- more space in the neovim command line for displaying messages +opt.colorcolumn = "99999" -- fix indentline for now opt.completeopt = { "menuone", "noselect" } -opt.conceallevel = 0 -- so that `` is visible in markdown files -opt.fileencoding = "utf-8" -- the encoding written to a file -opt.guifont = "monospace:h17" -- the font used in graphical neovim applications -opt.hidden = O.hidden_files -- required to keep multiple buffers and open multiple buffers -opt.hlsearch = O.hl_search -- highlight all matches on previous search pattern -opt.ignorecase = O.ignore_case -- ignore case in search patterns -opt.mouse = "a" -- allow the mouse to be used in neovim -opt.pumheight = 10 -- pop up menu height -opt.showmode = false -- we don't need to see things like -- INSERT -- anymore -opt.showtabline = 2 -- always show tabs -opt.smartcase = O.smart_case -- smart case -opt.smartindent = true -- make indenting smarter again -opt.splitbelow = true -- force all horizontal splits to go below current window -opt.splitright = true -- force all vertical splits to go to the right of current window -opt.swapfile = false -- creates a swapfile -opt.termguicolors = true -- set term gui colors (most terminals support this) -opt.timeoutlen = O.timeoutlen -- time to wait for a mapped sequence to complete (in milliseconds) -opt.title = true -- set the title of window to the value of the titlestring -opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to -opt.undodir = CACHE_PATH .. "/undo" -- set an undo directory -opt.undofile = true -- enable persisten undo -opt.updatetime = 300 -- faster completion -opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited -opt.expandtab = true -- convert tabs to spaces -opt.shiftwidth = 4 -- the number of spaces inserted for each indentation +opt.conceallevel = 0 -- so that `` is visible in markdown files +opt.fileencoding = "utf-8" -- the encoding written to a file +opt.guifont = "monospace:h17" -- the font used in graphical neovim applications +opt.hidden = O.hidden_files -- required to keep multiple buffers and open multiple buffers +opt.hlsearch = O.hl_search -- highlight all matches on previous search pattern +opt.ignorecase = O.ignore_case -- ignore case in search patterns +opt.mouse = "a" -- allow the mouse to be used in neovim +opt.pumheight = 10 -- pop up menu height +opt.showmode = false -- we don't need to see things like -- INSERT -- anymore +opt.showtabline = 2 -- always show tabs +opt.smartcase = O.smart_case -- smart case +opt.smartindent = true -- make indenting smarter again +opt.splitbelow = true -- force all horizontal splits to go below current window +opt.splitright = true -- force all vertical splits to go to the right of current window +opt.swapfile = false -- creates a swapfile +opt.termguicolors = true -- set term gui colors (most terminals support this) +opt.timeoutlen = O.timeoutlen -- time to wait for a mapped sequence to complete (in milliseconds) +opt.title = true -- set the title of window to the value of the titlestring +opt.titlestring = "%<%F%=%l/%L - nvim" -- what the title of the window will be set to +opt.undodir = CACHE_PATH .. "/undo" -- set an undo directory +opt.undofile = true -- enable persisten undo +opt.updatetime = 300 -- faster completion +opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited +opt.expandtab = true -- convert tabs to spaces +opt.shiftwidth = 4 -- the number of spaces inserted for each indentation opt.shortmess:append "c" -opt.tabstop = 4 -- insert 4 spaces for a tab -opt.cursorline = O.cursorline -- highlight the current line -opt.number = O.number -- set numbered lines -opt.relativenumber = O.relative_number -- set relative numbered lines -opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time -opt.wrap = O.wrap_lines -- display lines as one long line +opt.tabstop = 4 -- insert 4 spaces for a tab +opt.cursorline = O.cursorline -- highlight the current line +opt.number = O.number -- set numbered lines +opt.relativenumber = O.relative_number -- set relative numbered lines +opt.numberwidth = O.number_width -- set number column width to 2 {default 4} +opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time +opt.wrap = O.wrap_lines -- display lines as one long line -- cgit v1.2.3-70-g09d2