Merge branch 'master' of https://git.cscherr.de/PlexSheep/neovim-confs
This commit is contained in:
commit
aefbe0981e
|
@ -6,7 +6,7 @@ local highlights = require "custom.highlights"
|
||||||
|
|
||||||
M.ui = {
|
M.ui = {
|
||||||
theme = "oceanic-next",
|
theme = "oceanic-next",
|
||||||
theme_toggle = { "kanagawa", "oceanic-next" },
|
theme_toggle = { "oceanic-next", "oceanic-light" },
|
||||||
|
|
||||||
hl_override = highlights.override,
|
hl_override = highlights.override,
|
||||||
hl_add = highlights.add,
|
hl_add = highlights.add,
|
||||||
|
|
|
@ -10,7 +10,7 @@ local servers = {
|
||||||
"tsserver",
|
"tsserver",
|
||||||
"clangd",
|
"clangd",
|
||||||
"pyright",
|
"pyright",
|
||||||
"rust_analyzer", -- rustaceanvim wants to do that, but the builtin thing has better integration!
|
-- "rust_analyzer", -- rustaceanvim wants to do that, but the builtin thing has better integration!
|
||||||
"bashls",
|
"bashls",
|
||||||
"cmake",
|
"cmake",
|
||||||
}
|
}
|
||||||
|
@ -21,3 +21,28 @@ for _, lsp in ipairs(servers) do
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
lspconfig.rust_analyzer.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
settings = {
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
check = {
|
||||||
|
command = "clippy",
|
||||||
|
},
|
||||||
|
imports = {
|
||||||
|
granularity = {
|
||||||
|
group = "module",
|
||||||
|
},
|
||||||
|
prefix = "self",
|
||||||
|
},
|
||||||
|
cargo = {
|
||||||
|
buildScripts = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
procMacro = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
@ -9,14 +9,14 @@ M.override = {
|
||||||
Comment = {
|
Comment = {
|
||||||
italic = false,
|
italic = false,
|
||||||
},
|
},
|
||||||
NvDashAscii = {
|
-- NvDashAscii = {
|
||||||
fg = "#b33366",
|
-- fg = "#b33366",
|
||||||
bg = "#1a1a1a",
|
-- bg = "#1a1a1a",
|
||||||
},
|
-- },
|
||||||
NvDashButtons = {
|
-- NvDashButtons = {
|
||||||
fg = "White",
|
-- fg = "White",
|
||||||
bg = "#241e1e",
|
-- bg = "#241e1e",
|
||||||
},
|
-- },
|
||||||
}
|
}
|
||||||
|
|
||||||
---@type HLTable
|
---@type HLTable
|
||||||
|
|
|
@ -70,15 +70,16 @@ opt.foldlevel = 10 -- start with all folds open
|
||||||
vim.o.guifont = "FiraCode Nerd Font:h22"
|
vim.o.guifont = "FiraCode Nerd Font:h22"
|
||||||
opt.termguicolors = true
|
opt.termguicolors = true
|
||||||
opt.shortmess = "xsTOInfFitloCaAs"
|
opt.shortmess = "xsTOInfFitloCaAs"
|
||||||
opt.showmode = true -- Show mode in cmd window
|
opt.showmode = true -- Show mode in cmd window
|
||||||
opt.scrolloff = 2 -- Keep at least n lines above/below
|
opt.scrolloff = 2 -- Keep at least n lines above/below
|
||||||
opt.sidescrolloff = 0 -- Keep at least n lines left/right
|
opt.sidescrolloff = 0 -- Keep at least n lines left/right
|
||||||
opt.numberwidth = 2 -- Minimum number of columns to use for the line number
|
opt.numberwidth = 2 -- Minimum number of columns to use for the line number
|
||||||
opt.number = true -- Show line numbers
|
opt.number = true -- Show line numbers
|
||||||
opt.ruler = true -- Default status ruler
|
opt.relativenumber = true -- Show relative line numbers
|
||||||
opt.list = true -- Show hidden characters
|
opt.ruler = true -- Default status ruler
|
||||||
opt.showtabline = 1 -- Don't change this, goes back to a vanilla vim default
|
opt.list = true -- Show hidden characters
|
||||||
opt.laststatus = 3 -- Always show laststatus
|
opt.showtabline = 1 -- Don't change this, goes back to a vanilla vim default
|
||||||
|
opt.laststatus = 3 -- Always show laststatus
|
||||||
|
|
||||||
if vim.g.started_by_firenvim == true then
|
if vim.g.started_by_firenvim == true then
|
||||||
opt.showtabline = 1 -- Don't show tabline in firenvim, unless multitab
|
opt.showtabline = 1 -- Don't show tabline in firenvim, unless multitab
|
||||||
|
|
|
@ -410,7 +410,8 @@ M.edit = {
|
||||||
-- format with conform
|
-- format with conform
|
||||||
["<leader>ff"] = {
|
["<leader>ff"] = {
|
||||||
function()
|
function()
|
||||||
vim.lsp.buf.format()
|
-- vim.lsp.buf.format()
|
||||||
|
require("conform").format()
|
||||||
end,
|
end,
|
||||||
"format buffer",
|
"format buffer",
|
||||||
},
|
},
|
||||||
|
|
|
@ -102,7 +102,12 @@ local plugins = {
|
||||||
["<leader>f"] = { name = "+formatting" },
|
["<leader>f"] = { name = "+formatting" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ "echasnovski/mini.trailspace", lazy = false, event = { "BufReadPost", "BufNewFile" }, opts = {} },
|
{
|
||||||
|
"echasnovski/mini.trailspace",
|
||||||
|
lazy = false,
|
||||||
|
event = { "BufReadPost", "BufNewFile" },
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"itchyny/vim-cursorword",
|
"itchyny/vim-cursorword",
|
||||||
event = "FileType",
|
event = "FileType",
|
||||||
|
@ -515,11 +520,11 @@ local plugins = {
|
||||||
{
|
{
|
||||||
"kevinhwang91/nvim-ufo",
|
"kevinhwang91/nvim-ufo",
|
||||||
event = { "BufReadPost", "BufNewFile" },
|
event = { "BufReadPost", "BufNewFile" },
|
||||||
-- stylua: ignore
|
-- stylua: ignore
|
||||||
keys = {
|
keys = {
|
||||||
{ 'zR', function() require('ufo').openAllFolds() end },
|
{ 'zR', function() require('ufo').openAllFolds() end },
|
||||||
{ 'zM', function() require('ufo').closeAllFolds() end },
|
{ 'zM', function() require('ufo').closeAllFolds() end },
|
||||||
},
|
},
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"kevinhwang91/promise-async",
|
"kevinhwang91/promise-async",
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
@ -628,7 +633,7 @@ local plugins = {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
-- change how the highlighting looks
|
-- change how the highlighting looks
|
||||||
vim.cmd "hi LspInlayHint guibg=bg guifg=#804d66"
|
vim.cmd "hi LspInlayHint guibg=(bg*0.8) guifg=#6699b3"
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ "kosayoda/nvim-lightbulb", event = { "BufReadPre", "BufNewFile" } },
|
{ "kosayoda/nvim-lightbulb", event = { "BufReadPre", "BufNewFile" } },
|
||||||
|
@ -765,6 +770,9 @@ local plugins = {
|
||||||
program = function()
|
program = function()
|
||||||
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
||||||
end,
|
end,
|
||||||
|
args = function()
|
||||||
|
return require("custom.utils").tokenize_args(vim.fn.input "args: ")
|
||||||
|
end,
|
||||||
cwd = "${workspaceFolder}",
|
cwd = "${workspaceFolder}",
|
||||||
-- FIXME: perhaps we can put the stdio somewhere more practical
|
-- FIXME: perhaps we can put the stdio somewhere more practical
|
||||||
stopOnEntry = false,
|
stopOnEntry = false,
|
||||||
|
@ -806,8 +814,11 @@ local plugins = {
|
||||||
config = function()
|
config = function()
|
||||||
local dap = require "dap"
|
local dap = require "dap"
|
||||||
vim.g.rustaceanvim = {
|
vim.g.rustaceanvim = {
|
||||||
|
enable_clippy = true,
|
||||||
-- Plugin configuration
|
-- Plugin configuration
|
||||||
tools = {},
|
tools = {
|
||||||
|
enable_clippy = true,
|
||||||
|
},
|
||||||
-- LSP configuration
|
-- LSP configuration
|
||||||
server = {
|
server = {
|
||||||
auto_attach = false,
|
auto_attach = false,
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
local M = {}
|
||||||
|
-- this function will split a string into a table of tokens, like it would
|
||||||
|
-- be passed into the `argv` of a program that was executed from the commandline
|
||||||
|
--
|
||||||
|
-- @param string raw string of cli args that should be split
|
||||||
|
-- @return table tokens args as a table
|
||||||
|
M.tokenize_args = function(raw)
|
||||||
|
-- NOTE: string.gmatch is does not use regex, but a smaller pattern matcher!
|
||||||
|
-- A complete regex parser would be larger than lua itself. See
|
||||||
|
-- [Programming in Lua 20.2](https://www.lua.org/pil/20.2.html).
|
||||||
|
--
|
||||||
|
-- Notable differences:
|
||||||
|
-- '-' is ungreedy wildcard
|
||||||
|
-- '*?' does not work
|
||||||
|
-- '|' is not or
|
||||||
|
--
|
||||||
|
-- This means we're better of implementing the lexer with an algorithm.
|
||||||
|
local t = {}
|
||||||
|
local current = ""
|
||||||
|
local in_str = false
|
||||||
|
local str_seek
|
||||||
|
for c in string.gmatch(raw, ".") do -- iterate through all chars
|
||||||
|
if c == ' ' and not in_str then
|
||||||
|
if string.len(current) > 0 then
|
||||||
|
table.insert(t, current)
|
||||||
|
current = ""
|
||||||
|
end
|
||||||
|
elseif c == '"' and not in_str then
|
||||||
|
in_str = true
|
||||||
|
str_seek = '"'
|
||||||
|
elseif c == "'" and not in_str then
|
||||||
|
in_str = true
|
||||||
|
str_seek = "'"
|
||||||
|
elseif c == str_seek and in_str then
|
||||||
|
in_str = false
|
||||||
|
table.insert(t, current)
|
||||||
|
current = ""
|
||||||
|
else
|
||||||
|
current = current .. c
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if string.len(current) > 0 then
|
||||||
|
table.insert(t, current)
|
||||||
|
end
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
--- dumps a variable into a string, so it can be printed. This is meant for
|
||||||
|
--- debug prints
|
||||||
|
--- @param any t any variable
|
||||||
|
--- @return string t_dumped t dumped to string
|
||||||
|
M.dump = function(t)
|
||||||
|
if type(t) == 'table' then
|
||||||
|
local s = '{ '
|
||||||
|
for k, v in pairs(t) do
|
||||||
|
if type(k) ~= 'number' then k = '"' .. k .. '"' end
|
||||||
|
if k ~= 1 then
|
||||||
|
s = s .. ', '
|
||||||
|
end
|
||||||
|
s = s .. '[' .. k .. '] = \'' .. M.dump(v) .. '\''
|
||||||
|
end
|
||||||
|
return s .. ' }'
|
||||||
|
else
|
||||||
|
return tostring(t)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return M
|
Loading…
Reference in New Issue