summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymaekers Luca <luca@spacehb.net>2025-04-05 15:36:24 +0200
committerRaymaekers Luca <luca@spacehb.net>2025-04-05 15:36:24 +0200
commitddad9ca6370c97991679bcfd91704e8548bb973a (patch)
tree09ebbb33f9a65be421890d4964f567676cf21967
parent7870db20ff0594474daf7cab957cd936d4c246c7 (diff)
parent2c433c348662ee6e4ee5c99a8f5e400858013fa2 (diff)
Merge branch 'fast'
-rw-r--r--after/plugin/conform.lua53
-rw-r--r--after/plugin/dap.lua75
-rw-r--r--after/plugin/gitsigns.lua25
-rw-r--r--after/plugin/harpoon.lua34
-rw-r--r--after/plugin/mini.lua14
-rw-r--r--after/plugin/telescope.lua14
-rw-r--r--after/plugin/treesitter.lua2
-rw-r--r--init.lua1
-rw-r--r--lua/config/autocmds.lua20
-rw-r--r--lua/config/lazy.lua172
-rw-r--r--lua/config/lsp.lua160
-rw-r--r--lua/config/map.lua67
-rw-r--r--lua/config/projects.lua2
-rw-r--r--lua/config/set.lua80
14 files changed, 58 insertions, 661 deletions
diff --git a/after/plugin/conform.lua b/after/plugin/conform.lua
deleted file mode 100644
index 643743f..0000000
--- a/after/plugin/conform.lua
+++ /dev/null
@@ -1,53 +0,0 @@
-local conform = require("conform")
-conform.setup({
- formatters_by_ft = {
- lua = { "stylua" },
- -- html = { "prettier" },
- go = { "goimports", "gofmt" },
- },
- format_on_save = {
- -- These options will be passed to conform.format()
- timeout_ms = 500,
- lsp_format = "never",
- },
-})
-
--- conform.formatters["clang-format"] = {
--- prepend_args = {
--- "--style",
--- "{"
--- .. "IndentWidth: 4, "
--- .. "AlignAfterOpenBracket: BlockIndent, "
--- .. "AlignArrayOfStructures: Right, "
--- .. "BreakBeforeBraces: Linux, "
--- .. "PointerAlignment: Left,"
--- .. "AllowShortIfStatementsOnASingleLine: true, "
--- .. "AllowShortLoopsOnASingleLine: true, "
--- .. "AllowAllArgumentsOnNextLine: true, "
--- .. "AllowShortCaseLabelsOnASingleLine: true, "
--- .. "AlwaysBreakAfterReturnType: AllDefinitions, "
--- .. "ColumnLimit: "
--- .. vim.o.tw
--- .. "}",
--- },
--- }
-
--- -- ID of autocmd for CFormat
--- vim.b.CFormatID = nil
--- -- Enable formatting on save for C only when using the :CFormat command
--- vim.api.nvim_create_user_command("CFormat", function()
--- if vim.b.CFormatID == nil then
--- vim.b.CFormatID = vim.api.nvim_create_autocmd("BufWritePre", {
--- buffer = 0,
--- callback = function()
--- conform.format({ formatters = { "clang-format" } })
--- end,
--- })
--- conform.format({ formatters = { "clang-format" } })
--- print("Auto formatting enabled.")
--- else
--- vim.api.nvim_del_autocmd(vim.b.CFormatID)
--- print("Auto formatting disabled.")
--- vim.b.CFormatID = nil
--- end
--- end, {})
diff --git a/after/plugin/dap.lua b/after/plugin/dap.lua
deleted file mode 100644
index fd141bb..0000000
--- a/after/plugin/dap.lua
+++ /dev/null
@@ -1,75 +0,0 @@
-local dap = require("dap")
-local dapui = require("dapui")
-local widgets = require("dap.ui.widgets")
-local map = vim.keymap.set
-
-dapui.setup()
--- stylua: ignore start
-map("n", " bu", function() dapui.toggle() end, { desc = "Toggle dap-ui" })
-map("n", " bb", function() dap.toggle_breakpoint() end, { desc = "Toggle breakpoint" })
-map("n", " bc", function() dap.continue() end, {desc="Continue"})
-map("n", " bs", function() dap.step_over() end, {desc="Step over"})
-map("n", " bi", function() dap.step_into() end, {desc="Step into"})
-map("n", " bo", function() dap.step_out() end, {desc="Step out"})
-map({ "n", "v" }, " bh", function() widgets.hover() end, {desc="Show hover"})
-map({ "n", "v" }, " bv", function() widgets.preview() end, {desc="Show preview"})
-map("n", " bf", function() widgets.centered_float(widgets.frames) end, {desc="Show frames"})
-map("n", " bp", function() widgets.centered_float(widgets.scopes) end, {desc="Show scopes"})
--- stylua: ignore end
-map("n", " bl", function()
- dap.set_breakpoint(nil, nil, vim.fn.input("Log point message: "))
-end, { desc = "Break point with log" })
-
-dap.adapters.gdb = {
- id = "gdb",
- type = "executable",
- command = "gdb",
- args = { "--quiet", "--interpreter=dap" },
-}
-
-dap.configurations.c = {
- {
- name = "Run (GDB)",
- type = "gdb",
- request = "launch",
- -- This requires special handling of 'run_last', see
- -- https://github.com/mfussenegger/nvim-dap/issues/1025#issuecomment-1695852355
- program = function()
- local path = vim.fn.input({
- prompt = "Path to executable: ",
- default = vim.fn.getcwd() .. "/",
- completion = "file",
- })
-
- return (path and path ~= "") and path or dap.ABORT
- end,
- },
- {
- name = "Run with arguments (GDB)",
- type = "gdb",
- request = "launch",
- -- This requires special handling of 'run_last', see
- -- https://github.com/mfussenegger/nvim-dap/issues/1025#issuecomment-1695852355
- program = function()
- local path = vim.fn.input({
- prompt = "Path to executable: ",
- default = vim.fn.getcwd() .. "/",
- completion = "file",
- })
-
- return (path and path ~= "") and path or dap.ABORT
- end,
- args = function()
- local args_str = vim.fn.input({
- prompt = "Arguments: ",
- })
- return vim.split(args_str, " +")
- end,
- },
- {
- name = "Attach to process (GDB)",
- type = "gdb",
- request = "attach",
- processId = require("dap.utils").pick_process,
- },
-}
diff --git a/after/plugin/gitsigns.lua b/after/plugin/gitsigns.lua
deleted file mode 100644
index 46536b1..0000000
--- a/after/plugin/gitsigns.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local gitsigns = require("gitsigns")
-gitsigns.setup({
- signs = {
- add = { text = "▎" },
- change = { text = "▎" },
- delete = { text = "▎" },
- topdelete = { text = "▎" },
- changedelete = { text = "▎" },
- untracked = { text = "▎" },
- },
- numhl = false,
- attach_to_untracked = true,
- update_debounce = 0,
- on_attach = function()
- local map = vim.keymap.set
- -- stylua: ignore start
- map("n", "]g", gitsigns.next_hunk, { desc = "Next git hunk" })
- map("n", "[g", gitsigns.prev_hunk, { desc = "Previous git hunk" })
- map("n", " gd", gitsigns.toggle_deleted, { desc="Toggle deleted"})
- map("n", " gr", gitsigns.reset_hunk, { desc="Reset hunk"})
- map("n", " gs", gitsigns.stage_hunk, { desc="Stage hunk"})
- map("n", " gu", gitsigns.undo_stage_hunk, { desc="Undo stage hunk"})
- map("n", " gb", gitsigns.blame, { desc="Blame"})
- end,
-})
diff --git a/after/plugin/harpoon.lua b/after/plugin/harpoon.lua
deleted file mode 100644
index 999b957..0000000
--- a/after/plugin/harpoon.lua
+++ /dev/null
@@ -1,34 +0,0 @@
-local harpoon = require("harpoon")
-local map = vim.keymap.set
-
--- REQUIRED
-harpoon:setup()
-
-map("n", "<C-h>", function()
- harpoon.ui:toggle_quick_menu(harpoon:list())
-end, { desc = "Harpoon pick menu" })
-
-map("n", " ha", function()
- harpoon:list():add()
- print("Added to harpoon.")
-end, { desc = "Harpoon add" })
-map("n", " h1", function()
- harpoon:list():select(1)
-end, { desc = "Harpoon 1" })
-map("n", " h2", function()
- harpoon:list():select(2)
-end, { desc = "Harpoon 2" })
-map("n", " h3", function()
- harpoon:list():select(3)
-end, { desc = "Harpoon 3" })
-map("n", " h4", function()
- harpoon:list():select(4)
-end, { desc = "Harpoon 4" })
-
--- Toggle previous & next buffers stored within Harpoon list
-map("n", " hp", function()
- harpoon:list():prev()
-end, { desc = "Harpoon previous" })
-map("n", " hn", function()
- harpoon:list():next()
-end, { desc = "Harpoon next" })
diff --git a/after/plugin/mini.lua b/after/plugin/mini.lua
index 6a35641..2ef3eff 100644
--- a/after/plugin/mini.lua
+++ b/after/plugin/mini.lua
@@ -5,12 +5,12 @@ require("mini.statusline").setup({
require("mini.surround").setup({
silent = true,
mappings = {
- add = "gsa", -- Add surrounding in Normal and Visual modes
- delete = "gsd", -- Delete surrounding
- find = "gsf", -- Find surrounding (to the right)
- find_left = "gsF", -- Find surrounding (to the left)
- highlight = "gsh", -- Highlight surrounding
- replace = "gsr", -- Replace surrounding
- update_n_lines = "gsn", -- Update `n_lines`
+ add = "gsa",
+ delete = "gsd",
+ find = "gsf",
+ find_left = "gsF",
+ highlight = "gsh",
+ replace = "gsr",
+ update_n_lines = "gsn",
},
})
diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua
index c77e464..b481fa3 100644
--- a/after/plugin/telescope.lua
+++ b/after/plugin/telescope.lua
@@ -1,5 +1,8 @@
+local telescope = require("telescope")
+local builtin = require("telescope.builtin")
local map = vim.keymap.set
-require("telescope").setup({
+
+telescope.setup({
defaults = {
path_display = {
shorten = {
@@ -23,17 +26,18 @@ require("telescope").setup({
},
})
-local builtin = require("telescope.builtin")
map("n", " ff", builtin.find_files)
-map("n", " bl", builtin.buffers)
+map("n", " fb", builtin.buffers)
map("n", " fp", builtin.git_files)
map("n", " fw", builtin.live_grep)
map("n", " fh", builtin.help_tags)
+map("n", " fk", builtin.keymaps)
+map("n", " fs", builtin.spell_suggest)
-- symbols
map("n", " fe", "<cmd>lua require'telescope.builtin'.symbols{ sources = {'emoji', 'gitmoji'} }<CR>")
map("n", " fn", "<cmd>lua require'telescope.builtin'.symbols{ sources = {'nerd'} }<CR>")
map("n", " fj", "<cmd>lua require'telescope.builtin'.symbols{ sources = {'julia'} }<CR>")
+map("n", " ft", "<cmd>lua require'telescope.builtin'.treesitter{ symbols = {'function'} }<CR>")
-require("telescope").load_extension("ui-select")
-require("telescope").load_extension("fzf")
+telescope.load_extension("fzf")
diff --git a/after/plugin/treesitter.lua b/after/plugin/treesitter.lua
index a0e8014..a625f4c 100644
--- a/after/plugin/treesitter.lua
+++ b/after/plugin/treesitter.lua
@@ -20,5 +20,3 @@ require("nvim-treesitter.configs").setup({
},
},
})
--- vim.api.nvim_buf_create_user_command
--- vim.keymap.set("n", "")
diff --git a/init.lua b/init.lua
index 5185f90..e1860a9 100644
--- a/init.lua
+++ b/init.lua
@@ -1,6 +1,5 @@
require("config.lazy")
require("config.set")
require("config.map")
-require("config.lsp")
require("config.autocmds")
require("config.projects")
diff --git a/lua/config/autocmds.lua b/lua/config/autocmds.lua
index f6033d6..1a4970b 100644
--- a/lua/config/autocmds.lua
+++ b/lua/config/autocmds.lua
@@ -33,14 +33,6 @@ autocmd("TermOpen", {
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", { noremap = true })
end,
})
--- -- close automatically when shell process exits
--- -- TODO: does not work
--- autocmd("TermClose", {
--- callback = function()
--- vim.cmd("bdelete")
--- end,
--- })
-vim.keymap.set("n", "!", "<cmd>sp<CR><cmd>term<CR>", { desc = "Open terminal" })
-- [[ preserve last position ]]
autocmd("BufReadPost", {
@@ -72,17 +64,5 @@ autocmd(
}
)
--- autocmd({ "BufNewFile", "BufRead" }, {
--- pattern = "*",
--- callback = function()
--- local output = vim.fn.system("git rev-parse --is-inside-work-tree")
--- if output == "true\n" then
--- vim.opt.signcolumn = "yes"
--- else
--- vim.opt.signcolumn = "no"
--- end
--- end,
--- })
-
-- Automatically resize panes
autocmd("VimResized", { pattern = "*", command = "wincmd =" })
diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua
index 1bd0b8a..3fd9dc9 100644
--- a/lua/config/lazy.lua
+++ b/lua/config/lazy.lua
@@ -6,132 +6,16 @@ if not vim.loop.fs_stat(lazypath) then
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
- "--branch=stable", -- latest stable release
+ "--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
--- plugins installation and configuration
require("lazy").setup({
"echasnovski/mini.nvim",
- "tpope/vim-fugitive",
- "lewis6991/gitsigns.nvim",
"tpope/vim-vinegar",
- "tpope/vim-eunuch",
- -- "mg979/vim-visual-multi",
- {
- "brenton-leighton/multiple-cursors.nvim",
- version = "*", -- Use the latest tagged version
- opts = {
- custom_key_maps = {
- {
- "n",
- "<S-Tab>",
- function()
- require("multiple-cursors").align()
- end,
- },
- },
- },
- keys = {
- { "<C-j>", "<Cmd>MultipleCursorsAddDown<CR>", mode = { "n", "x" }, desc = "Add cursor and move down" },
- { "<C-k>", "<Cmd>MultipleCursorsAddUp<CR>", mode = { "n", "x" }, desc = "Add cursor and move up" },
-
- { "<C-Up>", "<Cmd>MultipleCursorsAddUp<CR>", mode = { "n", "i", "x" }, desc = "Add cursor and move up" },
- {
- "<C-Down>",
- "<Cmd>MultipleCursorsAddDown<CR>",
- mode = { "n", "i", "x" },
- desc = "Add cursor and move down",
- },
-
- {
- "<Leader>m",
- "<Cmd>MultipleCursorsAddVisualArea<CR>",
- mode = { "x" },
- desc = "Add cursors to the lines of the visual area",
- },
-
- { "<Leader>a", "<Cmd>MultipleCursorsAddMatches<CR>", mode = { "n", "x" }, desc = "Add cursors to cword" },
- {
- "<Leader>A",
- "<Cmd>MultipleCursorsAddMatchesV<CR>",
- mode = { "n", "x" },
- desc = "Add cursors to cword in previous area",
- },
-
- {
- "<Leader>d",
- "<Cmd>MultipleCursorsAddJumpNextMatch<CR>",
- mode = { "n", "x" },
- desc = "Add cursor and jump to next cword",
- },
- { "<Leader>D", "<Cmd>MultipleCursorsJumpNextMatch<CR>", mode = { "n", "x" }, desc = "Jump to next cword" },
-
- { "<Leader>l", "<Cmd>MultipleCursorsLock<CR>", mode = { "n", "x" }, desc = "Lock virtual cursors" },
- },
- },
- "jghauser/follow-md-links.nvim",
- "stevearc/conform.nvim",
"norcalli/nvim-colorizer.lua",
- "neovim/nvim-lspconfig",
- {
- "williamboman/mason.nvim",
- dependencies = {
- "williamboman/mason-lspconfig.nvim",
- -- for formatters and linters
- "WhoIsSethDaniel/mason-tool-installer.nvim",
- },
- config = function()
- require("mason").setup({
- ui = {
- border = "rounded",
- },
- })
- end,
- },
- {
- --snippets
- "L3MON4D3/LuaSnip",
- version = "v2.*",
- build = "make install_jsregexp",
- },
- -- "mfussenegger/nvim-lint",
- -- {
- -- "ray-x/lsp_signature.nvim",
- -- event = "LspAttach",
- -- },
- -- {
- -- "hrsh7th/nvim-cmp",
- -- dependencies = {
- -- "hrsh7th/cmp-nvim-lsp",
- -- "hrsh7th/cmp-path",
- -- "hrsh7th/cmp-buffer",
- -- "saadparwaiz1/cmp_luasnip",
- -- "onsails/lspkind.nvim",
- -- },
- -- event = { "InsertEnter", "CmdlineEnter" },
- -- },
- {
- "folke/which-key.nvim",
- event = "VeryLazy",
- opts = {
- win = {
- border = "rounded",
- },
- },
- keys = {
- {
- "<leader>?",
- function()
- require("which-key").show({ global = false })
- end,
- desc = "Buffer Local Keymaps (which-key)",
- },
- },
- },
-
{
"christoomey/vim-tmux-navigator",
cmd = {
@@ -151,49 +35,22 @@ require("lazy").setup({
},
{
- "ray-x/go.nvim",
- dependencies = { -- optional packages
- "ray-x/guihua.lua",
- "neovim/nvim-lspconfig",
- "nvim-treesitter/nvim-treesitter",
- },
- config = function()
- require("go").setup()
- end,
- event = { "CmdlineEnter" },
- ft = { "go", "gomod" },
- build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
- },
-
- {
- "dstein64/vim-startuptime",
- cmd = "StartupTime",
- init = function()
- vim.g.startuptime_tries = 10
- end,
- },
-
- {
"gbprod/nord.nvim",
lazy = false,
priority = 1000,
config = function()
require("nord").setup({
transparent = false,
- terminal_colors = true, -- `:terminal`
+ terminal_colors = true,
diff = { mode = "bg" },
borders = true,
- -- values : [bg|fg|none]
errors = { mode = "bg" },
- -- values : [vim|vscode]
search = { theme = "vim" },
styles = {
- -- `:help nvim_set_hl`
comments = { italic = true },
keywords = { bold = true },
functions = { bold = true },
variables = { bold = true },
- -- To customize lualine/bufferline
bufferline = {
current = {},
modified = { italic = true },
@@ -204,7 +61,6 @@ require("lazy").setup({
end,
},
{
- -- Fuzzy Finder (files, lsp, etc)
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
@@ -220,22 +76,7 @@ require("lazy").setup({
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
},
- {
- "ThePrimeagen/harpoon",
- branch = "harpoon2",
- requires = { "nvim-lua/plenary.nvim", lazy = true },
- },
-
- -- DAP
- {
- {
- "mfussenegger/nvim-dap",
- },
- { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" } },
- },
}, {
-
- -- lazy options
performance = {
rtp = {
disabled_plugins = {
@@ -247,13 +88,4 @@ require("lazy").setup({
},
},
},
- -- install = {
- -- colorscheme = { "nord" },
- -- missing = false,
- -- },
- -- change_detection = {
- -- enabled = true,
- -- notify = true,
- -- },
- -- checker = { enabled = true, notify = false },
})
diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua
deleted file mode 100644
index 10235bf..0000000
--- a/lua/config/lsp.lua
+++ /dev/null
@@ -1,160 +0,0 @@
--- [[ Keybinds ]]
-local diagnostic = vim.diagnostic
-local lbuf = vim.lsp.buf
-local map = vim.keymap.set
-local builtin = require("telescope.builtin")
-
-map("n", " <cr>", lbuf.code_action, { desc = "Code actions" })
-map("n", "gd", lbuf.definition, { desc = "Definition" })
-map("i", "<C-k>", lbuf.hover)
-map("n", " lr", lbuf.rename, { desc = "Rename" })
-map("n", " li", builtin.lsp_implementations, { desc = "Implementation" })
-map("n", " ls", lbuf.signature_help, { desc = "Signature help" })
-map("n", " lh", lbuf.typehierarchy, { desc = "Type hierarchy" })
-map("n", " lf", lbuf.references, { desc = "References" })
-map("n", " ll", lbuf.document_symbol, { desc = "List symbols" })
-map("n", " lt", lbuf.type_definition, { desc = "Type definition" })
--- map("n", " lls", vim.lsp.handlers["workspace/symbol"])
-map("n", " lq", diagnostic.setqflist, { desc = "Diagnostic quickfix" })
-map("n", " >>", diagnostic.goto_next, { desc = "Diagnostic next" })
-map("n", " <<", diagnostic.goto_prev, { desc = "Diagnostic prev" })
-map("n", " <,", function()
- diagnostic.goto_next({ severity = diagnostic.ERROR })
-end, { desc = "Diagnostic next error" })
-map("n", " >.", function()
- diagnostic.goto_prev({ severity = diagnostic.ERROR })
-end, { desc = "Diagnostic prev error" })
-map("n", " vf", diagnostic.open_float, { desc = "Diagnostics open floating window" })
--- map("n", " ")
-
--- vim.lsp.inlay_hint(0, false)
-
--- [[ LSP Setups ]]
-
-local lspconfig = require("lspconfig")
-lspconfig.gopls.setup({})
--- lspconfig.clangd.setup({})
--- lspconfig.emmet_ls.setup({})
--- lspconfig.ts_ls.setup({})
--- lspconfig.powershell_es.setup({
--- cmd = {
--- "pwsh",
--- "-NoLog",
--- "-NoProfile",
--- "-Command",
--- "/home/aluc/.local/share/nvim/mason/packages/" ..
--- "powershell-editor-services/PowerShellEditorServices/Start-EditorServices.ps1",
--- },
--- })
--- lspconfig.lua_ls.setup({
--- -- with neovim support
--- on_init = function(client)
--- local path = client.workspace_folders[1].name
--- if vim.loop.fs_stat(path .. "/.luarc.json") or vim.loop.fs_stat(path .. "/.luarc.jsonc") then
--- return
--- end
---
--- client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, {
--- runtime = {
--- version = "LuaJIT",
--- },
--- -- Make the server aware of Neovim runtime files
--- workspace = {
--- checkThirdParty = false,
--- library = {
--- vim.env.VIMRUNTIME,
--- },
--- },
--- })
--- end,
--- settings = {
--- Lua = {},
--- },
--- })
-
--- rounded border around floating windows
-local _border = "rounded"
-vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
- border = _border,
-})
-vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
- border = _border,
-})
-vim.diagnostic.config({
- float = { border = _border },
-})
-
-local autocmd = vim.api.nvim_create_autocmd
-autocmd("LspAttach", {
- callback = function(args)
- local client = vim.lsp.get_client_by_id(args.data.client_id)
- if client == nil then
- return
- end
- if vim.tbl_contains({ "null-ls" }, client.name) then -- blacklist lsp
- return
- end
- end,
-})
-
-local ls = require("luasnip")
-
-local parse_snippet = ls.parser.parse_snippet
-
-map({ "i", "s" }, "<C-h>", function()
- if ls.expand_or_locally_jumpable() then
- ls.expand_or_jump()
- end
-end, { silent = true })
-map({ "i", "s" }, "<C-l>", function()
- if ls.locally_jumpable(-1) then
- ls.jump(-1)
- end
-end, { silent = true })
-map({ "i", "s" }, "<C-c>", function()
- if ls.choice_active() then
- ls.change_choice(1)
- end
-end, { silent = true })
-
-ls.config.set_config({
- history = true,
- -- Will update multiple nodes at the same time when in insert mode
- update_events = { "TextChanged", "TextChangedI" },
-})
-
-ls.add_snippets("go", {
- parse_snippet("main", "package main\n\nfunc main() {\n\t$0\n}"),
- parse_snippet("e", "if err != nil {\n\tpanic(err)$1\n}$0"),
- parse_snippet("ee", "if err != nil {\n\tfmt.Fprintln(os.Stderr, err)$1\n\tos.Exit(${2:1})\n}\n$0"),
- parse_snippet("eif", "if err := $1; err != nil {\n\tfmt.Println(err)$2\n}\n$0"),
- parse_snippet("pf", "fmt.Printf($0)"),
- parse_snippet("pl", "fmt.Println($0)"),
-})
-ls.add_snippets("sh", {
- parse_snippet("!", "#!/bin/sh\n$0"),
- parse_snippet("if", "if ${1:condition}; then\n\t$0\nfi"),
- parse_snippet("while", "while ${1:condition}; do\n\t$0\ndone"),
- parse_snippet("for", "for ${1:v} in ${2:list}; do\n\t$0\ndone"),
- parse_snippet("case", "case ${1:\\$var} in\n\t$0\nesac"),
-})
-ls.add_snippets("c", {
- parse_snippet("main", "int\nmain(int Argc, char *Args[])\n{\n\t$0\n\treturn 0;\n}"),
- parse_snippet(
- "uints",
- [[#include <stdint.h>
-typedef uint8_t u8;
-typedef uint16_t u16;
-typedef uint32_t u32;
-typedef uint64_t u64;
-typedef int8_t i8;
-typedef int16_t i16;
-typedef int32_t i32;
-typedef int64_t i64;
-typedef float f32;
-typedef double f64;
-]]
- ),
-})
-ls.add_snippets("typescript", { parse_snippet("cl", "console.log($0);") })
-ls.add_snippets("html", { parse_snippet("t", [[<$1>$0</$1>]]) })
diff --git a/lua/config/map.lua b/lua/config/map.lua
index 27c6bb9..80e2b6c 100644
--- a/lua/config/map.lua
+++ b/lua/config/map.lua
@@ -4,95 +4,70 @@ local map = vim.keymap.set
vim.g.mapleader = " "
vim.g.maplocalleader = ","
+local function verbose_toggle(value, name)
+ local toggle = value == false
+ if toggle == true then
+ print("Enabled " .. name .. ".")
+ else
+ print("Disabled " .. name .. ".")
+ end
+ return toggle
+end
-- open config
map("n", " c", function()
vim.cmd("cd ~/.config/nvim")
vim.cmd("e " .. "init.lua")
end, { desc = "Open neovim config file" })
--- Move text easilly
-map("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move selected text up" })
-map("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move selected text down" })
-map("n", "<M-b>", "<cmd>make<cr>", { desc = "Make" })
-
--- better find next and previous
-map("n", "n", "nzzzv", { desc = "Keep cursor in middle with search" })
-map("n", "N", "Nzzzv", { desc = "Keep cursor in middle with search" })
-
-map("n", "J", "mzJ`z", { desc = "Move up next line with space in between" })
-
--- greatest remap ever
-map("x", " p", [["_dP]], { desc = "Paste while keeping the registry" })
-
--- moving
+-- insert navigation
map("i", "<C-a>", "<C-o>I", { noremap = true })
map("i", "<C-e>", "<C-o>A", { noremap = true })
-- buffers
-map("n", " sp", "<cmd>sp<cr>", { desc = "Open horizontal split" })
-map("n", " vs", "<cmd>vs<cr>", { desc = "Open vertical split" })
map("n", " q", "<cmd>q!<cr>", { noremap = true })
map("n", " Q", "<cmd>qa!<cr>", { noremap = true })
--- close all except focused buffer
-map("n", " 1", "<cmd>%bd|e#<cr>", { noremap = true })
--- next tab
-map("n", "+", "<cmd>tabe .<cr>", { noremap = true })
+map("n", "!", "<cmd>sp<CR><cmd>term<CR>", { desc = "Open terminal" })
+map("n", "<M-b>", "<cmd>make<cr>", { desc = "Make" })
-- better indenting
map("v", "<", "<gv")
map("v", ">", ">gv")
+map("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move selected text up" })
+map("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move selected text down" })
+map("x", " p", [["_dP]], { desc = "Paste while keeping the registry" })
+map("n", "n", "nzzzv", { desc = "Keep cursor in middle with search" })
+map("n", "N", "Nzzzv", { desc = "Keep cursor in middle with search" })
+map("n", "J", "mzJ`z", { desc = "Move up next line with space in between" })
-- allow for use of system clipboard fast
map({ "n", "v" }, " y", [["+y]])
map("n", " Y", [["+Y]])
map({ "n", "v" }, " P", [["+p]])
--- templates
-map("n", "<LocalLeader>rt", ":-1r " .. vim.fn.stdpath("config") .. "/templates", { noremap = true })
-
-- hide all
local hidden = true -- flag
vim.api.nvim_create_user_command("Hide", function()
hidden = hidden == false
vim.opt.showmode = hidden
vim.opt.ruler = hidden
- vim.opt.nu = hidden
- vim.opt.rnu = hidden
vim.opt.showcmd = hidden
vim.opt.laststatus = hidden and 2 or 0
- vim.opt.signcolumn = hidden and "yes" or "no"
end, {})
--- write
map("n", " x", "!cx %", { desc = "Toggle file as executable" })
map("n", " w", "<cmd>write<cr>", { noremap = true })
-map("n", " W", "<cmd>write!<cr>", { noremap = true })
-map("n", " e", "<cmd>edit<cr>", { noremap = true })
map("n", ",s", function()
vim.cmd.source()
print("Sourced.")
end, { noremap = true })
--- Lazy
-map("n", " P", "<cmd>Lazy<cr>", { noremap = true })
-
-local function verbose_toggle(value, name)
- local toggle = value == false
- if toggle == true then
- print("Enabled " .. name .. ".")
- else
- print("Disabled " .. name .. ".")
- end
- return toggle
-end
-
-- spelling
map("n", " ts", function()
vim.o.spell = verbose_toggle(vim.o.spell, "spelling")
end, { noremap = true, desc = "Toggle spelling" })
-map("n", "<C-s>g", "z=1<cr><cr>", { noremap = true })
-vim.diagnostic.enable(false)
+map("n", "<c-s>g", "z=1<cr><cr>", { noremap = true, desc = "Correct word" })
+
map("n", " td", function()
vim.diagnostic.enable(verbose_toggle(vim.diagnostic.is_enabled(), "diagnostics"))
end, { desc = "Toggle diagnostics" })
@@ -112,5 +87,3 @@ vim.api.nvim_create_user_command("Scratch", function()
setlocal noswapfile
]])
end, {})
-
-map("n", "<M-b>", "<cmd>make<cr>", { desc = "Make" })
diff --git a/lua/config/projects.lua b/lua/config/projects.lua
index 8b71cb1..e2ad00a 100644
--- a/lua/config/projects.lua
+++ b/lua/config/projects.lua
@@ -14,7 +14,7 @@ M.Projects = {
M.InProject = false
-for At, Project in pairs(M.Projects) do
+for _, Project in pairs(M.Projects) do
if string.find(CWD, Project.Path) then
M.InProject = true
Project.Options()
diff --git a/lua/config/set.lua b/lua/config/set.lua
index 4e4e045..467f46d 100644
--- a/lua/config/set.lua
+++ b/lua/config/set.lua
@@ -1,120 +1,78 @@
local opt = vim.opt
+-- TODO: Check if HOME directory exists
+local home = os.getenv("HOME")
--- Don't highlight on search
opt.hlsearch = false
opt.incsearch = true
opt.conceallevel = 2
-
--- Enable line numbers by default
--- opt.number = true
--- opt.relativenumber = true
opt.signcolumn = "no"
-
--- Tab settings
opt.tabstop = 4
opt.softtabstop = 4
opt.shiftwidth = 4
opt.expandtab = true
-
--- Enable smart indenting
opt.smartindent = true
-
--- Enable break indent
opt.breakindent = true
+opt.backspace = "indent,eol,start"
-local home = os.getenv("HOME")
--- History settings
opt.undofile = true
opt.swapfile = true
opt.backup = true
opt.writebackup = true
opt.undodir = home .. "/.local/state/nvim"
--- https://stackoverflow.com/a/1625850
--- TODO: Check if directory exists
opt.backupdir = home .. "/.local/share/Trash/nvim//,."
opt.directory = home .. "/.local/share/Trash/nvim//,."
--- Case-insensitive searching UNLESS \C or capital in search
opt.ignorecase = true
opt.smartcase = true
--- Decrease update time
opt.updatetime = 50
opt.timeoutlen = 300
-
--- Set completeopt to have a better completion experience
opt.completeopt = ""
-
--- Enable true color support
-opt.termguicolors = true
-
--- Enable scroll off
opt.scrolloff = 8
-
--- Don't show mode I'm in, already have a nice status line for that
-opt.showmode = false
-
--- Better split options
opt.splitbelow = true
opt.splitright = true
-
--- shared clipboard
opt.clipboard = "unnamed"
--- do not highlight matched bracket
+
+opt.showmode = false
opt.showmatch = false
--- highlight line at cursor
opt.cursorline = true
opt.textwidth = 100
-- opt.colorcolumn = "102"
-
--- status line
--- show ruler
+opt.termguicolors = true
opt.ruler = true
--- show command
opt.showcmd = true
-
opt.wildmenu = true
-
opt.mouse = ""
-
-opt.backspace = "indent,eol,start"
-
opt.laststatus = 2
opt.history = 200
+
-- opt.encoding = "utf-8"
-- opt.fileencoding = "utf-8"
-
opt.smartindent = true
opt.scrolloff = 8
-
-- opt.spelllang = "en_us,nl"
opt.formatoptions = "tocqrnj"
--- Get the current working directory, replace the $HOME portion of the path with ~,
--- and extract the last three directories
+opt.title = true
+
+-- vim.opt.fillchars = { fold = " " }
+-- vim.opt.foldmethod = "indent"
+vim.opt.foldenable = false
+vim.opt.foldlevel = 99
+vim.g.markdown_folding = 1
+
local cwd = vim.fn.getcwd():gsub(home, "~")
-local last_dirs = string.match(cwd, "[^/]+/[^/]+/[^/]+/?$")
-if last_dirs then
- opt.titlestring = last_dirs .. " -> %t"
+local IsInCWD = string.match(cwd, "[^/]+/[^/]+/[^/]+/?$")
+if IsInCWD then
+ opt.titlestring = IsInCWD .. " -> %t"
else
opt.titlestring = cwd .. " -> %t"
end
-opt.title = true
-
-- Highlighting
--- NOTE:
-vim.fn.matchadd("matchNotes", "NOTE\\((.*)\\)\\?:")
vim.api.nvim_set_hl(0, "matchNotes", { fg = require("nord.colors").palette.frost.ice })
--- TODO: FIXME:
+vim.fn.matchadd("matchNotes", "NOTE\\((.*)\\)\\?:")
vim.api.nvim_set_hl(0, "matchTodos", { fg = require("nord.colors").palette.aurora.yellow })
vim.fn.matchadd("matchTodos", "\\(TODO\\|FIXME\\)\\((.*)\\)\\?:")
--- ERROR: BUG:
vim.api.nvim_set_hl(0, "matchErrors", { fg = require("nord.colors").palette.aurora.red })
vim.fn.matchadd("matchErrors", "\\(BUG\\|ERROR\\)\\((.*)\\)\\?:")
-
--- vim.opt.fillchars = { fold = " " }
--- vim.opt.foldmethod = "indent"
-vim.opt.foldenable = false
-vim.opt.foldlevel = 99
-vim.g.markdown_folding = 1