Compare commits
No commits in common. "61775c59936e46f3fc3c0539772b43740d3b6dda" and "454723b5ec383a6a0ca1b3788fa77cfc1a3bde94" have entirely different histories.
61775c5993
...
454723b5ec
17 changed files with 187 additions and 1134 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,4 +6,3 @@ coc-settings.json
|
||||||
lazy-lock.json
|
lazy-lock.json
|
||||||
after
|
after
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
lua/custom/secret
|
|
||||||
|
|
|
@ -71,6 +71,42 @@ autocmd("FileType", {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- reload some chadrc options on-save
|
||||||
|
autocmd("BufWritePost", {
|
||||||
|
pattern = vim.tbl_map(function(path)
|
||||||
|
return vim.fs.normalize(vim.loop.fs_realpath(path))
|
||||||
|
end, vim.fn.glob(vim.fn.stdpath "config" .. "/lua/custom/**/*.lua", true, true, true)),
|
||||||
|
group = vim.api.nvim_create_augroup("ReloadNvChad", {}),
|
||||||
|
|
||||||
|
callback = function(opts)
|
||||||
|
local fp = vim.fn.fnamemodify(vim.fs.normalize(vim.api.nvim_buf_get_name(opts.buf)), ":r") --[[@as string]]
|
||||||
|
local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
|
||||||
|
local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".")
|
||||||
|
|
||||||
|
require("plenary.reload").reload_module "base46"
|
||||||
|
require("plenary.reload").reload_module(module)
|
||||||
|
require("plenary.reload").reload_module "custom.chadrc"
|
||||||
|
|
||||||
|
config = require("core.utils").load_config()
|
||||||
|
|
||||||
|
vim.g.nvchad_theme = config.ui.theme
|
||||||
|
vim.g.transparency = config.ui.transparency
|
||||||
|
|
||||||
|
-- statusline
|
||||||
|
require("plenary.reload").reload_module("nvchad.statusline." .. config.ui.statusline.theme)
|
||||||
|
vim.opt.statusline = "%!v:lua.require('nvchad.statusline." .. config.ui.statusline.theme .. "').run()"
|
||||||
|
|
||||||
|
-- tabufline
|
||||||
|
if config.ui.tabufline.enabled then
|
||||||
|
require("plenary.reload").reload_module "nvchad.tabufline.modules"
|
||||||
|
vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules').run()"
|
||||||
|
end
|
||||||
|
|
||||||
|
require("base46").load_all_highlights()
|
||||||
|
-- vim.cmd("redraw!")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
-------------------------------------- commands ------------------------------------------
|
-------------------------------------- commands ------------------------------------------
|
||||||
local new_cmd = vim.api.nvim_create_user_command
|
local new_cmd = vim.api.nvim_create_user_command
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ local M = {}
|
||||||
local highlights = require "custom.highlights"
|
local highlights = require "custom.highlights"
|
||||||
|
|
||||||
M.ui = {
|
M.ui = {
|
||||||
theme = "oceanic-next",
|
theme = "chadracula",
|
||||||
theme_toggle = { "oceanic-next", "ayu_light" },
|
theme_toggle = { "kanagawa", "chadracula" },
|
||||||
|
|
||||||
hl_override = highlights.override,
|
hl_override = highlights.override,
|
||||||
hl_add = highlights.add,
|
hl_add = highlights.add,
|
||||||
|
@ -64,8 +64,7 @@ local get_info = function()
|
||||||
},
|
},
|
||||||
{ " Mappings", "<space>ch", "NvCheatsheet" },
|
{ " Mappings", "<space>ch", "NvCheatsheet" },
|
||||||
{ " Git", "<space>gg", "LazyGit" },
|
{ " Git", "<space>gg", "LazyGit" },
|
||||||
{ " Files", "<F5>", "NvimTreeToggle" },
|
{ " Files", "<F5>", "NvimTreeToggle" },
|
||||||
{ " Change Directory", ";cd", "Telescope zoxide list" },
|
|
||||||
{ " Terminal", "<A-i>", "ToggleTerm direction=float" },
|
{ " Terminal", "<A-i>", "ToggleTerm direction=float" },
|
||||||
}
|
}
|
||||||
return buf
|
return buf
|
||||||
|
|
|
@ -1,29 +1,24 @@
|
||||||
local options = {
|
local options = {
|
||||||
lsp_fallback = true,
|
lsp_fallback = true,
|
||||||
|
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
lua = { "stylua" },
|
lua = { "stylua" },
|
||||||
|
|
||||||
javascript = { "prettier" },
|
javascript = { "prettier" },
|
||||||
css = { "prettier" },
|
css = { "prettier" },
|
||||||
html = { "prettier" },
|
html = { "prettier" },
|
||||||
|
|
||||||
sh = { "shfmt" },
|
sh = { "shfmt" },
|
||||||
toml = { "taplo" },
|
},
|
||||||
rust = { "rustfmt" },
|
|
||||||
|
|
||||||
tex = { "latexindent" },
|
|
||||||
latex = { "latexindent" },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- adding same formatter for multiple filetypes can look too much work for some
|
-- adding same formatter for multiple filetypes can look too much work for some
|
||||||
-- instead of the above code you could just use a loop! the config is just a table after all!
|
-- instead of the above code you could just use a loop! the config is just a table after all!
|
||||||
|
|
||||||
-- format_on_save = {
|
-- format_on_save = {
|
||||||
-- -- These options will be passed to conform.format()
|
-- -- These options will be passed to conform.format()
|
||||||
-- timeout_ms = 500,
|
-- timeout_ms = 500,
|
||||||
-- lsp_fallback = true,
|
-- lsp_fallback = true,
|
||||||
-- },
|
-- },
|
||||||
}
|
}
|
||||||
|
|
||||||
require("conform").setup(options)
|
require("conform").setup(options)
|
||||||
|
|
|
@ -2,13 +2,17 @@ local on_attach = require("plugins.configs.lspconfig").on_attach
|
||||||
local capabilities = require("plugins.configs.lspconfig").capabilities
|
local capabilities = require("plugins.configs.lspconfig").capabilities
|
||||||
|
|
||||||
local lspconfig = require "lspconfig"
|
local lspconfig = require "lspconfig"
|
||||||
local lspsettings = require "custom.configs.lspsettings"
|
|
||||||
|
|
||||||
-- if you just want default config for the servers then put them in a table
|
-- if you just want default config for the servers then put them in a table
|
||||||
local servers = {
|
local servers = {
|
||||||
"html",
|
"html",
|
||||||
"cssls",
|
"cssls",
|
||||||
"tsserver",
|
"tsserver",
|
||||||
|
"clangd",
|
||||||
|
"pyright",
|
||||||
|
"rust_analyzer",
|
||||||
|
"bashls",
|
||||||
|
"cmake",
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
|
@ -17,13 +21,3 @@ for _, lsp in ipairs(servers) do
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
local server_with_settings = {
|
|
||||||
-- "textlsp",
|
|
||||||
-- "ltex",
|
|
||||||
-- "rust_analyzer",
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, lsp in ipairs(server_with_settings) do
|
|
||||||
lspconfig[lsp].setup(lspsettings[lsp])
|
|
||||||
end
|
|
||||||
|
|
|
@ -1,195 +0,0 @@
|
||||||
local on_attach = require("plugins.configs.lspconfig").on_attach
|
|
||||||
local capabilities = require("plugins.configs.lspconfig").capabilities
|
|
||||||
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.rust_analyzer = {
|
|
||||||
on_attach = on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
|
||||||
["rust-analyzer"] = {
|
|
||||||
check = {
|
|
||||||
command = "clippy",
|
|
||||||
},
|
|
||||||
imports = {
|
|
||||||
granularity = {
|
|
||||||
group = "module",
|
|
||||||
},
|
|
||||||
prefix = "self",
|
|
||||||
},
|
|
||||||
cargo = {
|
|
||||||
buildScripts = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
procMacro = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
M.ltex = {
|
|
||||||
on_attach = on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
use_spellfile = false,
|
|
||||||
settings = {
|
|
||||||
ltex = {
|
|
||||||
checkFrequency = "save", -- shut up while i'm just editing, see <https://github.com/folke/noice.nvim/issues/166>
|
|
||||||
-- specific language (such as en-GB or de-DE is recommended, but I
|
|
||||||
-- want multilingual)
|
|
||||||
language = "auto",
|
|
||||||
enabled = {
|
|
||||||
"bibtex",
|
|
||||||
"tex",
|
|
||||||
"latex",
|
|
||||||
"gitcommit",
|
|
||||||
"markdown",
|
|
||||||
"org",
|
|
||||||
"restructuredtext",
|
|
||||||
"rsweave",
|
|
||||||
"quarto",
|
|
||||||
"rmd",
|
|
||||||
"context",
|
|
||||||
-- "html",
|
|
||||||
-- "xhtml",
|
|
||||||
},
|
|
||||||
additionalRules = {
|
|
||||||
enablePickyRules = true,
|
|
||||||
-- thats cool, but often adds diagnostics in
|
|
||||||
-- places where a german might confuse words that are similar
|
|
||||||
-- between english and german REGARDLESS of context. I seem to use the
|
|
||||||
-- english words only in the proper contexts, so leaving this on
|
|
||||||
-- just adds annoying hints like 'Hinweis: "list/NN.*" (English) bedeutet "Liste",
|
|
||||||
-- "Verzeichnis" (German). Meinten Sie vielleicht 'cunning', 'trick'?'
|
|
||||||
-- everytime I use the word "list". I liked that this makes the hints be
|
|
||||||
-- in german regardless of the language I'm working in through...
|
|
||||||
--motherTongue = "de",
|
|
||||||
},
|
|
||||||
-- load token and additional languagetool items later
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
M.textlsp = {
|
|
||||||
on_attach = on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
filetypes = {
|
|
||||||
"bibtex",
|
|
||||||
"tex",
|
|
||||||
"latex",
|
|
||||||
"gitcommit",
|
|
||||||
"markdown",
|
|
||||||
"org",
|
|
||||||
"restructuredtext",
|
|
||||||
"rsweave",
|
|
||||||
"quarto",
|
|
||||||
"rmd",
|
|
||||||
"context",
|
|
||||||
"html",
|
|
||||||
"xhtml",
|
|
||||||
},
|
|
||||||
settings = {
|
|
||||||
textLSP = {
|
|
||||||
analysers = {
|
|
||||||
languagetool = {
|
|
||||||
enabled = true,
|
|
||||||
check_text = {
|
|
||||||
on_open = true,
|
|
||||||
on_save = true,
|
|
||||||
on_change = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
gramformer = {
|
|
||||||
-- gramformer dependency needs to be installed manually
|
|
||||||
enabled = true,
|
|
||||||
gpu = false,
|
|
||||||
check_text = {
|
|
||||||
on_open = false,
|
|
||||||
on_save = true,
|
|
||||||
on_change = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hf_checker = {
|
|
||||||
enabled = false,
|
|
||||||
gpu = false,
|
|
||||||
quantize = 32,
|
|
||||||
model = "pszemraj/flan-t5-large-grammar-synthesis",
|
|
||||||
min_length = 40,
|
|
||||||
check_text = {
|
|
||||||
on_open = false,
|
|
||||||
on_save = true,
|
|
||||||
on_change = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hf_instruction_checker = {
|
|
||||||
enabled = true,
|
|
||||||
gpu = false,
|
|
||||||
quantize = 32,
|
|
||||||
model = "grammarly/coedit-large",
|
|
||||||
min_length = 40,
|
|
||||||
check_text = {
|
|
||||||
on_open = false,
|
|
||||||
on_save = true,
|
|
||||||
on_change = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hf_completion = {
|
|
||||||
enabled = true,
|
|
||||||
gpu = false,
|
|
||||||
quantize = 32,
|
|
||||||
model = "bert-base-multilingual-cased",
|
|
||||||
topk = 5,
|
|
||||||
},
|
|
||||||
-- openai = {
|
|
||||||
-- enabled = false,
|
|
||||||
-- api_key = "<MY_API_KEY>",
|
|
||||||
-- check_text = {
|
|
||||||
-- on_open = false,
|
|
||||||
-- on_save = false,
|
|
||||||
-- on_change = false,
|
|
||||||
-- },
|
|
||||||
-- model = "gpt-3.5-turbo",
|
|
||||||
-- max_token = 16,
|
|
||||||
-- },
|
|
||||||
-- grammarbot = {
|
|
||||||
-- enabled = false,
|
|
||||||
-- api_key = "<MY_API_KEY>",
|
|
||||||
-- -- longer texts are split, this parameter sets the maximum number of splits per analysis
|
|
||||||
-- input_max_requests = 1,
|
|
||||||
-- check_text = {
|
|
||||||
-- on_open = false,
|
|
||||||
-- on_save = false,
|
|
||||||
-- on_change = false,
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
},
|
|
||||||
documents = {
|
|
||||||
-- org = {
|
|
||||||
-- org_todo_keywords = {
|
|
||||||
-- "TODO",
|
|
||||||
-- "IN_PROGRESS",
|
|
||||||
-- "DONE",
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
txt = {
|
|
||||||
parse = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- load secrets
|
|
||||||
-- the secret module should just return a string with the token
|
|
||||||
local available, token = require("custom.utils").try_require "custom.secret.languagetool_token"
|
|
||||||
if available then
|
|
||||||
M.ltex.languageToolOrg = {
|
|
||||||
apiKey = token,
|
|
||||||
username = "accounts@cscherr.de",
|
|
||||||
languageToolHttpServerUrl = "https://api.languagetoolplus.com/v2/",
|
|
||||||
}
|
|
||||||
M.ltex.languageToolHttpServerUrl = "https://api.languagetoolplus.com/v2/"
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
|
@ -30,25 +30,38 @@ M.treesitter = {
|
||||||
|
|
||||||
M.mason = {
|
M.mason = {
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
|
-- general purpose
|
||||||
"purpose",
|
"purpose",
|
||||||
|
|
||||||
|
-- lua stuff
|
||||||
"lua-language-server",
|
"lua-language-server",
|
||||||
"stylua",
|
"stylua",
|
||||||
|
|
||||||
|
-- web dev stuff
|
||||||
"css-lsp",
|
"css-lsp",
|
||||||
"html-lsp",
|
"html-lsp",
|
||||||
"typescript-language-server",
|
"typescript-language-server",
|
||||||
"deno",
|
"deno",
|
||||||
"prettier",
|
"prettier",
|
||||||
|
|
||||||
|
-- c/cpp stuff
|
||||||
"clangd",
|
"clangd",
|
||||||
"clang-format",
|
"clang-format",
|
||||||
"cmake-language-server",
|
"cmake-language-server",
|
||||||
|
|
||||||
|
-- rust
|
||||||
"rust-analyzer",
|
"rust-analyzer",
|
||||||
"taplo",
|
"taplo",
|
||||||
|
|
||||||
|
-- python
|
||||||
"pyright",
|
"pyright",
|
||||||
|
|
||||||
|
-- english??
|
||||||
|
"write-good",
|
||||||
|
|
||||||
|
-- shell
|
||||||
"shellcheck",
|
"shellcheck",
|
||||||
"bash-language-server",
|
"bash-language-server",
|
||||||
"ltex-ls",
|
|
||||||
"shellcheck",
|
|
||||||
"taplo",
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,19 +7,16 @@ local M = {}
|
||||||
---@type Base46HLGroupsList
|
---@type Base46HLGroupsList
|
||||||
M.override = {
|
M.override = {
|
||||||
Comment = {
|
Comment = {
|
||||||
italic = false,
|
italic = true,
|
||||||
|
},
|
||||||
|
NvDashAscii = {
|
||||||
|
fg = "#b33366",
|
||||||
|
bg = "#1a1a1a",
|
||||||
|
},
|
||||||
|
NvDashButtons = {
|
||||||
|
fg = "White",
|
||||||
|
bg = "#241e1e",
|
||||||
},
|
},
|
||||||
-- NvDashAscii = {
|
|
||||||
-- fg = "#b33366",
|
|
||||||
-- bg = "#1a1a1a",
|
|
||||||
-- },
|
|
||||||
-- NvDashButtons = {
|
|
||||||
-- fg = "White",
|
|
||||||
-- bg = "#241e1e",
|
|
||||||
-- },
|
|
||||||
TodoFgNOTE = {
|
|
||||||
fg = "#cccccc"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
---@type HLTable
|
---@type HLTable
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
local opt = vim.opt
|
local opt = vim.opt
|
||||||
local g = vim.g
|
local g = vim.g
|
||||||
g.maplocalleader = ";"
|
g.maplocalleader = ";"
|
||||||
g.python3_host_prog = "/usr/bin/python3"
|
|
||||||
|
|
||||||
opt.mouse = "a" -- mouse does annoying things for me if it's not 'a'
|
|
||||||
opt.signcolumn = "yes"
|
opt.signcolumn = "yes"
|
||||||
|
opt.spelllang = "en,de"
|
||||||
opt.clipboard = "" -- don't just use the system clipboard
|
opt.clipboard = "" -- don't just use the system clipboard
|
||||||
opt.wrap = false
|
opt.wrap = false
|
||||||
opt.breakindent = false
|
opt.breakindent = false
|
||||||
|
@ -30,16 +29,10 @@ opt.shiftround = true -- Round indent to multiple of 'shiftwidth'
|
||||||
|
|
||||||
-- Timing
|
-- Timing
|
||||||
-- ===
|
-- ===
|
||||||
-- NOTE: the which-key plugin makes this a little different. Instead of going
|
|
||||||
-- to a newline after "o", the which-key panel opens. Only when we input
|
|
||||||
-- something other than "o" it will go to the line and write that. I don't
|
|
||||||
-- really like this behavior. We can disable this for specific triggers.
|
|
||||||
-- See https://github.com/folke/which-key.nvim
|
|
||||||
opt.timeout = true
|
|
||||||
opt.ttimeout = true
|
opt.ttimeout = true
|
||||||
opt.timeoutlen = 250 -- Time out on mappings
|
opt.timeoutlen = 500 -- Time out on mappings
|
||||||
opt.ttimeoutlen = 10 -- Time out on key codes
|
opt.ttimeoutlen = 10 -- Time out on key codes
|
||||||
opt.updatetime = 300 -- Idle time to write swap and trigger CursorHold
|
opt.updatetime = 500 -- Idle time to write swap and trigger CursorHold
|
||||||
|
|
||||||
-- Searching
|
-- Searching
|
||||||
-- ===
|
-- ===
|
||||||
|
@ -69,7 +62,7 @@ opt.wildmode = "longest:full,full" -- Command-line completion mode
|
||||||
-- Folds
|
-- Folds
|
||||||
-- ===
|
-- ===
|
||||||
|
|
||||||
opt.foldlevel = 10 -- start with all folds open
|
opt.foldlevel = 10000 -- start with all folds open
|
||||||
|
|
||||||
-- Editor UI
|
-- Editor UI
|
||||||
-- ===
|
-- ===
|
||||||
|
@ -82,7 +75,6 @@ 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.relativenumber = true -- Show relative line numbers
|
|
||||||
opt.ruler = true -- Default status ruler
|
opt.ruler = true -- Default status ruler
|
||||||
opt.list = true -- Show hidden characters
|
opt.list = true -- Show hidden characters
|
||||||
opt.showtabline = 1 -- Don't change this, goes back to a vanilla vim default
|
opt.showtabline = 1 -- Don't change this, goes back to a vanilla vim default
|
||||||
|
@ -91,24 +83,6 @@ 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
|
||||||
opt.laststatus = 1 -- Don't show laststatus in firenvim
|
opt.laststatus = 1 -- Don't show laststatus in firenvim
|
||||||
opt.wrap = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.g.neovide == true then
|
|
||||||
-- fulscreen with F11
|
|
||||||
vim.api.nvim_set_keymap("n", "<F11>", ":let g:neovide_fullscreen = !g:neovide_fullscreen<CR>", {})
|
|
||||||
|
|
||||||
vim.g.neovide_underline_automatic_scaling = true
|
|
||||||
|
|
||||||
-- vim.g.neovide_floating_blur_amount_x = 2.0
|
|
||||||
-- vim.g.neovide_floating_blur_amount_y = 2.0
|
|
||||||
|
|
||||||
vim.g.neovide_scroll_animation_length = 0.1
|
|
||||||
-- vim.g.neovide_cursor_animation_length = 0
|
|
||||||
-- vim.g.neovide_cursor_trail_size = 0
|
|
||||||
vim.g.neovide_hide_mouse_when_typing = true
|
|
||||||
|
|
||||||
vim.g.neovide_fullscreen = true
|
|
||||||
end
|
end
|
||||||
|
|
||||||
opt.helpheight = 0 -- Disable help window resizing
|
opt.helpheight = 0 -- Disable help window resizing
|
||||||
|
@ -130,13 +104,6 @@ opt.pumheight = 10 -- Maximum number of items to show in the popup menu
|
||||||
opt.pumwidth = 10 -- Minimum width for the popup menu
|
opt.pumwidth = 10 -- Minimum width for the popup menu
|
||||||
opt.pumblend = 10 -- Popup blend
|
opt.pumblend = 10 -- Popup blend
|
||||||
|
|
||||||
-- Spelling correction
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
opt.spell = false -- manually enable spell with `set spell` or `<leader>ts`
|
|
||||||
opt.spelllang = "en,de_de,"
|
|
||||||
opt.spellsuggest = "double,50,timeout:5000"
|
|
||||||
|
|
||||||
-- autocommands
|
-- autocommands
|
||||||
-- ===
|
-- ===
|
||||||
local function augroup(name)
|
local function augroup(name)
|
||||||
|
@ -169,15 +136,12 @@ vim.api.nvim_create_autocmd("VimResized", {
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Wrap and enable spell-checker in text filetypes
|
-- Wrap and enable spell-checker in text filetypes
|
||||||
-- also enable wrap on these text filetypes
|
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
group = augroup "spell_conceal",
|
group = augroup "spell_conceal",
|
||||||
pattern = { "gitcommit", "markdown", "tex", "latex", "norg" },
|
pattern = { "gitcommit", "markdown", "tex", "latex", "norg" },
|
||||||
callback = function()
|
callback = function()
|
||||||
vim.opt_local.spell = true
|
vim.opt_local.spell = true
|
||||||
vim.opt_local.conceallevel = 0
|
vim.opt_local.conceallevel = 0
|
||||||
vim.opt.wrap = true
|
|
||||||
-- vim.opt.formatoptions = ""
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -190,7 +154,3 @@ if vim.g.started_by_firenvim == true then
|
||||||
vim.o.lines = vim.o.lines - 1
|
vim.o.lines = vim.o.lines - 1
|
||||||
end, { expr = true, desc = "Make Display smaller" })
|
end, { expr = true, desc = "Make Display smaller" })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- alias filetypes
|
|
||||||
vim.filetype.add { extension = { tera = "html" } }
|
|
||||||
vim.filetype.add { extension = { plaintex = "tex" } }
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
---@type MappingsTable
|
---@type MappingsTable
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
-- NOTE: The mappings here are case sensitive!!! Removing a specific default
|
-- NOTE: The mappings here are case sensitive!!! Removing a specific default
|
||||||
|
@ -41,6 +40,7 @@ M.disabled = {
|
||||||
["<leader>td"] = "",
|
["<leader>td"] = "",
|
||||||
["<leader>wk"] = "",
|
["<leader>wk"] = "",
|
||||||
["#"] = "",
|
["#"] = "",
|
||||||
|
["?"] = "",
|
||||||
},
|
},
|
||||||
t = {
|
t = {
|
||||||
["<C-t>"] = "",
|
["<C-t>"] = "",
|
||||||
|
@ -206,9 +206,6 @@ M.telescope = {
|
||||||
["<localleader>fo"] = { "<cmd> Telescope oldfiles <cr>", "Find oldfiles" },
|
["<localleader>fo"] = { "<cmd> Telescope oldfiles <cr>", "Find oldfiles" },
|
||||||
["<localleader>fz"] = { "<cmd> Telescope current_buffer_fuzzy_find <cr>", "Find in current buffer" },
|
["<localleader>fz"] = { "<cmd> Telescope current_buffer_fuzzy_find <cr>", "Find in current buffer" },
|
||||||
|
|
||||||
-- directory
|
|
||||||
["<localleader>cd"] = { "<cmd> Telescope zoxide list<cr>", "telescope zoxide cd" },
|
|
||||||
|
|
||||||
-- git
|
-- git
|
||||||
["<localleader>cm"] = { "<cmd> Telescope git_commits <cr>", "Git commits" },
|
["<localleader>cm"] = { "<cmd> Telescope git_commits <cr>", "Git commits" },
|
||||||
["<localleader>gt"] = { "<cmd> Telescope git_status <cr>", "Git status" },
|
["<localleader>gt"] = { "<cmd> Telescope git_status <cr>", "Git status" },
|
||||||
|
@ -220,14 +217,6 @@ M.telescope = {
|
||||||
["<localleader>th"] = { "<cmd> Telescope themes <cr>", "Nvchad themes" },
|
["<localleader>th"] = { "<cmd> Telescope themes <cr>", "Nvchad themes" },
|
||||||
|
|
||||||
["<localleader>ma"] = { "<cmd> Telescope marks <cr>", "telescope bookmarks" },
|
["<localleader>ma"] = { "<cmd> Telescope marks <cr>", "telescope bookmarks" },
|
||||||
|
|
||||||
-- lsp stuff
|
|
||||||
["<localleader>cw"] = {
|
|
||||||
"<cmd> Telescope lsp_dynamic_workspace_symbols <cr>",
|
|
||||||
"telescope dynamic workspace symbols",
|
|
||||||
},
|
|
||||||
["<localleader>cf"] = { "<cmd> Telescope lsp_document_symbols <cr>", "telescope document symbols" },
|
|
||||||
["<localleader>ci"] = { "<cmd> Telescope diagnostics <cr>", "telescope diagnostics" },
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,89 +224,45 @@ M.toggleterm = {
|
||||||
plugin = true,
|
plugin = true,
|
||||||
n = {
|
n = {
|
||||||
["<F12>"] = {
|
["<F12>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
"<cmd>ToggleTerm direction=float<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-i>"] = {
|
["<A-i>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
"<cmd>ToggleTerm direction=float<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-t>"] = {
|
["<A-t>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=tab"<cr>',
|
"<cmd>ToggleTerm direction=tab<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-h>"] = {
|
["<A-h>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=horizontal"<cr>',
|
"<cmd>ToggleTerm direction=horizontal<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-v>"] = {
|
["<A-v>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=vertical"<cr>',
|
"<cmd>ToggleTerm direction=vertical<cr>",
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
i = {
|
|
||||||
["<F12>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-i>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-t>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=tab"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-h>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=horizontal"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-v>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=vertical"<cr>',
|
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
t = {
|
t = {
|
||||||
["<F12>"] = {
|
["<F12>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
"<cmd>ToggleTerm direction=float<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-i>"] = {
|
["<A-i>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
"<cmd>ToggleTerm direction=float<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-t>"] = {
|
["<A-t>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=tab"<cr>',
|
"<cmd>ToggleTerm direction=tab<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-h>"] = {
|
["<A-h>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=horizontal"<cr>',
|
"<cmd>ToggleTerm direction=horizontal<cr>",
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
["<A-v>"] = {
|
["<A-v>"] = {
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=vertical"<cr>',
|
"<cmd>ToggleTerm direction=vertical<cr>",
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
x = {
|
|
||||||
["<F12>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-i>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=float"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-t>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=tab"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-h>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=horizontal"<cr>',
|
|
||||||
"toggle terminal",
|
|
||||||
},
|
|
||||||
["<A-v>"] = {
|
|
||||||
'<cmd>exe v:count1 "ToggleTerm direction=vertical"<cr>',
|
|
||||||
"toggle terminal",
|
"toggle terminal",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -329,7 +274,6 @@ M.nvimtree = {
|
||||||
-- toggle
|
-- toggle
|
||||||
["<C-n>"] = { "<cmd> NvimTreeToggle <cr>", "Toggle nvimtree" },
|
["<C-n>"] = { "<cmd> NvimTreeToggle <cr>", "Toggle nvimtree" },
|
||||||
["<F5>"] = { "<cmd> NvimTreeToggle <cr>", "Toggle nvimtree" },
|
["<F5>"] = { "<cmd> NvimTreeToggle <cr>", "Toggle nvimtree" },
|
||||||
["<leader>tf"] = { "<cmd> NvimTreeToggle <cr>", "Toggle nvimtree" },
|
|
||||||
|
|
||||||
-- focus
|
-- focus
|
||||||
["<localleader>e"] = { "<cmd> NvimTreeFocus <cr>", "Focus nvimtree" },
|
["<localleader>e"] = { "<cmd> NvimTreeFocus <cr>", "Focus nvimtree" },
|
||||||
|
@ -362,13 +306,12 @@ M.movements = {
|
||||||
["H"] = { "<home>", "Beginning of line" },
|
["H"] = { "<home>", "Beginning of line" },
|
||||||
["L"] = { "<end>", "End of line" },
|
["L"] = { "<end>", "End of line" },
|
||||||
|
|
||||||
|
-- go to mark with "#"
|
||||||
|
["#"] = { "'", "go to mark" },
|
||||||
|
|
||||||
-- spell
|
-- spell
|
||||||
["]s"] = { "]s", "go to next spelling mark" },
|
["]s"] = { "]s", "go to next spelling mark" },
|
||||||
["[s"] = { "[s", "go to last spelling mark" },
|
["[s"] = { "[s", "go to last spelling mark" },
|
||||||
|
|
||||||
-- just scroll a line
|
|
||||||
["zk"] = { "<C-y>", "scroll up a line" },
|
|
||||||
["zj"] = { "<C-e>", "scroll down a line" },
|
|
||||||
},
|
},
|
||||||
v = {
|
v = {
|
||||||
--big move
|
--big move
|
||||||
|
@ -384,10 +327,6 @@ M.movements = {
|
||||||
vim.api.nvim_replace_termcodes("<C-\\><C-N>", true, true, true),
|
vim.api.nvim_replace_termcodes("<C-\\><C-N>", true, true, true),
|
||||||
"Escape terminal mode",
|
"Escape terminal mode",
|
||||||
},
|
},
|
||||||
["<C-S-v>"] = {
|
|
||||||
'<C-w>"+pi',
|
|
||||||
"paste into terminal",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -395,27 +334,25 @@ M.edit = {
|
||||||
plugin = false,
|
plugin = false,
|
||||||
n = {
|
n = {
|
||||||
-- easy newline
|
-- easy newline
|
||||||
["OO"] = { "O<esc>", "insert a line above" },
|
["OO"] = { "O<esc>", "insert a line above", opts = { nowait = false } },
|
||||||
["oo"] = { "o<esc>", "insert a line below" },
|
["oo"] = { "o<esc>", "insert a line below", opts = { nowait = false } },
|
||||||
|
|
||||||
-- substitute (change hovered/selection with insert mode)
|
|
||||||
-- normally, this is s, but that is leaps binding now
|
|
||||||
["<leader>s"] = { "s", "replace with insert mode" },
|
|
||||||
|
|
||||||
-- split and join lines
|
-- split and join lines
|
||||||
["<C-s-j>"] = { "<cmd>join<cr>", "join lines" },
|
-- "J" for join is defaul
|
||||||
["<C-s-s>"] = { "i<cr><esc>l", "split line" },
|
["S"] = {
|
||||||
|
"i<cr><esc>l",
|
||||||
|
"split line",
|
||||||
|
},
|
||||||
|
|
||||||
-- do something useful with the arrows
|
-- do something useful with the arrows
|
||||||
["<Up>"] = { "<cmd> move-2<cr>", "Move line up" },
|
["<Up>"] = { "<cmd> move-2<cr>", "Move line up", opts = { expr = true } },
|
||||||
["<Down>"] = { "<cmd> move+<cr>", "Move line down" },
|
["<Down>"] = { "<cmd> move+<cr>", "Move line down", opts = { expr = true } },
|
||||||
["<Left>"] = { "<<", "Less indentation" },
|
["<Left>"] = { "<cmd> << <cr>", "Less indentation", opts = { expr = true } },
|
||||||
["<Right>"] = { ">>", "More indentation" },
|
["<Right>"] = { "<cmd> >> <cr>", "More indentation", opts = { expr = true } },
|
||||||
|
|
||||||
-- format with conform
|
-- format with conform
|
||||||
["<leader>ff"] = {
|
["<leader>ff"] = {
|
||||||
function()
|
function()
|
||||||
-- vim.lsp.buf.format()
|
|
||||||
require("conform").format()
|
require("conform").format()
|
||||||
end,
|
end,
|
||||||
"format buffer",
|
"format buffer",
|
||||||
|
@ -434,15 +371,13 @@ M.edit = {
|
||||||
["z="] = { "<cmd>Telescope spell_suggest<CR>", "Spell suggest" },
|
["z="] = { "<cmd>Telescope spell_suggest<CR>", "Spell suggest" },
|
||||||
},
|
},
|
||||||
v = {
|
v = {
|
||||||
-- NOTE: I would love to know why these commands work, they seem really
|
|
||||||
-- crazy.
|
|
||||||
["<Up>"] = { ":move'<-2<CR>gv=gv", "Move lines up", opts = { silent = true } },
|
|
||||||
["<Down>"] = { ":move'>+<CR>gv=gv", "Move lines down", opts = { silent = true } },
|
|
||||||
["<Left>"] = { "<gv", "Less indentation" },
|
["<Left>"] = { "<gv", "Less indentation" },
|
||||||
["<Right>"] = { ">gv", "More indentation" },
|
["<Right>"] = { ">gv", "More indentation" },
|
||||||
["<leader>fl"] = { ":!fmt -w80<CR>", "Reorder lines" },
|
|
||||||
},
|
},
|
||||||
x = {},
|
x = {
|
||||||
|
["<Up>"] = { "move'<-2<cr>gv=gv", "Move line up", opts = { expr = true } },
|
||||||
|
["<Down>"] = { "move'<-2<cr>gv=gv", "Move line down", opts = { expr = true } },
|
||||||
|
},
|
||||||
t = {
|
t = {
|
||||||
--big move
|
--big move
|
||||||
["<A-k>"] = { "<C-u>", "big step down" },
|
["<A-k>"] = { "<C-u>", "big step down" },
|
||||||
|
@ -560,104 +495,4 @@ M.goto_preview = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
M.debug = {
|
|
||||||
plugin = true,
|
|
||||||
n = {
|
|
||||||
["<leader>db"] = {
|
|
||||||
function()
|
|
||||||
require("dap").toggle_breakpoint()
|
|
||||||
end,
|
|
||||||
"toggle breakpoint",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dc"] = {
|
|
||||||
function()
|
|
||||||
require("dap").continue()
|
|
||||||
end,
|
|
||||||
"debug continue",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>ds"] = {
|
|
||||||
function()
|
|
||||||
require("dap").step_over()
|
|
||||||
end,
|
|
||||||
"debug step over",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>di"] = {
|
|
||||||
function()
|
|
||||||
require("dap").step_into()
|
|
||||||
end,
|
|
||||||
"debug step into",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dr"] = {
|
|
||||||
function()
|
|
||||||
require("dap").repl.open()
|
|
||||||
end,
|
|
||||||
"debug open repl",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dws"] = {
|
|
||||||
function()
|
|
||||||
local widgets = require "dap.ui.widgets"
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.scopes)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
"debug window scopes",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dwt"] = {
|
|
||||||
function()
|
|
||||||
local widgets = require "dap.ui.widgets"
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.threads)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
"debug window threads",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dwe"] = {
|
|
||||||
function()
|
|
||||||
local widgets = require "dap.ui.widgets"
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.expression)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
"debug window expressions",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dwi"] = {
|
|
||||||
function()
|
|
||||||
local widgets = require "dap.ui.widgets"
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.sessions)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
"debug window sessions",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dwf"] = {
|
|
||||||
function()
|
|
||||||
local widgets = require "dap.ui.widgets"
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.frames)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
"debug window frames",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>dK"] = {
|
|
||||||
function()
|
|
||||||
require("dap.ui.widgets").hover()
|
|
||||||
end,
|
|
||||||
"debug hover",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
["<leader>du"] = {
|
|
||||||
function()
|
|
||||||
require("dapui").toggle()
|
|
||||||
end,
|
|
||||||
"debug ui toggle",
|
|
||||||
noremap = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
@ -30,9 +30,7 @@ local plugins = {
|
||||||
|
|
||||||
-- Install a plugin
|
-- Install a plugin
|
||||||
{
|
{
|
||||||
-- exit insert mode with 'jk'
|
|
||||||
"max397574/better-escape.nvim",
|
"max397574/better-escape.nvim",
|
||||||
enabled = true,
|
|
||||||
event = "InsertEnter",
|
event = "InsertEnter",
|
||||||
config = function()
|
config = function()
|
||||||
require("better_escape").setup()
|
require("better_escape").setup()
|
||||||
|
@ -94,41 +92,14 @@ local plugins = {
|
||||||
["]"] = { name = "+next" },
|
["]"] = { name = "+next" },
|
||||||
["["] = { name = "+prev" },
|
["["] = { name = "+prev" },
|
||||||
["<leader>x"] = { name = "+diagnostics/quickfix" },
|
["<leader>x"] = { name = "+diagnostics/quickfix" },
|
||||||
["<leader>d"] = { name = "+debug" },
|
|
||||||
["<leader>c"] = { name = "+code" },
|
["<leader>c"] = { name = "+code" },
|
||||||
["<leader>g"] = { name = "+git" },
|
["<leader>g"] = { name = "+git" },
|
||||||
["<leader>t"] = { name = "+toggle/tools" },
|
["<leader>t"] = { name = "+toggle/tools" },
|
||||||
["<leader>w"] = { name = "+window/which" },
|
["<leader>w"] = { name = "+window/which" },
|
||||||
["<leader>f"] = { name = "+formatting" },
|
["<leader>f"] = { name = "+formatting" },
|
||||||
},
|
},
|
||||||
opts = {
|
|
||||||
triggers_nowait = {
|
|
||||||
-- marks
|
|
||||||
"`",
|
|
||||||
"'",
|
|
||||||
"g`",
|
|
||||||
"g'",
|
|
||||||
-- registers
|
|
||||||
'"',
|
|
||||||
"<c-r>",
|
|
||||||
-- spelling
|
|
||||||
"z=",
|
|
||||||
},
|
|
||||||
triggers_blacklist = {
|
|
||||||
-- list of mode / prefixes that should never be hooked by WhichKey
|
|
||||||
-- this is mostly relevant for keymaps that start with a native binding
|
|
||||||
i = { "j", "k" },
|
|
||||||
v = { "j", "k" },
|
|
||||||
n = { "o", "O" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"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",
|
||||||
|
@ -242,26 +213,16 @@ local plugins = {
|
||||||
icon = " ", -- icon used for the sign, and in search results
|
icon = " ", -- icon used for the sign, and in search results
|
||||||
color = "error", -- can be a hex color, or a named color (see below)
|
color = "error", -- can be a hex color, or a named color (see below)
|
||||||
alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords
|
alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords
|
||||||
|
-- signs = false, -- configure signs for some keywords individually
|
||||||
},
|
},
|
||||||
TODO = { icon = " ", color = "todo" },
|
TODO = { icon = " ", color = "info" },
|
||||||
HACK = { icon = " ", color = "hack" },
|
HACK = { icon = " ", color = "warning" },
|
||||||
SECURITY = { icon = " ", color = "security" },
|
SECURITY = { icon = " ", color = "warning" },
|
||||||
WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } },
|
WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } },
|
||||||
PERF = { icon = " ", color = "perf", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
|
PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
|
||||||
NOTE = { icon = " ", color = "hint", alt = { "INFO" } },
|
NOTE = { icon = " ", color = "hint", alt = { "INFO" } },
|
||||||
TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
|
TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
|
||||||
},
|
},
|
||||||
colors = {
|
|
||||||
error = { "DiagnosticError", "ErrorMsg", "#DC2626" },
|
|
||||||
warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" },
|
|
||||||
todo = { "DiagnosticTodo", "#80e64d" },
|
|
||||||
hint = { "DiagnosticHint", "#10B981" },
|
|
||||||
hack = { "DiagnosticHack", "#FF33FF" },
|
|
||||||
security = { "DiagnosticSecurity", "#FF6600" },
|
|
||||||
default = { "Identifier", "#7C3AED" },
|
|
||||||
test = { "DiagnosticTest", "#E6E600" },
|
|
||||||
perf = { "DiagnosticPerf", "#9999ff" },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -353,9 +314,6 @@ local plugins = {
|
||||||
"rcarriga/nvim-notify",
|
"rcarriga/nvim-notify",
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
require("notify").setup {
|
|
||||||
top_down = false,
|
|
||||||
}
|
|
||||||
require("noice").setup {
|
require("noice").setup {
|
||||||
lsp = {
|
lsp = {
|
||||||
override = {
|
override = {
|
||||||
|
@ -367,37 +325,14 @@ local plugins = {
|
||||||
-- produce a conflict
|
-- produce a conflict
|
||||||
signature = { enabled = false },
|
signature = { enabled = false },
|
||||||
hover = { enabled = false },
|
hover = { enabled = false },
|
||||||
progress = {
|
|
||||||
enabled = true,
|
|
||||||
-- Lsp Progress is formatted using the builtins for lsp_progress. See config.format.builtin
|
|
||||||
-- See the section on formatting for more details on how to customize.
|
|
||||||
--- @type NoiceFormat|string
|
|
||||||
format = "lsp_progress",
|
|
||||||
--- @type NoiceFormat|string
|
|
||||||
format_done = "lsp_progress_done",
|
|
||||||
throttle = 1000 / 30, -- frequency to update lsp progress message
|
|
||||||
view = "mini", -- default: mini
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
-- you can enable a preset for easier configuration
|
-- you can enable a preset for easier configuration
|
||||||
presets = {
|
presets = {
|
||||||
bottom_search = true, -- use a classic bottom cmdline for search
|
bottom_search = true, -- use a classic bottom cmdline for search
|
||||||
command_palette = true, -- position the cmdline and popupmenu together
|
command_palette = true, -- position the cmdline and popupmenu together
|
||||||
long_message_to_split = true, -- long messages will be sent to a split
|
long_message_to_split = true, -- long messages will be sent to a split
|
||||||
inc_rename = true, -- enables an input dialog for inc-rename.nvim
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||||
lsp_doc_border = true, -- add a border to hover docs and signature help
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||||
},
|
|
||||||
messages = {
|
|
||||||
enabled = true,
|
|
||||||
-- NOTE: we keep it with notify,
|
|
||||||
-- change this to something else if you want
|
|
||||||
view_error = "notify",
|
|
||||||
},
|
|
||||||
popupmenu = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
notify = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
|
@ -516,8 +451,7 @@ local plugins = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"glacambre/firenvim",
|
"glacambre/firenvim",
|
||||||
enabled = vim.g.started_by_firenvim,
|
lazy = not vim.g.started_by_firenvim,
|
||||||
lazy = false,
|
|
||||||
build = function()
|
build = function()
|
||||||
vim.fn["firenvim#install"](0)
|
vim.fn["firenvim#install"](0)
|
||||||
end,
|
end,
|
||||||
|
@ -527,7 +461,7 @@ local plugins = {
|
||||||
[".*"] = {
|
[".*"] = {
|
||||||
filename = "/tmp/{hostname}_{pathname%10}.{extension%5}",
|
filename = "/tmp/{hostname}_{pathname%10}.{extension%5}",
|
||||||
cmdline = "firenvim",
|
cmdline = "firenvim",
|
||||||
takeover = "never", -- can't open it with never at all?
|
takeover = "never", -- activate manually (<C-e>)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -555,11 +489,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",
|
||||||
|
@ -612,6 +546,7 @@ local plugins = {
|
||||||
-- :Chmod
|
-- :Chmod
|
||||||
-- and also some more, but those are easy done with shell
|
-- and also some more, but those are easy done with shell
|
||||||
"tpope/vim-eunuch",
|
"tpope/vim-eunuch",
|
||||||
|
enabled = false,
|
||||||
lazy = false,
|
lazy = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -622,18 +557,23 @@ local plugins = {
|
||||||
local nls = require "null-ls"
|
local nls = require "null-ls"
|
||||||
local builtins = nls.builtins
|
local builtins = nls.builtins
|
||||||
local sources = {
|
local sources = {
|
||||||
builtins.formatting.djlint.with {
|
builtins.formatting.black,
|
||||||
filetypes = { "django", "jinja.html", "htmldjango", "tera", "html" },
|
builtins.formatting.fixjson,
|
||||||
},
|
builtins.formatting.golines,
|
||||||
builtins.diagnostics.djlint.with {
|
builtins.formatting.markdownlint,
|
||||||
filetypes = { "django", "jinja.html", "htmldjango", "tera", "html" },
|
builtins.formatting.shellharden,
|
||||||
},
|
builtins.formatting.sql_formatter,
|
||||||
|
builtins.diagnostics.markdownlint,
|
||||||
|
builtins.diagnostics.mypy,
|
||||||
|
builtins.diagnostics.vint,
|
||||||
|
builtins.diagnostics.yamllint,
|
||||||
|
builtins.code_actions.shellcheck,
|
||||||
builtins.formatting.shfmt,
|
builtins.formatting.shfmt,
|
||||||
-- builtins.diagnostics.write_good.with {
|
builtins.diagnostics.write_good.with {
|
||||||
-- diagnostics_postprocess = function(diagnostic)
|
diagnostics_postprocess = function(diagnostic)
|
||||||
-- diagnostic.severity = vim.diagnostic.severity.HINT
|
diagnostic.severity = vim.diagnostic.severity.HINT
|
||||||
-- end,
|
end,
|
||||||
-- },
|
},
|
||||||
}
|
}
|
||||||
for _, source in ipairs(sources) do
|
for _, source in ipairs(sources) do
|
||||||
table.insert(opts.sources, source)
|
table.insert(opts.sources, source)
|
||||||
|
@ -668,19 +608,17 @@ local plugins = {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
-- change how the highlighting looks
|
-- change how the highlighting looks
|
||||||
vim.cmd "hi LspInlayHint guibg=(bg*0.8) guifg=#6699b3"
|
vim.cmd "hi LspInlayHint guibg=bg guifg=#804d66"
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ "kosayoda/nvim-lightbulb", event = { "BufReadPre", "BufNewFile" } },
|
{ "kosayoda/nvim-lightbulb", event = { "BufReadPre", "BufNewFile" } },
|
||||||
{
|
{
|
||||||
"Wansmer/treesj",
|
"Wansmer/treesj",
|
||||||
cmd = { "TSJJoin", "TSJSplit", "TSJSplit" },
|
lazy = false,
|
||||||
|
cmd = { "TSJJoin", "TSJSplit" },
|
||||||
keys = {
|
keys = {
|
||||||
{ "<C-s-j>", "<cmd>TSJJoin<CR>" },
|
{ "k", "<cmd>TSJJoin<CR>" },
|
||||||
{ "<C-s-s>", "<cmd>TSJSplit<CR>" },
|
{ "S", "<cmd>TSJSplit<CR>" },
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
use_default_keymaps = false,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -705,13 +643,13 @@ local plugins = {
|
||||||
local function get_git_diff(props)
|
local function get_git_diff(props)
|
||||||
local icons = { removed = "", changed = "", added = "" }
|
local icons = { removed = "", changed = "", added = "" }
|
||||||
local labels = {}
|
local labels = {}
|
||||||
-- local signs = vim.api.nvim_buf_get_var(props.buf, "gitsigns_status_dict")
|
local signs = vim.api.nvim_buf_get_var(props.buf, "gitsigns_status_dict")
|
||||||
-- local signs = vim.b.gitsigns_status_dict
|
-- local signs = vim.b.gitsigns_status_dict
|
||||||
-- for name, icon in pairs(icons) do
|
for name, icon in pairs(icons) do
|
||||||
-- if tonumber(signs[name]) and signs[name] > 0 then
|
if tonumber(signs[name]) and signs[name] > 0 then
|
||||||
-- table.insert(labels, { icon .. " " .. signs[name] .. " ", group = "Diff" .. name })
|
table.insert(labels, { icon .. " " .. signs[name] .. " ", group = "Diff" .. name })
|
||||||
-- end
|
end
|
||||||
-- end
|
end
|
||||||
if #labels > 0 then
|
if #labels > 0 then
|
||||||
table.insert(labels, { "| " })
|
table.insert(labels, { "| " })
|
||||||
end
|
end
|
||||||
|
@ -736,238 +674,6 @@ local plugins = {
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"mikesmithgh/kitty-scrollback.nvim",
|
|
||||||
enabled = true,
|
|
||||||
lazy = true,
|
|
||||||
cmd = { "KittyScrollbackGenerateKittens", "KittyScrollbackCheckHealth" },
|
|
||||||
event = { "User KittyScrollbackLaunch" },
|
|
||||||
-- version = '*', -- latest stable version, may have breaking changes if major version changed
|
|
||||||
-- version = '^3.0.0', -- pin major version, include fixes and features that do not have breaking changes
|
|
||||||
config = function()
|
|
||||||
require("kitty-scrollback").setup {
|
|
||||||
myconfig = function()
|
|
||||||
return { keymaps_enabled = false }
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
enabled = not vim.g.started_by_firenvim,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ziontee113/icon-picker.nvim",
|
|
||||||
keys = {
|
|
||||||
{ "<C-I>", "<cmd>IconPickerNormal<CR>", desc = "pick icon" },
|
|
||||||
{ "y<C-I>", "<cmd>IconPickerYank<CR>", desc = "yank icon" },
|
|
||||||
},
|
|
||||||
cmd = { "IconPickerInsert", "IconPickerYank", "IconPickerNormal" },
|
|
||||||
config = function()
|
|
||||||
require("icon-picker").setup { disable_legacy_commands = true }
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mfussenegger/nvim-dap",
|
|
||||||
lazy = false,
|
|
||||||
init = function()
|
|
||||||
require("core.utils").load_mappings "debug"
|
|
||||||
end,
|
|
||||||
config = function()
|
|
||||||
local dap = require "dap"
|
|
||||||
local mason_registry = require "mason-registry"
|
|
||||||
local codelldb_root = mason_registry.get_package("codelldb"):get_install_path() .. "/extension/"
|
|
||||||
local codelldb_path = codelldb_root .. "adapter/codelldb"
|
|
||||||
local liblldb_path = codelldb_root .. "lldb/lib/liblldb.so"
|
|
||||||
dap.defaults.fallback.external_terminal = {
|
|
||||||
command = "/home/plex/.local/bin/kitty",
|
|
||||||
args = {},
|
|
||||||
}
|
|
||||||
dap.adapters.gdb = {
|
|
||||||
type = "executable",
|
|
||||||
command = "gdb",
|
|
||||||
args = { "-i", "dap" },
|
|
||||||
}
|
|
||||||
dap.adapters.codelldb = {
|
|
||||||
type = "server",
|
|
||||||
port = "30333",
|
|
||||||
executable = {
|
|
||||||
command = codelldb_path,
|
|
||||||
args = { "--port", "30333" },
|
|
||||||
detached = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
dap.configurations.cpp = {
|
|
||||||
{
|
|
||||||
name = "Launch file",
|
|
||||||
type = "codelldb",
|
|
||||||
request = "launch",
|
|
||||||
program = function()
|
|
||||||
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
|
|
||||||
end,
|
|
||||||
args = function()
|
|
||||||
return require("custom.utils").tokenize_args(vim.fn.input "args: ")
|
|
||||||
end,
|
|
||||||
cwd = "${workspaceFolder}",
|
|
||||||
-- FIXME: perhaps we can put the stdio somewhere more practical
|
|
||||||
stopOnEntry = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
dap.configurations.c = dap.configurations.cpp
|
|
||||||
dap.configurations.rust = dap.configurations.cpp
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"rcarriga/nvim-dap-ui",
|
|
||||||
init = function()
|
|
||||||
require("core.utils").load_mappings "debug"
|
|
||||||
end,
|
|
||||||
dependencies = {
|
|
||||||
"mfussenegger/nvim-dap",
|
|
||||||
},
|
|
||||||
config = function(_, opts)
|
|
||||||
local dap = require "dap"
|
|
||||||
local dapui = require "dapui"
|
|
||||||
dapui.setup(opts)
|
|
||||||
dap.listeners.after.event_initialized["dapui_config"] = function()
|
|
||||||
dapui.open {}
|
|
||||||
end
|
|
||||||
dap.listeners.before.event_terminated["dapui_config"] = function()
|
|
||||||
-- dapui.close {}
|
|
||||||
end
|
|
||||||
dap.listeners.before.event_exited["dapui_config"] = function()
|
|
||||||
-- dapui.close {}
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ "folke/neodev.nvim", opts = {} },
|
|
||||||
{
|
|
||||||
"mrcjkb/rustaceanvim",
|
|
||||||
enabled = false,
|
|
||||||
version = "^4", -- Recommended
|
|
||||||
ft = { "rust" },
|
|
||||||
config = function()
|
|
||||||
local dap = require "dap"
|
|
||||||
vim.g.rustaceanvim = {
|
|
||||||
enable_clippy = true,
|
|
||||||
-- Plugin configuration
|
|
||||||
tools = {
|
|
||||||
enable_clippy = true,
|
|
||||||
},
|
|
||||||
-- LSP configuration
|
|
||||||
server = {
|
|
||||||
on_attach = function(client, bufnr)
|
|
||||||
-- you can also put keymaps in here
|
|
||||||
end,
|
|
||||||
settings = {
|
|
||||||
-- rust-analyzer language server configuration
|
|
||||||
["rust-analyzer"] = {
|
|
||||||
cargo = {
|
|
||||||
features = "all",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- DAP configuration
|
|
||||||
dap = {
|
|
||||||
-- FIXME: the rustaceanvim debug config does not map the stdout/stderr to the
|
|
||||||
-- opened terminal, effectively rendering debugging with it useless. Luckily,
|
|
||||||
-- we can use the regular nvim-dap and nvim-dap-ui.
|
|
||||||
adapter = dap.adapters.codelldb,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"theHamsta/nvim-dap-virtual-text",
|
|
||||||
lazy = false, -- PERF: this can be done more elegant
|
|
||||||
config = function()
|
|
||||||
require("nvim-dap-virtual-text").setup()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jvgrootveld/telescope-zoxide",
|
|
||||||
dependencies = "nvim-telescope/telescope.nvim",
|
|
||||||
config = function()
|
|
||||||
-- Useful for easily creating commands
|
|
||||||
local z_utils = require "telescope._extensions.zoxide.utils"
|
|
||||||
|
|
||||||
require("telescope").setup {
|
|
||||||
-- (other Telescope configuration...)
|
|
||||||
extensions = {
|
|
||||||
zoxide = {
|
|
||||||
prompt_title = "[ Walking on the shoulders of TJ ]",
|
|
||||||
mappings = {
|
|
||||||
default = {
|
|
||||||
after_action = function(selection)
|
|
||||||
print("Update to (" .. selection.z_score .. ") " .. selection.path)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
["<C-s>"] = {
|
|
||||||
before_action = function(selection)
|
|
||||||
print "before C-s"
|
|
||||||
end,
|
|
||||||
action = function(selection)
|
|
||||||
vim.cmd.edit(selection.path)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
-- Opens the selected entry in a new split
|
|
||||||
["<C-q>"] = { action = z_utils.create_basic_command "split" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require("telescope").load_extension "zoxide"
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ "nanotee/zoxide.vim", lazy = false, enabled = false },
|
|
||||||
{
|
|
||||||
"iamcco/markdown-preview.nvim",
|
|
||||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
|
||||||
ft = { "markdown" },
|
|
||||||
build = function()
|
|
||||||
vim.fn["mkdp#util#install"]()
|
|
||||||
end,
|
|
||||||
config = function()
|
|
||||||
-- Ugly fix for wsl not finding my browser
|
|
||||||
-- I HATE windows
|
|
||||||
vim.g.mkdp_echo_preview_url = 1
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"rhysd/vim-grammarous",
|
|
||||||
enabled = false,
|
|
||||||
-- TODO: figure out how i can login to languagetool.org
|
|
||||||
lazy = false,
|
|
||||||
config = function()
|
|
||||||
vim.g["grammarous#jar_url"] = "https://www.languagetool.org/download/LanguageTool-5.9.zip"
|
|
||||||
vim.g["grammarous#use_vim_spelllang"] = 1
|
|
||||||
vim.cmd [[
|
|
||||||
let g:grammarous#default_comments_only_filetypes = {
|
|
||||||
\ '*' : 1, 'help' : 0, 'markdown' : 0,
|
|
||||||
\ }
|
|
||||||
]]
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"NvChad/ui",
|
|
||||||
enabled = true,
|
|
||||||
branch = "v2.0",
|
|
||||||
lazy = false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
lazy = false,
|
|
||||||
dependencies = {
|
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
"NvChad/ui", -- load after nvchad ui
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- TODO: add lsp module for lualine
|
|
||||||
-- Maybe we can steal modules from the nvchad ui
|
|
||||||
require("lualine").setup()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return plugins
|
return plugins
|
||||||
|
|
|
@ -1,83 +0,0 @@
|
||||||
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 raw string 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 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
|
|
||||||
|
|
||||||
--- Try to require a module
|
|
||||||
--- @param module string module name
|
|
||||||
--- @return boolean available is the module available?
|
|
||||||
--- @return any loaded_module the loaded module if it is available
|
|
||||||
M.try_require = function(module)
|
|
||||||
local available, loaded_module = pcall(require, module)
|
|
||||||
if not available then
|
|
||||||
return available, nil
|
|
||||||
else
|
|
||||||
return available, loaded_module
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
|
@ -33,6 +33,7 @@ return {
|
||||||
"vimballPlugin",
|
"vimballPlugin",
|
||||||
"zip",
|
"zip",
|
||||||
"zipPlugin",
|
"zipPlugin",
|
||||||
|
"tutor",
|
||||||
"rplugin",
|
"rplugin",
|
||||||
"syntax",
|
"syntax",
|
||||||
"synmenu",
|
"synmenu",
|
||||||
|
|
|
@ -1,8 +1,34 @@
|
||||||
-- All plugins have lazy=true by default,to load a plugin on startup just lazy=false
|
-- All plugins have lazy=true by default,to load a plugin on startup just lazy=false
|
||||||
-- List of all default plugins & their definitions
|
-- List of all default plugins & their definitions
|
||||||
local default_plugins = {
|
local default_plugins = {
|
||||||
|
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
|
|
||||||
|
{
|
||||||
|
"NvChad/base46",
|
||||||
|
branch = "v2.0",
|
||||||
|
build = function()
|
||||||
|
require("base46").load_all_highlights()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"NvChad/ui",
|
||||||
|
branch = "v2.0",
|
||||||
|
lazy = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"NvChad/nvterm",
|
||||||
|
init = function()
|
||||||
|
require("core.utils").load_mappings "nvterm"
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
require "base46.term"
|
||||||
|
require("nvterm").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"NvChad/nvim-colorizer.lua",
|
"NvChad/nvim-colorizer.lua",
|
||||||
init = function()
|
init = function()
|
||||||
|
@ -47,6 +73,7 @@ local default_plugins = {
|
||||||
|
|
||||||
{
|
{
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
tag = "v0.9.2",
|
||||||
init = function()
|
init = function()
|
||||||
require("core.utils").lazy_load "nvim-treesitter"
|
require("core.utils").lazy_load "nvim-treesitter"
|
||||||
end,
|
end,
|
||||||
|
|
138
mini.lua
138
mini.lua
|
@ -1,138 +0,0 @@
|
||||||
local opt = vim.opt
|
|
||||||
local g = vim.g
|
|
||||||
g.maplocalleader = ";"
|
|
||||||
g.python3_host_prog = '/usr/bin/python3'
|
|
||||||
|
|
||||||
opt.mouse = "a" -- mouse does annoying things for me if it's not 'a'
|
|
||||||
opt.signcolumn = "yes"
|
|
||||||
opt.clipboard = "" -- don't just use the system clipboard
|
|
||||||
opt.wrap = false
|
|
||||||
opt.breakindent = false
|
|
||||||
opt.spell = false
|
|
||||||
opt.list = true
|
|
||||||
opt.conceallevel = 2
|
|
||||||
opt.undofile = true
|
|
||||||
opt.undolevels = 10000
|
|
||||||
opt.writebackup = false
|
|
||||||
opt.history = 5000
|
|
||||||
opt.shada = { "'1000", "<50", "s10", "h" }
|
|
||||||
|
|
||||||
-- Tabs and Indents
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
opt.textwidth = 80 -- Text width maximum chars before wrapping
|
|
||||||
opt.tabstop = 4 -- The number of spaces a tab is
|
|
||||||
opt.shiftwidth = 4 -- Number of spaces to use in auto(indent)
|
|
||||||
opt.smarttab = true -- Tab insert blanks according to 'shiftwidth'
|
|
||||||
opt.autoindent = true -- Use same indenting on new lines
|
|
||||||
opt.smartindent = true -- Smart autoindenting on new lines
|
|
||||||
opt.shiftround = true -- Round indent to multiple of 'shiftwidth'
|
|
||||||
|
|
||||||
-- Timing
|
|
||||||
-- ===
|
|
||||||
opt.ttimeout = true
|
|
||||||
opt.timeoutlen = 500 -- Time out on mappings
|
|
||||||
opt.ttimeoutlen = 10 -- Time out on key codes
|
|
||||||
opt.updatetime = 500 -- Idle time to write swap and trigger CursorHold
|
|
||||||
|
|
||||||
-- Searching
|
|
||||||
-- ===
|
|
||||||
opt.ignorecase = true -- Search ignoring case
|
|
||||||
opt.smartcase = true -- Keep case when searching with *
|
|
||||||
opt.infercase = true -- Adjust case in insert completion mode
|
|
||||||
opt.incsearch = true -- Incremental search
|
|
||||||
|
|
||||||
-- Formatting
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
opt.wrap = false -- No wrap by default
|
|
||||||
opt.linebreak = true -- Break long lines at 'breakat'
|
|
||||||
opt.breakat = "\\ \\ ;:,!?" -- Long lines break chars
|
|
||||||
opt.startofline = false -- Cursor in same column for few commands
|
|
||||||
opt.splitbelow = true -- Splits open bottom right
|
|
||||||
opt.splitright = true
|
|
||||||
opt.breakindentopt = { shift = 2, min = 20 }
|
|
||||||
opt.formatoptions = "" -- see :h fo-table & :h formatoptions
|
|
||||||
|
|
||||||
-- Diff
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
opt.diffopt:append { "iwhite", "indent-heuristic", "algorithm:patience" }
|
|
||||||
opt.wildmode = "longest:full,full" -- Command-line completion mode
|
|
||||||
|
|
||||||
-- Folds
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
opt.foldlevel = 10 -- start with all folds open
|
|
||||||
|
|
||||||
-- Editor UI
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
vim.o.guifont = "FiraCode Nerd Font:h15"
|
|
||||||
opt.termguicolors = true
|
|
||||||
opt.shortmess = "xsTOInfFitloCaAs"
|
|
||||||
opt.showmode = true -- Show mode in cmd window
|
|
||||||
opt.scrolloff = 2 -- Keep at least n lines above/below
|
|
||||||
opt.sidescrolloff = 0 -- Keep at least n lines left/right
|
|
||||||
opt.numberwidth = 2 -- Minimum number of columns to use for the line number
|
|
||||||
opt.number = true -- Show line numbers
|
|
||||||
opt.relativenumber = true -- Show relative line numbers
|
|
||||||
opt.ruler = true -- Default status ruler
|
|
||||||
opt.list = true -- Show hidden characters
|
|
||||||
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
|
|
||||||
opt.showtabline = 1 -- Don't show tabline in firenvim, unless multitab
|
|
||||||
opt.laststatus = 1 -- Don't show laststatus in firenvim
|
|
||||||
opt.wrap = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.g.neovide == true then
|
|
||||||
-- fulscreen with F11
|
|
||||||
vim.api.nvim_set_keymap("n", "<F11>", ":let g:neovide_fullscreen = !g:neovide_fullscreen<CR>", {})
|
|
||||||
|
|
||||||
vim.g.neovide_underline_automatic_scaling = true
|
|
||||||
|
|
||||||
-- vim.g.neovide_floating_blur_amount_x = 2.0
|
|
||||||
-- vim.g.neovide_floating_blur_amount_y = 2.0
|
|
||||||
|
|
||||||
vim.g.neovide_scroll_animation_length = 0.1
|
|
||||||
-- vim.g.neovide_cursor_animation_length = 0
|
|
||||||
-- vim.g.neovide_cursor_trail_size = 0
|
|
||||||
vim.g.neovide_hide_mouse_when_typing = true
|
|
||||||
|
|
||||||
vim.g.neovide_fullscreen = true
|
|
||||||
end
|
|
||||||
|
|
||||||
opt.helpheight = 0 -- Disable help window resizing
|
|
||||||
opt.winwidth = 30 -- Minimum width for active window
|
|
||||||
opt.winminwidth = 1 -- Minimum width for inactive windows
|
|
||||||
opt.winheight = 1 -- Minimum height for active window
|
|
||||||
opt.winminheight = 1 -- Minimum height for inactive window
|
|
||||||
|
|
||||||
opt.showcmd = false -- show command in status line
|
|
||||||
opt.cmdheight = 0
|
|
||||||
opt.cmdwinheight = 5 -- Command-line lines
|
|
||||||
opt.equalalways = true -- Resize windows on split or close
|
|
||||||
opt.colorcolumn = "+0" -- Column highlight at textwidth's max character-limit
|
|
||||||
|
|
||||||
opt.cursorline = true
|
|
||||||
opt.cursorlineopt = { "number", "screenline" }
|
|
||||||
|
|
||||||
opt.pumheight = 10 -- Maximum number of items to show in the popup menu
|
|
||||||
opt.pumwidth = 10 -- Minimum width for the popup menu
|
|
||||||
opt.pumblend = 10 -- Popup blend
|
|
||||||
|
|
||||||
-- Spelling correction
|
|
||||||
-- ===
|
|
||||||
|
|
||||||
opt.spell = false -- manually enable spell with `set spell` or `<leader>ts`
|
|
||||||
opt.spelllang = "en,de_de,"
|
|
||||||
opt.spellsuggest = "double,50,timeout:5000"
|
|
||||||
|
|
||||||
-- autocommands
|
|
||||||
-- ===
|
|
||||||
local function augroup(name)
|
|
||||||
return vim.api.nvim_create_augroup("plex_" .. name, {})
|
|
||||||
end
|
|
|
@ -260,96 +260,3 @@ popupmenu
|
||||||
#m
|
#m
|
||||||
ufo
|
ufo
|
||||||
treesitter
|
treesitter
|
||||||
GitLab
|
|
||||||
Gitea
|
|
||||||
Autocrate
|
|
||||||
YAML
|
|
||||||
TOML
|
|
||||||
autocrate
|
|
||||||
TBD
|
|
||||||
PRs
|
|
||||||
yaml
|
|
||||||
netpong
|
|
||||||
gehostet
|
|
||||||
IoT
|
|
||||||
einen
|
|
||||||
NTSecureGateway
|
|
||||||
SoC
|
|
||||||
Lockscreen
|
|
||||||
licht/!
|
|
||||||
Licht
|
|
||||||
ESRDD
|
|
||||||
erstmal
|
|
||||||
warmweißer
|
|
||||||
WG
|
|
||||||
SilverBullet
|
|
||||||
Forgejo
|
|
||||||
additional
|
|
||||||
scriptable
|
|
||||||
Autcrate
|
|
||||||
rustaceans
|
|
||||||
serv0
|
|
||||||
serv1
|
|
||||||
serv2
|
|
||||||
sequenceDiagram
|
|
||||||
style
|
|
||||||
BT
|
|
||||||
style
|
|
||||||
logdir
|
|
||||||
traceback
|
|
||||||
timestamp
|
|
||||||
LoggerBuilder
|
|
||||||
libpt
|
|
||||||
T2000
|
|
||||||
TINF22CS
|
|
||||||
Fliegendes/!
|
|
||||||
Gewöhnungsphase
|
|
||||||
Notfallmaßnahmen
|
|
||||||
übergriffig
|
|
||||||
Eligswalde
|
|
||||||
Usecases
|
|
||||||
OpenAPI
|
|
||||||
homeserver
|
|
||||||
theseus
|
|
||||||
Kernelmodus
|
|
||||||
entziehbares
|
|
||||||
vorkompiliert
|
|
||||||
vorkompilierte
|
|
||||||
Wordle
|
|
||||||
Quotientenkriterium
|
|
||||||
neovim
|
|
||||||
authentik
|
|
||||||
auth
|
|
||||||
Mesum
|
|
||||||
Raza
|
|
||||||
letsencrypt
|
|
||||||
MTA
|
|
||||||
STS
|
|
||||||
BIMI
|
|
||||||
Minecraft
|
|
||||||
exfiltrate
|
|
||||||
VPS
|
|
||||||
JVM
|
|
||||||
Dammit/!
|
|
||||||
Maxdorf
|
|
||||||
Leininger
|
|
||||||
Dockerfile
|
|
||||||
yml
|
|
||||||
CMD
|
|
||||||
UDPP
|
|
||||||
Unknowability
|
|
||||||
unknowability
|
|
||||||
talmann
|
|
||||||
Goldberger
|
|
||||||
ofc
|
|
||||||
shockwaves
|
|
||||||
deerhash
|
|
||||||
argon2
|
|
||||||
SCSS
|
|
||||||
Eligswalde's
|
|
||||||
Achmarel
|
|
||||||
aswell
|
|
||||||
AGI
|
|
||||||
FTL
|
|
||||||
Houten
|
|
||||||
Gabriella
|
|
||||||
|
|
Binary file not shown.
Loading…
Add table
Reference in a new issue