[nvim] format: tabstop=8 -> 4 for lua files
This commit is contained in:
parent
bc67eb8ffe
commit
d9e7f76a5f
@ -4,10 +4,10 @@
|
||||
-- Description : c settings file
|
||||
|
||||
|
||||
local opt = vim.opt
|
||||
local g = vim.g
|
||||
local opt = vim.opt
|
||||
local g = vim.g
|
||||
|
||||
opt.formatoptions = "trq1jp"
|
||||
opt.formatoptions = "trq1jp"
|
||||
|
||||
-- Snippets
|
||||
local ls = require("luasnip")
|
||||
@ -21,14 +21,14 @@ local f = ls.function_node
|
||||
local copy = utils.copy
|
||||
|
||||
ls.snippets = {
|
||||
c = {
|
||||
s("main", {
|
||||
t({ "int main(int argc, char* argv[])" }),
|
||||
t({ "", "{", "\t" }),
|
||||
i(0),
|
||||
t({ "", "\treturn 0;"}),
|
||||
t({ "", "}"}),
|
||||
}),
|
||||
c = {
|
||||
s("main", {
|
||||
t({ "int main(int argc, char* argv[])" }),
|
||||
t({ "", "{", "\t" }),
|
||||
i(0),
|
||||
t({ "", "\treturn 0;"}),
|
||||
t({ "", "}"}),
|
||||
}),
|
||||
s("fn", {
|
||||
-- Simple static text.
|
||||
t("//Parameters: "),
|
||||
@ -43,9 +43,9 @@ ls.snippets = {
|
||||
i(2, "int foo"),
|
||||
-- Linebreak
|
||||
t({ ")", "{", "\t" }),
|
||||
i(0),
|
||||
t({ "", "\treturn 0;"}),
|
||||
t({ "", "}"}),
|
||||
}),
|
||||
i(0),
|
||||
t({ "", "\treturn 0;"}),
|
||||
t({ "", "}"}),
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
@ -6,4 +6,5 @@
|
||||
local opt = vim.opt
|
||||
local g = vim.g
|
||||
|
||||
opt.formatoptions = "trq1jp"
|
||||
opt.formatoptions = "trq1jp"
|
||||
opt.tabstop = 4
|
||||
|
@ -4,11 +4,10 @@
|
||||
-- Description : tex filetype config
|
||||
|
||||
|
||||
local opt = vim.opt
|
||||
local g = vim.g
|
||||
local opt = vim.opt
|
||||
|
||||
opt.formatoptions = "trq1jp"
|
||||
opt.tabstop = 4
|
||||
opt.formatoptions = "trq1jp"
|
||||
opt.tabstop = 4
|
||||
|
||||
-- Caps
|
||||
utils.map("i", "AA", "À")
|
||||
@ -23,15 +22,15 @@ utils.map("i", "<Space>:", "\\,:")
|
||||
local ls = require("luasnip")
|
||||
|
||||
-- some shorthands...
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local t = ls.text_node
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local d = ls.dynamic_node
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local t = ls.text_node
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local d = ls.dynamic_node
|
||||
|
||||
local copy = utils.copy
|
||||
local copy = utils.copy
|
||||
|
||||
-- 'recursive' dynamic snippet. Expands to some text followed by itself.
|
||||
local function rec_ls()
|
||||
@ -46,85 +45,85 @@ local function rec_ls()
|
||||
end
|
||||
|
||||
ls.snippets = {
|
||||
tex = {
|
||||
-- rec_ls is self-referencing. That makes this snippet 'infinite' eg. have as many
|
||||
-- \item as necessary by utilizing a choiceNode.
|
||||
s("ls", {
|
||||
t({ "\\begin{itemize}", "\t\\item " }),
|
||||
i(1),
|
||||
t({ "" }),
|
||||
d(2, rec_ls, {}),
|
||||
t({ "", "\\end{itemize}", "" }),
|
||||
}),
|
||||
s("lsl", {
|
||||
t({ "\\begin{itemize}[label=" }),
|
||||
i(1),
|
||||
t( { "]", "\t\\item " }),
|
||||
i(2),
|
||||
t({ "" }),
|
||||
d(3, rec_ls, {}),
|
||||
t({ "", "\\end{itemize}", "" }),
|
||||
}),
|
||||
s("frm", {
|
||||
t({ "\\begin{" }),
|
||||
i(1),
|
||||
t({ "}[" }),
|
||||
i(2),
|
||||
t({ "]{" }),
|
||||
f(copy, 1),
|
||||
t({ ":" }),
|
||||
i(3, "foo"),
|
||||
t({ "}", "\t" }),
|
||||
i(0),
|
||||
t({ "", "\\end{" }),
|
||||
f(copy, 1),
|
||||
t({ "}", "" }),
|
||||
}),
|
||||
s("env", {
|
||||
t({ "\\begin{" }),
|
||||
i(1, "foo"),
|
||||
t({ "}", "\t" }),
|
||||
i(2),
|
||||
t({ "", "\\end{" }),
|
||||
f(copy,1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("tikz", {
|
||||
t({ "\\begin{center}" }),
|
||||
t({ "", "\t\\begin{tikzpicture}[main/.style = {draw,circle}]", "\t\t" }),
|
||||
i(1),
|
||||
t({ "", "\t\\end{tikzpicture}", "\\end{center}" }),
|
||||
}),
|
||||
s("ra", { t( "\\rightarrow" )}),
|
||||
s("Ra", { t("\\Rightarrow" )}),
|
||||
s("la", { t("\\leftarrow" )}),
|
||||
s("La", { t("\\Leftarrow" )}),
|
||||
s("lra", { t("\\leftrightarrow" )}),
|
||||
s("Lra", { t("\\Leftrightarrow" )}),
|
||||
s("bb", {
|
||||
t({ "\\textbf{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("tt", {
|
||||
t({ "\\texttt{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("ii", {
|
||||
t({ "\\textit{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("uu", {
|
||||
t({ "\\underline{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("fsc", {
|
||||
t({ "\\textsc{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
},
|
||||
tex = {
|
||||
-- rec_ls is self-referencing. That makes this snippet 'infinite' eg. have as many
|
||||
-- \item as necessary by utilizing a choiceNode.
|
||||
s("ls", {
|
||||
t({ "\\begin{itemize}", "\t\\item " }),
|
||||
i(1),
|
||||
t({ "" }),
|
||||
d(2, rec_ls, {}),
|
||||
t({ "", "\\end{itemize}", "" }),
|
||||
}),
|
||||
s("lsl", {
|
||||
t({ "\\begin{itemize}[label=" }),
|
||||
i(1),
|
||||
t( { "]", "\t\\item " }),
|
||||
i(2),
|
||||
t({ "" }),
|
||||
d(3, rec_ls, {}),
|
||||
t({ "", "\\end{itemize}", "" }),
|
||||
}),
|
||||
s("frm", {
|
||||
t({ "\\begin{" }),
|
||||
i(1),
|
||||
t({ "}[" }),
|
||||
i(2),
|
||||
t({ "]{" }),
|
||||
f(copy, 1),
|
||||
t({ ":" }),
|
||||
i(3, "foo"),
|
||||
t({ "}", "\t" }),
|
||||
i(0),
|
||||
t({ "", "\\end{" }),
|
||||
f(copy, 1),
|
||||
t({ "}", "" }),
|
||||
}),
|
||||
s("env", {
|
||||
t({ "\\begin{" }),
|
||||
i(1, "foo"),
|
||||
t({ "}", "\t" }),
|
||||
i(2),
|
||||
t({ "", "\\end{" }),
|
||||
f(copy,1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("tikz", {
|
||||
t({ "\\begin{center}" }),
|
||||
t({ "", "\t\\begin{tikzpicture}[main/.style = {draw,circle}]", "\t\t" }),
|
||||
i(1),
|
||||
t({ "", "\t\\end{tikzpicture}", "\\end{center}" }),
|
||||
}),
|
||||
s("ra", { t( "\\rightarrow" )}),
|
||||
s("Ra", { t("\\Rightarrow" )}),
|
||||
s("la", { t("\\leftarrow" )}),
|
||||
s("La", { t("\\Leftarrow" )}),
|
||||
s("lra", { t("\\leftrightarrow" )}),
|
||||
s("Lra", { t("\\Leftrightarrow" )}),
|
||||
s("bb", {
|
||||
t({ "\\textbf{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("tt", {
|
||||
t({ "\\texttt{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("ii", {
|
||||
t({ "\\textit{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("uu", {
|
||||
t({ "\\underline{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
s("fsc", {
|
||||
t({ "\\textsc{" }),
|
||||
i(1),
|
||||
t({ "}"}),
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
@ -9,5 +9,5 @@ local file = os.getenv("XDG_STATE_HOME") .. "/nvim_colorscheme"
|
||||
local colorscheme = utils.lines_from(file)[0]
|
||||
|
||||
require("astronomy").setup {
|
||||
variant = colorscheme,
|
||||
variant = colorscheme,
|
||||
}
|
||||
|
@ -6,13 +6,11 @@
|
||||
local M = {} -- The module to export
|
||||
|
||||
M = {
|
||||
lsp_path = vim.fn.stdpath("data").. "/lsp",
|
||||
|
||||
-- misc
|
||||
sign_error = "",
|
||||
sign_warning = "",
|
||||
sign_hint = "",
|
||||
sign_info = "",
|
||||
-- misc
|
||||
sign_error = "",
|
||||
sign_warning = "",
|
||||
sign_hint = "",
|
||||
sign_info = "",
|
||||
}
|
||||
|
||||
-- Make it accessible everywhere
|
||||
|
@ -8,9 +8,9 @@ vim.g.mapleader = " "
|
||||
|
||||
-- Dealing with word wrap
|
||||
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'",
|
||||
{ expr = true, silent = true })
|
||||
{ expr = true, silent = true })
|
||||
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'",
|
||||
{ expr = true, silent = true })
|
||||
{ expr = true, silent = true })
|
||||
|
||||
vim.keymap.set("n", "<leader>y", "\"+y")
|
||||
vim.keymap.set("n", "<leader>p", "\"+P")
|
||||
@ -19,14 +19,15 @@ vim.keymap.set("n", "<leader>u", function() require("packer").sync() end)
|
||||
|
||||
-- telescope
|
||||
vim.keymap.set("n", "<leader>ff",
|
||||
function() require("telescope.builtin").find_files() end)
|
||||
function() require("telescope.builtin").find_files() end)
|
||||
vim.keymap.set("n", "<leader>fb",
|
||||
function() require("telescope.builtin").buffers() end)
|
||||
function() require("telescope.builtin").buffers() end)
|
||||
vim.keymap.set("n", "<leader>fl",
|
||||
function() require("telescope.builtin").live_grep() end)
|
||||
function() require("telescope.builtin").live_grep() end)
|
||||
|
||||
-- colorscheme
|
||||
vim.keymap.set("n", "<C-s>", function() require("astronomy").toggle_variant() end)
|
||||
vim.keymap.set("n", "<C-s>",
|
||||
function() require("astronomy").toggle_variant() end)
|
||||
|
||||
-- snippets
|
||||
vim.keymap.set({ "i", "s" }, "<C-E>", "<Plug>luasnip-next-choice")
|
||||
|
@ -8,76 +8,76 @@ local luasnip = require("luasnip")
|
||||
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||
|
||||
local check_backspace = function()
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and
|
||||
vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:
|
||||
sub(col, col):match('%s') == nil
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and
|
||||
vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:
|
||||
sub(col, col):match('%s') == nil
|
||||
end
|
||||
|
||||
-- If you want insert `(` after select function or method item
|
||||
cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } }))
|
||||
|
||||
cmp.setup {
|
||||
completion = {
|
||||
autocomplete = false
|
||||
},
|
||||
sources = {
|
||||
{ name = "path" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "buffer" },
|
||||
{ name = "nvim_lua" },
|
||||
{ name = "calc" },
|
||||
{ name = "spell" },
|
||||
{ name = "treesitter" },
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
vim_item.menu = ({
|
||||
nvim_lsp = "[lsp]",
|
||||
nvim_lua = "[nvim]",
|
||||
luasnip = "[snip]",
|
||||
path = "[path]",
|
||||
buffer = "[buff]",
|
||||
calc = "[calc]",
|
||||
spell = "[spel]",
|
||||
treesitter = "[tree]",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-e>"] = cmp.mapping.close(),
|
||||
["<CR>"] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
}),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif check_backspace() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = 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" }),
|
||||
}
|
||||
completion = {
|
||||
autocomplete = false
|
||||
},
|
||||
sources = {
|
||||
{ name = "path" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "buffer" },
|
||||
{ name = "nvim_lua" },
|
||||
{ name = "calc" },
|
||||
{ name = "spell" },
|
||||
{ name = "treesitter" },
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
vim_item.menu = ({
|
||||
nvim_lsp = "[lsp]",
|
||||
nvim_lua = "[nvim]",
|
||||
luasnip = "[snip]",
|
||||
path = "[path]",
|
||||
buffer = "[buff]",
|
||||
calc = "[calc]",
|
||||
spell = "[spel]",
|
||||
treesitter = "[tree]",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-e>"] = cmp.mapping.close(),
|
||||
["<CR>"] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
}),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif check_backspace() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = 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" }),
|
||||
}
|
||||
}
|
||||
|
@ -6,72 +6,72 @@
|
||||
local M = {}
|
||||
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignError",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextError",
|
||||
text = globals.sign_error,
|
||||
numhl = "DiagnosticSignError"
|
||||
}
|
||||
"DiagnosticSignError",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextError",
|
||||
text = globals.sign_error,
|
||||
numhl = "DiagnosticSignError"
|
||||
}
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignWarn",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextWarn",
|
||||
text = globals.sign_warning,
|
||||
numhl = "DiagnosticSignWarn"
|
||||
}
|
||||
"DiagnosticSignWarn",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextWarn",
|
||||
text = globals.sign_warning,
|
||||
numhl = "DiagnosticSignWarn"
|
||||
}
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignHint",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextHint",
|
||||
text = globals.sign_hint,
|
||||
numhl = "DiagnosticSignHint"
|
||||
}
|
||||
"DiagnosticSignHint",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextHint",
|
||||
text = globals.sign_hint,
|
||||
numhl = "DiagnosticSignHint"
|
||||
}
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignInfo",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextInfo",
|
||||
text = globals.sign_info,
|
||||
numhl = "DiagnosticSignInfo"
|
||||
}
|
||||
"DiagnosticSignInfo",
|
||||
{
|
||||
texthl = "DiagnosticVirtualTextInfo",
|
||||
text = globals.sign_info,
|
||||
numhl = "DiagnosticSignInfo"
|
||||
}
|
||||
)
|
||||
|
||||
M.icons = {
|
||||
Class = " ",
|
||||
Color = " ",
|
||||
Constant = " µ ",
|
||||
Constructor = " ",
|
||||
Enum = " ",
|
||||
EnumMember = " ",
|
||||
Event = " ",
|
||||
Field = " ",
|
||||
File = " ",
|
||||
Folder = " ",
|
||||
Function = " ",
|
||||
Keyword = " ",
|
||||
Interface = " ",
|
||||
Method = " ",
|
||||
Module = " ",
|
||||
Operator = " ",
|
||||
Property = " ",
|
||||
Reference = " ",
|
||||
Snippet = " ",
|
||||
Struct = " ",
|
||||
Text = " ",
|
||||
TypeParameter = " ",
|
||||
Unit = " ",
|
||||
Value = " ",
|
||||
Variable = " ",
|
||||
Class = " ",
|
||||
Color = " ",
|
||||
Constant = " µ ",
|
||||
Constructor = " ",
|
||||
Enum = " ",
|
||||
EnumMember = " ",
|
||||
Event = " ",
|
||||
Field = " ",
|
||||
File = " ",
|
||||
Folder = " ",
|
||||
Function = " ",
|
||||
Keyword = " ",
|
||||
Interface = " ",
|
||||
Method = " ",
|
||||
Module = " ",
|
||||
Operator = " ",
|
||||
Property = " ",
|
||||
Reference = " ",
|
||||
Snippet = " ",
|
||||
Struct = " ",
|
||||
Text = " ",
|
||||
TypeParameter = " ",
|
||||
Unit = " ",
|
||||
Value = " ",
|
||||
Variable = " ",
|
||||
}
|
||||
|
||||
|
||||
function M.setup()
|
||||
local kinds = vim.lsp.protocol.CompletionItemKind
|
||||
for i, kind in ipairs(kinds) do
|
||||
kinds[i] = M.icons[kind] or kind
|
||||
end
|
||||
local kinds = vim.lsp.protocol.CompletionItemKind
|
||||
for i, kind in ipairs(kinds) do
|
||||
kinds[i] = M.icons[kind] or kind
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
@ -41,70 +41,72 @@ table.insert(runtime_path, "lua/?.lua")
|
||||
table.insert(runtime_path, "lua/?/init.lua")
|
||||
|
||||
local enhance_server_opts = {
|
||||
["clangd"] = function(opts)
|
||||
opts.settings = {
|
||||
cmd = { clangd_binary,
|
||||
"--background-index",
|
||||
"--suggest-missing-includes",
|
||||
"--clang-tidy",
|
||||
"--header-insertion=iwyu"
|
||||
},
|
||||
}
|
||||
end,
|
||||
["sumneko_lua"] = function(opts)
|
||||
opts.settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
||||
version = 'LuaJIT',
|
||||
-- Setup your lua path
|
||||
path = runtime_path,
|
||||
},
|
||||
diagnostics = {
|
||||
-- Get the language server to recognize the `vim` global
|
||||
globals = {
|
||||
"vim",
|
||||
"globals",
|
||||
"utils"
|
||||
},
|
||||
},
|
||||
workspace = {
|
||||
-- Make the server aware of Neovim runtime files
|
||||
library =
|
||||
vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
-- Do not send telemetry data containing a randomized but unique identifier
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
["clangd"] = function(opts)
|
||||
opts.settings = {
|
||||
cmd = { clangd_binary,
|
||||
"--background-index",
|
||||
"--suggest-missing-includes",
|
||||
"--clang-tidy",
|
||||
"--header-insertion=iwyu"
|
||||
},
|
||||
}
|
||||
end,
|
||||
["sumneko_lua"] = function(opts)
|
||||
opts.settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
-- Tell the language server which version of Lua you're
|
||||
-- using (most likely LuaJIT in the case of Neovim)
|
||||
version = 'LuaJIT',
|
||||
-- Setup your lua path
|
||||
path = runtime_path,
|
||||
},
|
||||
diagnostics = {
|
||||
-- Get the language server to recognize the `vim` global
|
||||
globals = {
|
||||
"vim",
|
||||
"globals",
|
||||
"utils"
|
||||
},
|
||||
},
|
||||
workspace = {
|
||||
-- Make the server aware of Neovim runtime files
|
||||
library =
|
||||
vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
-- Do not send telemetry data containing a randomized but
|
||||
-- unique identifier
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
local on_attach = function(_, bufnr)
|
||||
local opts = { buffer = bufnr }
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
|
||||
vim.keymap.set("n", "<leader>ln", vim.diagnostic.goto_next, opts)
|
||||
vim.keymap.set("n", "<leader>lp", vim.diagnostic.goto_prev, opts)
|
||||
vim.keymap.set("n", "<leader>lf", vim.lsp.buf.formatting, opts)
|
||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
|
||||
vim.keymap.set("n", "<leader>wa",
|
||||
vim.lsp.buf.add_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<leader>wr",
|
||||
vim.lsp.buf.remove_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<leader>wl", function()
|
||||
vim.inspect(vim.lsp.buf.list_workspace_folders())
|
||||
end, opts)
|
||||
vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, opts)
|
||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||
vim.keymap.set("n", "<leader>so",
|
||||
require("telescope.builtin").lsp_document_symbols, opts)
|
||||
local opts = { buffer = bufnr }
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
|
||||
vim.keymap.set("n", "<leader>ln", vim.diagnostic.goto_next, opts)
|
||||
vim.keymap.set("n", "<leader>lp", vim.diagnostic.goto_prev, opts)
|
||||
vim.keymap.set("n", "<leader>lf", vim.lsp.buf.formatting, opts)
|
||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
|
||||
vim.keymap.set("n", "<leader>wa",
|
||||
vim.lsp.buf.add_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<leader>wr",
|
||||
vim.lsp.buf.remove_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<leader>wl", function()
|
||||
vim.inspect(vim.lsp.buf.list_workspace_folders())
|
||||
end, opts)
|
||||
vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, opts)
|
||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||
vim.keymap.set("n", "<leader>so",
|
||||
require("telescope.builtin").lsp_document_symbols, opts)
|
||||
end
|
||||
|
||||
-- nvim-cmp supports additional completion capabilities
|
||||
@ -112,16 +114,16 @@ local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)
|
||||
|
||||
lsp_installer.on_server_ready(function(server)
|
||||
-- Specify the default options which we'll use to setup all servers
|
||||
local opts = {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
}
|
||||
-- Specify the default options which we'll use to setup all servers
|
||||
local opts = {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
if enhance_server_opts[server.name] then
|
||||
-- Enhance the default opts with the server-specific ones
|
||||
enhance_server_opts[server.name](opts)
|
||||
end
|
||||
if enhance_server_opts[server.name] then
|
||||
-- Enhance the default opts with the server-specific ones
|
||||
enhance_server_opts[server.name](opts)
|
||||
end
|
||||
|
||||
server:setup(opts)
|
||||
server:setup(opts)
|
||||
end)
|
||||
|
@ -6,98 +6,99 @@
|
||||
|
||||
local install_path = vim.fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
|
||||
print("Cloning packer...")
|
||||
PACKER_BOOTSTRAP = vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--depth",
|
||||
"1",
|
||||
"https://github.com/wbthomason/packer.nvim",
|
||||
install_path,
|
||||
})
|
||||
vim.cmd([[packadd packer.nvim]])
|
||||
print("Done.")
|
||||
print("Cloning packer...")
|
||||
PACKER_BOOTSTRAP = vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--depth",
|
||||
"1",
|
||||
"https://github.com/wbthomason/packer.nvim",
|
||||
install_path,
|
||||
})
|
||||
vim.cmd([[packadd packer.nvim]])
|
||||
print("Done.")
|
||||
end
|
||||
|
||||
local use = require("packer").use
|
||||
|
||||
return require("packer").startup(function()
|
||||
-- packer manages itself
|
||||
use "wbthomason/packer.nvim"
|
||||
-- packer manages itself
|
||||
use "wbthomason/packer.nvim"
|
||||
|
||||
-- colorscheme
|
||||
use {
|
||||
"~/.local/src/astronomy.nvim",
|
||||
config = function() require("colorscheme") end
|
||||
}
|
||||
-- colorscheme
|
||||
use {
|
||||
"~/.local/src/astronomy.nvim",
|
||||
config = function() require("colorscheme") end
|
||||
}
|
||||
|
||||
-- tree-sitter
|
||||
use {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
run = ":TSUpdate",
|
||||
config = function() require("plugin.treesitter") end
|
||||
}
|
||||
-- tree-sitter
|
||||
use {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
run = ":TSUpdate",
|
||||
config = function() require("plugin.treesitter") end
|
||||
}
|
||||
|
||||
-- fuzzy finder
|
||||
use {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
requires = {
|
||||
{
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
{'nvim-telescope/telescope-fzf-native.nvim',
|
||||
run = 'make'
|
||||
}
|
||||
},
|
||||
}
|
||||
-- fuzzy finder
|
||||
use {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
requires = {
|
||||
{
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
run = "make"
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
-- LSP
|
||||
use {
|
||||
"williamboman/nvim-lsp-installer",
|
||||
requires = {
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require("plugin.lsp_config").setup() end
|
||||
},
|
||||
config = function() require("plugin.lsp_installer") end
|
||||
}
|
||||
-- LSP
|
||||
use {
|
||||
"williamboman/nvim-lsp-installer",
|
||||
requires = {
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require("plugin.lsp_config").setup() end
|
||||
},
|
||||
config = function() require("plugin.lsp_installer") end
|
||||
}
|
||||
|
||||
-- auto completion
|
||||
use {
|
||||
"hrsh7th/nvim-cmp",
|
||||
requires = {
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
config = function()
|
||||
require("plugin.luasnip") end
|
||||
},
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-calc",
|
||||
"ray-x/cmp-treesitter",
|
||||
"f3fora/cmp-spell",
|
||||
},
|
||||
config = function() require("plugin.cmp") end
|
||||
}
|
||||
-- auto completion
|
||||
use {
|
||||
"hrsh7th/nvim-cmp",
|
||||
requires = {
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
config = function()
|
||||
require("plugin.luasnip") end
|
||||
},
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-calc",
|
||||
"ray-x/cmp-treesitter",
|
||||
"f3fora/cmp-spell",
|
||||
},
|
||||
config = function() require("plugin.cmp") end
|
||||
}
|
||||
|
||||
-- commenting, simplified
|
||||
use {
|
||||
"numToStr/Comment.nvim",
|
||||
config = function() require("plugin.comment") end
|
||||
}
|
||||
-- commenting, simplified
|
||||
use {
|
||||
"numToStr/Comment.nvim",
|
||||
config = function() require("plugin.comment") end
|
||||
}
|
||||
|
||||
-- autopairs
|
||||
use {
|
||||
"windwp/nvim-autopairs",
|
||||
config = function() require('nvim-autopairs').setup() end
|
||||
}
|
||||
-- autopairs
|
||||
use {
|
||||
"windwp/nvim-autopairs",
|
||||
config = function() require("nvim-autopairs").setup() end
|
||||
}
|
||||
|
||||
|
||||
-- automatically setup the config after cloning
|
||||
if PACKER_BOOTSTRAP then
|
||||
require("packer").sync()
|
||||
end
|
||||
-- automatically setup the config after cloning
|
||||
if PACKER_BOOTSTRAP then
|
||||
require("packer").sync()
|
||||
end
|
||||
end)
|
||||
|
@ -4,12 +4,12 @@
|
||||
-- Description : treesitter config file
|
||||
|
||||
require("nvim-treesitter.configs").setup {
|
||||
ensure_installed = { "c", "lua", "python", "bash" },
|
||||
ignore_install = { "javascript" },
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
ensure_installed = { "c", "lua", "python", "bash" },
|
||||
ignore_install = { "javascript" },
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ local opt = vim.opt
|
||||
local g = vim.g
|
||||
|
||||
-- general
|
||||
opt.wildignore = {
|
||||
opt.wildignore = {
|
||||
".git",
|
||||
"*.o", "*.class",
|
||||
"*.jpg", "*.jpeg", "*.png",
|
||||
@ -18,41 +18,41 @@ opt.wildmode = { "longest", "full" }
|
||||
opt.wildoptions = "pum"
|
||||
|
||||
-- editor
|
||||
opt.lazyredraw = true
|
||||
opt.splitright = true
|
||||
opt.splitbelow = true
|
||||
opt.scrolloff = 4
|
||||
opt.termguicolors = true
|
||||
opt.background = "dark"
|
||||
opt.cursorline = true
|
||||
opt.shortmess = opt.shortmess:append { c = true }
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
opt.signcolumn = "yes"
|
||||
opt.listchars = {
|
||||
tab = "<->",
|
||||
nbsp = "␣",
|
||||
trail = "·",
|
||||
extends = ">",
|
||||
precedes = "<",
|
||||
opt.lazyredraw = true
|
||||
opt.splitright = true
|
||||
opt.splitbelow = true
|
||||
opt.scrolloff = 4
|
||||
opt.termguicolors = true
|
||||
opt.background = "dark"
|
||||
opt.cursorline = true
|
||||
opt.shortmess = opt.shortmess:append { c = true }
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
opt.signcolumn = "yes"
|
||||
opt.listchars = {
|
||||
tab = "<->",
|
||||
nbsp = "␣",
|
||||
trail = "·",
|
||||
extends = ">",
|
||||
precedes = "<",
|
||||
}
|
||||
opt.showmatch = true
|
||||
opt.ignorecase = true
|
||||
opt.smartcase = true
|
||||
opt.inccommand = "split"
|
||||
opt.completeopt = { "menuone", "noselect" }
|
||||
opt.showmatch = true
|
||||
opt.ignorecase = true
|
||||
opt.smartcase = true
|
||||
opt.inccommand = "split"
|
||||
opt.completeopt = { "menuone", "noselect" }
|
||||
|
||||
-- statusline
|
||||
opt.laststatus = 2
|
||||
opt.showmode = false
|
||||
opt.laststatus = 2
|
||||
opt.showmode = false
|
||||
|
||||
-- text, tabs, indents
|
||||
opt.textwidth = 79
|
||||
opt.shiftwidth = 8
|
||||
opt.softtabstop = -1
|
||||
opt.expandtab = true
|
||||
opt.shiftwidth = 0
|
||||
opt.backspace = { "indent", "eol", "start" }
|
||||
opt.textwidth = 79
|
||||
opt.shiftwidth = 8
|
||||
opt.softtabstop = -1
|
||||
opt.expandtab = true
|
||||
opt.shiftwidth = 0
|
||||
opt.backspace = { "indent", "eol", "start" }
|
||||
|
||||
-- augroups
|
||||
utils.create_augroup({
|
||||
|
@ -6,204 +6,204 @@
|
||||
|
||||
|
||||
local function gen_section(hl_string, items)
|
||||
local out = ""
|
||||
for _, item in pairs(items) do
|
||||
if item ~= "" then
|
||||
out = out .. " " .. item
|
||||
end
|
||||
end
|
||||
if out ~="" then
|
||||
return hl_string .. out .. " "
|
||||
else
|
||||
return out
|
||||
local out = ""
|
||||
for _, item in pairs(items) do
|
||||
if item ~= "" then
|
||||
out = out .. " " .. item
|
||||
end
|
||||
end
|
||||
if out ~="" then
|
||||
return hl_string .. out .. " "
|
||||
else
|
||||
return out
|
||||
end
|
||||
end
|
||||
|
||||
-- sensible names for vim modes
|
||||
local function get_mode(m)
|
||||
local mode_group = {
|
||||
["n"] = "Normal",
|
||||
["no"] = "O-Pending",
|
||||
["nov"] = "O-Pending",
|
||||
["noV"] = "O-Pending",
|
||||
["no"] = "O-Pending",
|
||||
["niI"] = "Normal",
|
||||
["niR"] = "Normal",
|
||||
["niV"] = "Normal",
|
||||
["v"] = "Visual",
|
||||
["V"] = "V-Line",
|
||||
[""] = "V-Block",
|
||||
["s"] = "Select",
|
||||
["S"] = "S-Line",
|
||||
[""] = "S-Block",
|
||||
["i"] = "Insert",
|
||||
["ic"] = "Insert",
|
||||
["ix"] = "Insert",
|
||||
["R"] = "Replace",
|
||||
["Rc"] = "Replace",
|
||||
["Rv"] = "V-Replace",
|
||||
["Rx"] = "Replace",
|
||||
["c"] = "Command",
|
||||
["cv"] = "Ex",
|
||||
["ce"] = "Ex",
|
||||
["r"] = "Prompt",
|
||||
["rm"] = "Prompt",
|
||||
["r?"] = "Prompt",
|
||||
["!"] = "Shell",
|
||||
["t"] = "Terminal",
|
||||
}
|
||||
return mode_group[m] or "None"
|
||||
local mode_group = {
|
||||
["n"] = "Normal",
|
||||
["no"] = "O-Pending",
|
||||
["nov"] = "O-Pending",
|
||||
["noV"] = "O-Pending",
|
||||
["no"] = "O-Pending",
|
||||
["niI"] = "Normal",
|
||||
["niR"] = "Normal",
|
||||
["niV"] = "Normal",
|
||||
["v"] = "Visual",
|
||||
["V"] = "V-Line",
|
||||
[""] = "V-Block",
|
||||
["s"] = "Select",
|
||||
["S"] = "S-Line",
|
||||
[""] = "S-Block",
|
||||
["i"] = "Insert",
|
||||
["ic"] = "Insert",
|
||||
["ix"] = "Insert",
|
||||
["R"] = "Replace",
|
||||
["Rc"] = "Replace",
|
||||
["Rv"] = "V-Replace",
|
||||
["Rx"] = "Replace",
|
||||
["c"] = "Command",
|
||||
["cv"] = "Ex",
|
||||
["ce"] = "Ex",
|
||||
["r"] = "Prompt",
|
||||
["rm"] = "Prompt",
|
||||
["r?"] = "Prompt",
|
||||
["!"] = "Shell",
|
||||
["t"] = "Terminal",
|
||||
}
|
||||
return mode_group[m] or "None"
|
||||
end
|
||||
|
||||
local function get_mode_display_name(m)
|
||||
local mode = {
|
||||
["Normal"] = "[ NRM ]",
|
||||
["O-Pending"] = "[ OTR ]",
|
||||
["Visual"] = "[ VSL ]",
|
||||
["V-Line"] = "[ V·L ]",
|
||||
["V-Block"] = "[ V·B ]",
|
||||
["Select"] = "[ SEL ]",
|
||||
["S-Line"] = "[ S·L ]",
|
||||
["S-Block"] = "[ S·B ]",
|
||||
["Insert"] = "[ INS ]",
|
||||
["Replace"] = "[ RPL ]",
|
||||
["Command"] = "[ CMD ]",
|
||||
["Prompt"] = "[ PMT ]",
|
||||
["Shell"] = "[ SHL ]",
|
||||
["Terminal"] = "[ TRM ]",
|
||||
["None"] = "[ --- ]"
|
||||
}
|
||||
return mode[m]
|
||||
local mode = {
|
||||
["Normal"] = "[ NRM ]",
|
||||
["O-Pending"] = "[ OTR ]",
|
||||
["Visual"] = "[ VSL ]",
|
||||
["V-Line"] = "[ V·L ]",
|
||||
["V-Block"] = "[ V·B ]",
|
||||
["Select"] = "[ SEL ]",
|
||||
["S-Line"] = "[ S·L ]",
|
||||
["S-Block"] = "[ S·B ]",
|
||||
["Insert"] = "[ INS ]",
|
||||
["Replace"] = "[ RPL ]",
|
||||
["Command"] = "[ CMD ]",
|
||||
["Prompt"] = "[ PMT ]",
|
||||
["Shell"] = "[ SHL ]",
|
||||
["Terminal"] = "[ TRM ]",
|
||||
["None"] = "[ --- ]"
|
||||
}
|
||||
return mode[m]
|
||||
end
|
||||
|
||||
-- get the highlight group for a mode group
|
||||
local function get_mode_color(m)
|
||||
local color = {
|
||||
["Normal"] = "%#NormalMode#",
|
||||
["O-Pending"] = "%#NormalMode#",
|
||||
["Visual"] = "%#VisualMode#",
|
||||
["V-Line"] = "%#VisualMode#",
|
||||
["V-Block"] = "%#VisualMode#",
|
||||
["Select"] = "%#NormalMode#",
|
||||
["S-Line"] = "%#NormalMode#",
|
||||
["S-Block"] = "%#NormalMode#",
|
||||
["Insert"] = "%#InsertMode#",
|
||||
["Replace"] = "%#ReplaceMode#",
|
||||
["Command"] = "%#CommandMode#",
|
||||
["Prompt"] = "%#NormalMode#",
|
||||
["Shell"] = "%#NormalMode#",
|
||||
["Terminal"] = "%#NormalMode#",
|
||||
["None"] = "%#NormalMode#"
|
||||
}
|
||||
return color[m]
|
||||
local color = {
|
||||
["Normal"] = "%#NormalMode#",
|
||||
["O-Pending"] = "%#NormalMode#",
|
||||
["Visual"] = "%#VisualMode#",
|
||||
["V-Line"] = "%#VisualMode#",
|
||||
["V-Block"] = "%#VisualMode#",
|
||||
["Select"] = "%#NormalMode#",
|
||||
["S-Line"] = "%#NormalMode#",
|
||||
["S-Block"] = "%#NormalMode#",
|
||||
["Insert"] = "%#InsertMode#",
|
||||
["Replace"] = "%#ReplaceMode#",
|
||||
["Command"] = "%#CommandMode#",
|
||||
["Prompt"] = "%#NormalMode#",
|
||||
["Shell"] = "%#NormalMode#",
|
||||
["Terminal"] = "%#NormalMode#",
|
||||
["None"] = "%#NormalMode#"
|
||||
}
|
||||
return color[m]
|
||||
end
|
||||
|
||||
-- from https://github.com/nvim-lua/lsp-status.nvim/blob/master/lua/lsp-status/diagnostics.lua
|
||||
local function get_lsp_diagnostics(bufnr)
|
||||
local result = {}
|
||||
local levels = {
|
||||
errors = "Error",
|
||||
warnings = "Warn",
|
||||
info = "Info",
|
||||
hints = "Hint"
|
||||
}
|
||||
local result = {}
|
||||
local levels = {
|
||||
errors = "Error",
|
||||
warnings = "Warn",
|
||||
info = "Info",
|
||||
hints = "Hint"
|
||||
}
|
||||
|
||||
for k, level in pairs(levels) do
|
||||
local count = 0
|
||||
local diags = vim.diagnostic.get(bufnr, { severity = level })
|
||||
for _, _ in pairs(diags) do
|
||||
count = count + 1
|
||||
end
|
||||
result[k] = count
|
||||
for k, level in pairs(levels) do
|
||||
local count = 0
|
||||
local diags = vim.diagnostic.get(bufnr, { severity = level })
|
||||
for _, _ in pairs(diags) do
|
||||
count = count + 1
|
||||
end
|
||||
result[k] = count
|
||||
end
|
||||
|
||||
return result
|
||||
return result
|
||||
end
|
||||
|
||||
local function process_diagnostics(prefix, n, hl)
|
||||
if n > 0 then
|
||||
return hl .. prefix .. n
|
||||
else
|
||||
return ""
|
||||
end
|
||||
if n > 0 then
|
||||
return hl .. prefix .. n
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
local function spell_check()
|
||||
if vim.wo.spell then
|
||||
local lang = vim.o.spelllang
|
||||
return "[SPELL=" .. lang .. "]"
|
||||
else
|
||||
return ""
|
||||
end
|
||||
if vim.wo.spell then
|
||||
local lang = vim.o.spelllang
|
||||
return "[SPELL=" .. lang .. "]"
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
local function statusline_focused()
|
||||
local diagnostics = get_lsp_diagnostics()
|
||||
local mode = vim.fn.mode()
|
||||
local mg = get_mode(mode)
|
||||
local accent_color = get_mode_color(mg)
|
||||
local diagnostics = get_lsp_diagnostics()
|
||||
local mode = vim.fn.mode()
|
||||
local mg = get_mode(mode)
|
||||
local accent_color = get_mode_color(mg)
|
||||
|
||||
local left = table.concat {
|
||||
gen_section(accent_color, {get_mode_display_name(mg)}),
|
||||
gen_section("%#Middle#", {"%f"}),
|
||||
gen_section("%#Bottom#", {"%m", "%r"}),
|
||||
gen_section(
|
||||
"%#Alert#",
|
||||
{
|
||||
process_diagnostics(
|
||||
globals.sign_error .. " ",
|
||||
diagnostics.errors,
|
||||
"%#DiagnosticVirtualTextError#"
|
||||
),
|
||||
process_diagnostics(
|
||||
globals.sign_warning .. " ",
|
||||
diagnostics.warnings,
|
||||
"%#DiagnosticVirtualTextWarn#"
|
||||
),
|
||||
process_diagnostics(
|
||||
globals.sign_info .. " ",
|
||||
diagnostics.info,
|
||||
"%#DiagnosticVirtualTextInfo#"
|
||||
)
|
||||
}
|
||||
)
|
||||
local left = table.concat {
|
||||
gen_section(accent_color, {get_mode_display_name(mg)}),
|
||||
gen_section("%#Middle#", {"%f"}),
|
||||
gen_section("%#Bottom#", {"%m", "%r"}),
|
||||
gen_section(
|
||||
"%#Alert#",
|
||||
{
|
||||
process_diagnostics(
|
||||
globals.sign_error .. " ",
|
||||
diagnostics.errors,
|
||||
"%#DiagnosticVirtualTextError#"
|
||||
),
|
||||
process_diagnostics(
|
||||
globals.sign_warning .. " ",
|
||||
diagnostics.warnings,
|
||||
"%#DiagnosticVirtualTextWarn#"
|
||||
),
|
||||
process_diagnostics(
|
||||
globals.sign_info .. " ",
|
||||
diagnostics.info,
|
||||
"%#DiagnosticVirtualTextInfo#"
|
||||
)
|
||||
}
|
||||
local right = table.concat {
|
||||
gen_section(
|
||||
"%#Bottom#",
|
||||
{
|
||||
spell_check(),
|
||||
vim.bo.filetype
|
||||
}
|
||||
),
|
||||
gen_section("%#Middle#", {"%03.p%%"}),
|
||||
gen_section("%#Top#", {"-%03.c-"})
|
||||
)
|
||||
}
|
||||
local right = table.concat {
|
||||
gen_section(
|
||||
"%#Bottom#",
|
||||
{
|
||||
spell_check(),
|
||||
vim.bo.filetype
|
||||
}
|
||||
),
|
||||
gen_section("%#Middle#", {"%03.p%%"}),
|
||||
gen_section("%#Top#", {"-%03.c-"})
|
||||
}
|
||||
|
||||
return table.concat {
|
||||
left,
|
||||
"%#Statusline#",
|
||||
"%=",
|
||||
right
|
||||
}
|
||||
return table.concat {
|
||||
left,
|
||||
"%#Statusline#",
|
||||
"%=",
|
||||
right
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
local function statusline_not_focused()
|
||||
return table.concat {
|
||||
gen_section("%#StatuslineNF#", {"%f", "%m"}),
|
||||
"%=",
|
||||
gen_section("%#StatuslineNF#", {"%03.p%%"}),
|
||||
gen_section("%#StatuslineNF#", {"-%03.c-"})
|
||||
}
|
||||
return table.concat {
|
||||
gen_section("%#StatuslineNF#", {"%f", "%m"}),
|
||||
"%=",
|
||||
gen_section("%#StatuslineNF#", {"%03.p%%"}),
|
||||
gen_section("%#StatuslineNF#", {"-%03.c-"})
|
||||
}
|
||||
end
|
||||
|
||||
function _G.gen_statusline()
|
||||
if vim.g.statusline_winid == vim.fn.win_getid() then
|
||||
return statusline_focused()
|
||||
else
|
||||
return statusline_not_focused()
|
||||
end
|
||||
if vim.g.statusline_winid == vim.fn.win_getid() then
|
||||
return statusline_focused()
|
||||
else
|
||||
return statusline_not_focused()
|
||||
end
|
||||
end
|
||||
|
||||
vim.o.statusline = "%!luaeval(\"gen_statusline()\")"
|
||||
|
Reference in New Issue
Block a user