aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-11-13 21:53:35 -0600
committerToby Vincent <tobyv@tobyvin.dev>2023-11-13 21:55:40 -0600
commit8912f25d49ddc03a9fdd9821462b5f66ba82e1b6 (patch)
tree61af5f2d32c92f4a7050cae103aca9cb3379e730
parent26e3e8701df5aa6924ce9fa311c0989afc5e96f4 (diff)
fix(nvim): improve texlab config and cleanup utils
-rw-r--r--nvim/.config/nvim/lua/plugins/conform.lua8
-rw-r--r--nvim/.config/nvim/lua/plugins/nvim-lint.lua29
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lazy.lua7
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua2
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/configs.lua21
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils.lua61
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils/session.lua19
7 files changed, 89 insertions, 58 deletions
diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua
index fc7eaf4..c75f458 100644
--- a/nvim/.config/nvim/lua/plugins/conform.lua
+++ b/nvim/.config/nvim/lua/plugins/conform.lua
@@ -13,6 +13,8 @@ local M = {
html = { "prettier" },
htmldjango = { "djlint" },
["jinja.html"] = { "djlint" },
+ tex = { "latexindent" },
+ plaintex = { "latexindent" },
markdown = { "prettier", "markdownlint", "cbfmt" },
python = { "black" },
sass = { "prettier" },
@@ -22,6 +24,12 @@ local M = {
["*"] = { "injected" },
},
formatters = {
+ latexindent = {
+ prepend_args = {
+ "-l",
+ ("%s/latexindent/indentconfig.yaml"):format(vim.env.XDG_CONFIG_HOME),
+ },
+ },
prettier = {
prepend_args = { "--prose-wrap", "always" },
},
diff --git a/nvim/.config/nvim/lua/plugins/nvim-lint.lua b/nvim/.config/nvim/lua/plugins/nvim-lint.lua
index 6e2a64c..afcd006 100644
--- a/nvim/.config/nvim/lua/plugins/nvim-lint.lua
+++ b/nvim/.config/nvim/lua/plugins/nvim-lint.lua
@@ -1,13 +1,3 @@
-local function find_config(filename)
- local config = unpack(vim.fs.find(filename, {
- path = vim.api.nvim_buf_get_name(0),
- upward = true,
- })) or ("%s/%s/%s"):format(vim.env.XDG_CONFIG_HOME, vim.fs.basename(filename), filename)
- if vim.fn.filereadable(config) == 1 then
- return config
- end
-end
-
local function try_lint()
local lint = require("lint")
local names = lint._resolve_linter_by_ft(vim.bo.filetype)
@@ -49,23 +39,26 @@ local M = {
markdownlint = {
prepend_args = {
"--config",
- function()
- return find_config("markdownlint.yaml")
- end,
+ ("%s/markdownlint/markdownlint.yaml"):format(vim.env.XDG_CONFIG_HOME),
},
- condition = function()
- return find_config("markdownlint.yaml")
- end,
},
selene = {
prepend_args = {
"--config",
function()
- return find_config("selene.toml")
+ return vim.fs.find("selene.toml", {
+ upward = true,
+ stop = vim.uv.os_homedir(),
+ path = vim.fs.dirname(vim.api.nvim_buf_get_name(0)),
+ })[1]
end,
},
condition = function()
- return find_config("selene.toml")
+ return vim.fs.find("selene.toml", {
+ upward = true,
+ stop = vim.uv.os_homedir(),
+ path = vim.fs.dirname(vim.api.nvim_buf_get_name(0)),
+ })[1]
end,
},
},
diff --git a/nvim/.config/nvim/lua/tobyvin/lazy.lua b/nvim/.config/nvim/lua/tobyvin/lazy.lua
index c3316e2..f270b8b 100644
--- a/nvim/.config/nvim/lua/tobyvin/lazy.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lazy.lua
@@ -25,13 +25,12 @@ require("lazy").setup("plugins", {
"tokyonight",
},
},
- checker = {
- enabled = true,
- notify = false,
- },
ui = {
border = "single",
},
+ change_detection = {
+ notify = false,
+ },
performance = {
rtp = {
disabled_plugins = {
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua b/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua
index 3d2d765..b6d1465 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua
@@ -43,7 +43,7 @@ local M = {
end, { buffer = bufnr, desc = "implementation" })
end,
["textDocument/inlayHint"] = function(bufnr)
- vim.lsp.inlay_hint(bufnr, true)
+ vim.lsp.inlay_hint.enable(bufnr, true)
end,
["textDocument/references"] = function(bufnr)
vim.keymap.set("n", "gr", function()
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua b/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua
index 36aaef6..85ca8fc 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua
@@ -159,25 +159,8 @@ local M = {
},
on_attach = function(_, bufnr)
vim.b[bufnr].tex_flavor = "latex"
- vim.wo.spell = true
-
- local preview_autocmd
- local augroup = vim.api.nvim_create_augroup("texlab", {})
-
- vim.api.nvim_create_user_command("TexlabPreview", function()
- preview_autocmd = vim.api.nvim_create_autocmd("CursorMoved", {
- group = augroup,
- command = "TexlabForward",
- })
-
- vim.cmd.TexlabForward()
- end, { desc = "Texlab preview start" })
-
- vim.api.nvim_create_user_command("TexlabPreviewStop", function()
- if preview_autocmd then
- vim.api.nvim_del_autocmd(preview_autocmd)
- end
- end, { desc = "Texlab preview stop" })
+ vim.wo[0][bufnr].spell = true
+ vim.keymap.set("n", "gx", vim.cmd.TexlabForward, { desc = "open in pdf" })
end,
},
tsserver = {},
diff --git a/nvim/.config/nvim/lua/tobyvin/utils.lua b/nvim/.config/nvim/lua/tobyvin/utils.lua
index 7a449f1..cf22c1e 100644
--- a/nvim/.config/nvim/lua/tobyvin/utils.lua
+++ b/nvim/.config/nvim/lua/tobyvin/utils.lua
@@ -2,6 +2,18 @@ local M = {
dashboard = require("tobyvin.utils.dashboard"),
session = require("tobyvin.utils.session"),
dap = require("tobyvin.utils.dap"),
+ sep = (function()
+ if jit then
+ local os = string.lower(jit.os)
+ if os ~= "windows" then
+ return "/"
+ else
+ return "\\"
+ end
+ else
+ return package.config:sub(1, 1)
+ end
+ end)(),
}
function M.inspect(v)
@@ -90,4 +102,53 @@ function M.extend_hl(ns, name, ...)
vim.api.nvim_set_hl(ns, name, hl)
end
+---@class stdpath
+---@field cache fun(...: string): string
+---@field config fun(...: string): string
+---@field config_dirs fun(...: string): string
+---@field data fun(...: string): string
+---@field data_dirs fun(...: string): string
+---@field log fun(...: string): string
+---@field run fun(...: string): string
+---@field state fun(...: string): string
+M.stdpath = setmetatable({}, {
+ __call = function(t, dir, ...)
+ return t[dir](...)
+ end,
+ __index = function(t, dir)
+ local value = vim.fn.stdpath(dir)
+ if not value or type(value) == "table" then
+ t[dir] = value
+ else
+ t[dir] = function(...)
+ return table.concat({ vim.fs.dirname(value), ... }, M.sep)
+ end
+ end
+
+ return t[dir]
+ end,
+})
+
+---Searches upward from <bufnr>'s name for <filename>. If not found, returns the first existing
+---fallback or nil if none exist
+---@param bufnr integer
+---@param filename string
+---@param ... string? fallback paths
+function M.find(bufnr, filename, ...)
+ local results = vim.fs.find(filename, {
+ upward = true,
+ stop = vim.uv.os_homedir(),
+ path = vim.fs.dirname(vim.api.nvim_buf_get_name(bufnr)),
+ })
+ vim.list_extend(results, { ... })
+
+ return vim.iter(results)
+ :map(function(f)
+ return f:starts("/") and f or ("%s/%s"):format(vim.fn.stdpath("config"), f)
+ end)
+ :find(function(f)
+ return vim.fn.filereadable(f) == 1
+ end)
+end
+
return M
diff --git a/nvim/.config/nvim/lua/tobyvin/utils/session.lua b/nvim/.config/nvim/lua/tobyvin/utils/session.lua
index 717f9f5..7246e23 100644
--- a/nvim/.config/nvim/lua/tobyvin/utils/session.lua
+++ b/nvim/.config/nvim/lua/tobyvin/utils/session.lua
@@ -1,32 +1,19 @@
local M = {}
-local sep = (function()
- if jit then
- local os = string.lower(jit.os)
- if os ~= "windows" then
- return "/"
- else
- return "\\"
- end
- else
- return package.config:sub(1, 1)
- end
-end)()
-
---@return string session_path
function M.path()
if vim.v.this_session and vim.v.this_session ~= "" then
return vim.v.this_session
end
- local session_dir = table.concat({ vim.fn.stdpath("data"), "session" }, sep)
- local name = vim.loop.cwd():gsub(":", "++"):gsub(sep, "%%"):gsub("$", ".vim")
+ local session_dir = table.concat({ vim.fn.stdpath("data"), "session" }, U.sep)
+ local name = vim.loop.cwd():gsub(":", "++"):gsub(U.sep, "%%"):gsub("$", ".vim")
if not name or name == "" then
error(("Invalid session name: '%s'"):format(name))
end
- return table.concat({ session_dir, name }, sep)
+ return table.concat({ session_dir, name }, U.sep)
end
function M.write()