Summary Files Commits Branches @commit @diff @stats
path: root / lua / plugins
diff options
context:
space:
mode:
3 files changed, 194 insertions, 132 deletions
-rw-r--r--lua/plugins/default.lua29
-rw-r--r--lua/plugins/heirline.lua270
-rw-r--r--lua/plugins/lsp-config.lua27
diff --git a/lua/plugins/default.lua b/lua/plugins/default.lua
new file mode 100644
index 0000000..742ef96
--- /dev/null
+++ b/lua/plugins/default.lua
@@ -0,0 +1,29 @@
+return {
+ {
+ "morhetz/gruvbox",
+ lazy = false,
+ priority = 1000,
+ init = function()
+ vim.o.background = "dark"
+ vim.g.gruvbox_contrast_dark = "hard"
+ end,
+ config = function()
+ vim.cmd("colorscheme gruvbox")
+ end,
+ },
+ {
+ "nvim-treesitter/nvim-treesitter",
+ build = ":TSUpdate",
+ opts = {
+ ensure_installed = "all",
+ ignore_install = { "liquidsoap", "norg", "tlaplus", "yaml" }, -- Can't compile
+ highlight = { enable = true },
+ incremental_selection = { enable = true },
+ textobjects = { enable = true },
+ },
+ config = function(_, opts)
+ require("nvim-treesitter.configs").setup(opts)
+ end,
+ },
+ { "nvim-tree/nvim-web-devicons", },
+}
diff --git a/lua/plugins/heirline.lua b/lua/plugins/heirline.lua
index 126066a..4e30553 100644
--- a/lua/plugins/heirline.lua
+++ b/lua/plugins/heirline.lua
@@ -1,159 +1,165 @@
-local utils = require("heirline.utils")
-local conditions = require("heirline.conditions")
+return {
+ "rebelot/heirline.nvim",
+ lazy = false,
+ opts = function()
+ local utils = require("heirline.utils")
+ local conditions = require("heirline.conditions")
---[=[ Helpers ]=]--
+ --[=[ Helpers ]=]--
-function inverseColors(highlight)
- if highlight == nil then return nil end
+ function inverseColors(highlight)
+ if highlight == nil then return nil end
- if type(highlight) == "string" then
- highlight = utils.get_highlight(highlight)
- end
+ if type(highlight) == "string" then
+ highlight = utils.get_highlight(highlight)
+ end
- highlight.cterm = { reverse = true }
- return highlight
-end
+ highlight.cterm = { reverse = true }
+ return highlight
+ end
-local delimiters = {
- FilledCircle = { "", "" },
- Circle = { "", "" },
-}
-local StatusLineColor = utils.get_highlight("StatusLine")
+ local delimiters = {
+ FilledCircle = { "", "" },
+ Circle = { "", "" },
+ }
+ local StatusLineColor = utils.get_highlight("StatusLine")
-function surround(delimiters, component)
- return {
- init = function(self)
- local highlight
- if component.hl ~= nil and type(component.hl) == "function" then
- if component.init ~= nil then
- component:init()
- end
- highlight = component:hl()
- else
- highlight = component.hl
- end
+ function surround(delimiters, component)
+ return {
+ init = function(self)
+ local highlight
+ if component.hl ~= nil and type(component.hl) == "function" then
+ if component.init ~= nil then
+ component:init()
+ end
+ highlight = component:hl()
+ else
+ highlight = component.hl
+ end
- self.inverse = inverseColors(highlight)
- self.inverse.ctermfg = StatusLineColor.ctermfg -- Actually sets bg, but both are reversed
- end,
+ self.inverse = inverseColors(highlight)
+ self.inverse.ctermfg = StatusLineColor.ctermfg -- Actually sets bg, but both are reversed
+ end,
- {
- condition = function() return conditions.is_active() end,
- provider = delimiters[1],
- hl = function(self) return self.inverse end,
- },
- component,
- {
- condition = function() return conditions.is_active() end,
- provider = delimiters[2],
- hl = function(self) return self.inverse end,
- },
+ {
+ condition = function() return conditions.is_active() end,
+ provider = delimiters[1],
+ hl = function(self) return self.inverse end,
+ },
+ component,
+ {
+ condition = function() return conditions.is_active() end,
+ provider = delimiters[2],
+ hl = function(self) return self.inverse end,
+ },
- update = { "BufEnter", "BufLeave" },
- }
-end
+ update = { "BufEnter", "BufLeave" },
+ }
+ end
---[=[ Common elements ]=]--
+ --[=[ Common elements ]=]--
-local FileStat = {
- {
- condition = function()
- return vim.bo.readonly
- end,
- provider = "",
- },
- {
- condition = function()
- return vim.bo.modified or not vim.bo.modifiable
- end,
- provider = function(self)
- local prepend = vim.bo.readonly and " " or ""
- if vim.bo.modified then return prepend.."" end
- if not vim.bo.modifiable then return prepend.."" end
- end,
- },
-}
+ local FileStat = {
+ {
+ condition = function()
+ return vim.bo.readonly
+ end,
+ provider = "",
+ },
+ {
+ condition = function()
+ return vim.bo.modified or not vim.bo.modifiable
+ end,
+ provider = function(self)
+ local prepend = vim.bo.readonly and " " or ""
+ if vim.bo.modified then return prepend.."" end
+ if not vim.bo.modifiable then return prepend.."" end
+ end,
+ },
+ }
-local FileType = {
- static = {
- get_icon = require("nvim-web-devicons").get_icon_by_filetype,
- },
- provider = function(self)
- local icon = self.get_icon(vim.bo.filetype)
- if icon ~= nil then icon = icon.." "
- else icon = ""
- end
- return icon..vim.bo.filetype
- end,
-}
+ local FileType = {
+ static = {
+ get_icon = require("nvim-web-devicons").get_icon_by_filetype,
+ },
+ provider = function(self)
+ local icon = self.get_icon(vim.bo.filetype)
+ if icon ~= nil then icon = icon.." "
+ else icon = ""
+ end
+ return icon..vim.bo.filetype
+ end,
+ }
-local Filename = { provider = "%f", }
-local Space = { provider = " ", }
+ local Filename = { provider = "%f", }
+ local Space = { provider = " ", }
---[=[ Statusline ]=]--
+ --[=[ Statusline ]=]--
-vim.cmd.highlight({ "ModeNormal", "ctermfg=236", "ctermbg=117" })
-vim.cmd.highlight({ "ModeInsert", "ctermfg=236", "ctermbg=119" })
-vim.cmd.highlight({ "ModeReplace", "ctermfg=236", "ctermbg=203" })
-vim.cmd.highlight({ "ModeVisual", "ctermfg=236", "ctermbg=216" })
+ vim.cmd.highlight({ "ModeNormal", "ctermfg=236", "ctermbg=117" })
+ vim.cmd.highlight({ "ModeInsert", "ctermfg=236", "ctermbg=119" })
+ vim.cmd.highlight({ "ModeReplace", "ctermfg=236", "ctermbg=203" })
+ vim.cmd.highlight({ "ModeVisual", "ctermfg=236", "ctermbg=216" })
-local Mode = surround(delimiters.FilledCircle, {
- init = function(self)
- self.modestr = vim.fn.mode(1)
- if self.modestr == "\22" then self.modestr = "V^"
- elseif self.modestr == "\22s" then self.modestr = "V^s"
- end
- end,
+ local Mode = surround(delimiters.FilledCircle, {
+ init = function(self)
+ self.modestr = vim.fn.mode(1)
+ if self.modestr == "\22" then self.modestr = "V^"
+ elseif self.modestr == "\22s" then self.modestr = "V^s"
+ end
+ end,
- provider = function(self)
- if not conditions.is_active() then return " " end
- return self.modestr
- end,
- hl = function(self)
- if not conditions.is_active() then return "StatusLineNC" end
+ provider = function(self)
+ if not conditions.is_active() then return " " end
+ return self.modestr
+ end,
+ hl = function(self)
+ if not conditions.is_active() then return "StatusLineNC" end
- local modeletter = self.modestr:sub(1,1):lower()
+ local modeletter = self.modestr:sub(1,1):lower()
- if modeletter == "i" then return "ModeInsert"
- elseif modeletter == "r" then return "ModeReplace"
- elseif modeletter == "v" then return "ModeVisual"
- end
+ if modeletter == "i" then return "ModeInsert"
+ elseif modeletter == "r" then return "ModeReplace"
+ elseif modeletter == "v" then return "ModeVisual"
+ end
- return "ModeNormal"
- end,
-})
+ return "ModeNormal"
+ end,
+ })
-vim.cmd.highlight({ "RowAndColumn", "ctermfg=238", "ctermbg=244" })
+ vim.cmd.highlight({ "RowAndColumn", "ctermfg=238", "ctermbg=244" })
-local LineAndColumn = surround(delimiters.FilledCircle, {
- provider = function(self)
- if not conditions.is_active() then
- local row,col = unpack(vim.api.nvim_win_get_cursor(0))
- return string.rep(" ", 1 + tostring(row):len() + tostring(col):len())
- end
- return "%l:%c"
- end,
- hl = function(self)
- if not conditions.is_active() then return "StatusLineNC" end
- return "RowAndColumn"
- end,
-})
+ local LineAndColumn = surround(delimiters.FilledCircle, {
+ provider = function(self)
+ if not conditions.is_active() then
+ local row,col = unpack(vim.api.nvim_win_get_cursor(0))
+ return string.rep(" ", 1 + tostring(row):len() + tostring(col):len())
+ end
+ return "%l:%c"
+ end,
+ hl = function(self)
+ if not conditions.is_active() then return "StatusLineNC" end
+ return "RowAndColumn"
+ end,
+ })
-local LeftShrink = { provider = "%<", }
-local LeftSep = { provider = " "..delimiters.Circle[2].." " }
-local RightSep = { provider = " "..delimiters.Circle[1].." " }
-local ExpandMiddle = { provider = "%=", }
-local CursorChar = { provider = "%b", }
+ local LeftShrink = { provider = "%<", }
+ local LeftSep = { provider = " "..delimiters.Circle[2].." " }
+ local RightSep = { provider = " "..delimiters.Circle[1].." " }
+ local ExpandMiddle = { provider = "%=", }
+ local CursorChar = { provider = "%b", }
-local StatusLine = {
- Mode, LeftShrink, Space, Filename, LeftSep, FileStat,
- ExpandMiddle,
- CursorChar, RightSep, FileType, Space, LineAndColumn
-}
+ local StatusLine = {
+ Mode, LeftShrink, Space, Filename, LeftSep, FileStat,
+ ExpandMiddle,
+ CursorChar, RightSep, FileType, Space, LineAndColumn
+ }
---[=[ Setup ]=]--
+ --[=[ Setup ]=]--
-require("heirline").setup({
- statusline = StatusLine,
-})
+ return {
+ statusline = StatusLine,
+ }
+ end,
+}
diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua
new file mode 100644
index 0000000..2ca9ac5
--- /dev/null
+++ b/lua/plugins/lsp-config.lua
@@ -0,0 +1,27 @@
+-- Thanks https://stackoverflow.com/a/70760302/12036073
+vim.o.updatetime = 300
+vim.diagnostic.config({
+ virtual_text = false,
+ float = { focus = false },
+})
+vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { callback = function(ev)
+ vim.diagnostic.open_float(nil)
+end})
+
+return {
+ {
+ "neovim/nvim-lspconfig",
+ enabled = false, -- Figure out config property
+ event = { "BufReadPre", "BufNewFile" },
+ -- dependencies = {
+ -- "mason.nvim",
+ -- { "williamboman/mason-lspconfig.nvim", config = function() end },
+ -- },
+ opts = {
+ servers = {
+ awk_ls = { settings = {}, },
+ },
+ },
+ setup = {},
+ },
+}