Compare commits

...

10 Commits

10 changed files with 227 additions and 186 deletions

View File

@@ -10,9 +10,10 @@ require("ward.lazy")
--$ Neovide configuration if used
if vim.g.neovide then
vim.g.neovide_opacity = 0.75
vim.g.neovide_opacity = 0.85
vim.g.neovide_window_blurred = true
-- vim.o.guifont = "Source Code Pro:h12"
vim.g.neovide_underline_stroke_scale = 1.5
-- Increase/Decrease scale factor
local change_scale_factor = function(delta)

View File

@@ -32,6 +32,7 @@ return {
button("f", " Find Files", ":Telescope find_files <CR>"),
button("o", " Recent Files", "<cmd>Telescope oldfiles<cr>"),
button("t", " Terminal", ":terminal<CR>i"),
button("h", "⛨ check health", ":checkhealth<CR>"),
button("s", "S Find text/string", ":Telescope live_grep <CR>"),
button("m", " Bookmarks", ":Telescope marks <CR>"),
button("c", " Neovim config", "<cmd>e ~/.config/nvim/ | cd %:p:h<cr>"),
@@ -40,11 +41,12 @@ return {
}
local function footer()
local footer_datetime = os.date(" %m-%d-%Y  %H:%M:%S")
local footer_datetime = os.date("%m-%d-%Y %H:%M:%S")
local version = vim.version()
local nvim_version_info = " v" .. version.major .. "." .. version.minor .. "." .. version.patch
local nvim_version_info = " v" .. version.major .. "." .. version.minor .. "." .. version.patch
-- local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
local value = footer_datetime .. "  Plugins " .. total_plugins .. nvim_version_info
local root_dir = " " .. vim.fn['getcwd']()
local value = footer_datetime .. " Plugins " .. total_plugins .. nvim_version_info .. root_dir
return value
end

View File

@@ -9,7 +9,7 @@ return {
config = function()
require("bufferline").setup({
options = {
right_mouse_command = "BufferLineTogglePin",
right_mouse_command = "BufferLineTogglePin",
buffer_close_icon = "󰅖",
offsets = {
{
@@ -19,6 +19,10 @@ return {
separator = true,
},
},
-- separator_style = "slant",
-- indicator = {
-- style = "underline",
-- },
diagnostics = "nvim_lsp",
diagnostics_indicator = function(count, level, diagnostics_dict, context)
local s = " "
@@ -39,6 +43,9 @@ return {
{ "<leader>bst", "<cmd>BufferLineSortByTabs<Cr>", desc = "Sort by tabs" },
{ "<leader>bsh", "<cmd>BufferLineMovePrev<Cr>", desc = "Sort by tabs" },
{ "<leader>bsl", "<cmd>BufferLineMoveNext<Cr>", desc = "Sort by tabs" },
{ "<leader>bb", "<cmd>BufferLineCyclePrev<Cr>", desc = "Previous buffer" },
{ "<leader>bn", "<cmd>BufferLineCycleNext<Cr>", desc = "Next buffer" },
{ "<leader>n", "<cmd>BufferLineCycleNext<Cr>", desc = "Next buffer" },
})
end,
}

View File

@@ -10,7 +10,7 @@ return {
transparent_backgroud = true,
term_colors = true,
})
vim.cmd.colorscheme("catppuccin")
vim.cmd.colorscheme("catppuccin-nvim")
LineNumberColors()
end,
}

View File

@@ -1,24 +1,49 @@
--Note: this will show what part of a file was changed deleted or added in a git repo
return {
"lewis6991/gitsigns.nvim",
-- event = "BufReadPre",
"lewis6991/gitsigns.nvim",
-- event = "BufReadPre",
config = function()
require("gitsigns").setup {
signs = {
-- add = { text = "│" },
-- change = { text = "│" },
delete = { text = "_", show_count = true },
-- topdelete = { text = "‾" },
-- changedelete = { text = "~" },
-- untracked = { text = "┆" },
},
numhl = true, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
}
config = function()
require("gitsigns").setup({
signs = {
-- add = { text = "│" },
-- change = { text = "│" },
delete = { text = "_", show_count = true },
-- topdelete = { text = "‾" },
-- changedelete = { text = "~" },
-- untracked = { text = "┆" },
},
numhl = true, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
vim.keymap.set('n', '<Leader>xs', function()
require("gitsigns").refresh();
end, { desc = "Gitsigns refresh" })
end,
on_attach = function(bufnr)
local gitsigns = require("gitsigns")
local wk = require("which-key")
wk.add({
{ "<leader>g", group = "Gitsigns" };
{ "<leader>gj", function ()
gitsigns.nav_hunk('next')
end, buffer = bufnr, desc = "next hunk" },
{ "<leader>gk", function ()
gitsigns.nav_hunk('prev')
end, buffer = bufnr, desc = "prev hunk" },
{ "<leader>gu", gitsigns.reset_buffer_index, buffer = bufnr, desc = "unstage buffer" },
{ "<leader>gp", gitsigns.preview_hunk, buffer = bufnr, desc = "preview hunk" },
{ "<leader>gP", gitsigns.preview_hunk_inline, buffer = bufnr, desc = "preview hunk inline" },
{ "<leader>gs", gitsigns.stage_hunk, buffer = bufnr, desc = "stage hunk" },
{ "<leader>gr", gitsigns.reset_hunk, buffer = bufnr, desc = "reset hunk" },
{ "<leader>gS", gitsigns.stage_buffer, buffer = bufnr, desc = "stage buffer" },
{ "<leader>gR", gitsigns.reset_buffer, buffer = bufnr, desc = "reset buffer" },
{ "<leader>gd", gitsigns.diffthis, buffer = bufnr, desc = "diff this" },
{ "<leader>gD", function()
gitsigns.diffthis('~')
end, buffer = bufnr, desc = "diff ~" },
{ "<leader>gt", group = "Gitsigns toggles" };
{ "<leader>gtr", gitsigns.refresh, desc = "Gitsigns refresh" },
{ "<leader>gtb", gitsigns.toggle_current_line_blame, desc = "toggle blame" },
{ "<leader>gtw", gitsigns.toggle_word_diff, desc = "toggle word diff" },
})
end,
})
end,
}

View File

@@ -2,174 +2,170 @@
-- NOTE: this adds a Language Server Provider for source files like C++, Java/-Script, etc.
-- It will check the code for errors, warnings, variables and structures and give suggestions.
return {
"neovim/nvim-lspconfig",
version = "*",
config = function()
-- local lspconfig = require("lspconfig")
"neovim/nvim-lspconfig",
version = "*",
config = function()
-- local lspconfig = require("lspconfig")
vim.cmd([[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]])
vim.cmd([[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]])
vim.cmd([[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]])
vim.cmd([[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]])
-- Beautiful borders around LSP stuff like hover/signature_help
local border = {
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
}
-- Beautiful borders around LSP stuff like hover/signature_help
local border = {
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
}
-- LSP settings (for overriding per client)
local handlers = {
["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = border }),
["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = border }),
}
-- lspconfig.clangd.setup({
vim.lsp.config("clangd", {
keys = {
{ "<leader>pc", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
},
cmd = {
"clangd",
"--offset-encoding=utf-16",
"--background-index",
"--clang-tidy",
"--header-insertion=iwyu",
"--completion-style=detailed",
"--function-arg-placeholders",
"-j4",
"--fallback-style=llvm",
},
filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "proto", "hpp", "h" },
-- init_options = {
-- fallbackFlags = { '-std=c17' },
-- },
})
-- lspconfig.clangd.setup({
vim.lsp.config("clangd",{
keys = {
{ "<leader>pc", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
},
cmd = {
"clangd",
"--offset-encoding=utf-16",
"--background-index",
"--clang-tidy",
"--header-insertion=iwyu",
"--completion-style=detailed",
"--function-arg-placeholders",
"-j4",
"--fallback-style=llvm",
},
filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "proto", "hpp", "h" },
-- init_options = {
-- fallbackFlags = { '-std=c17' },
-- },
handlers = handlers,
})
-- lspconfig.glsl_analyzer.setup({
vim.lsp.config("glsl_analyzer", {
filetypes = { "glsl", "vert", "tese", "frag", "geom", "comp", "vs", "fs" },
})
-- lspconfig.glsl_analyzer.setup({
vim.lsp.config("glsl_analyzer",{
filetypes = { "glsl", "vert", "tese", "frag", "geom", "comp", "vs", "fs" },
handlers = handlers,
})
-- diagnostics border
local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview
function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...)
-- I would love to retrieve the severity level just here in order to modify opts.border
opts = opts or {}
opts.border = opts.border or border
return orig_util_open_floating_preview(contents, syntax, opts, ...)
end
-- diagnostics border
local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview
function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...)
-- I would love to retrieve the severity level just here in order to modify opts.border
opts = opts or {}
opts.border = opts.border or border
return orig_util_open_floating_preview(contents, syntax, opts, ...)
end
-- adding filetypes to get glsl things
vim.filetype.add({
extension = {
vert = "glsl",
tesc = "glsl",
tese = "glsl",
frag = "glsl",
geom = "glsl",
comp = "glsl",
vs = "glsl",
fs = "glsl",
},
})
-- adding filetypes to get glsl things
vim.filetype.add({
extension = {
vert = "glsl",
tesc = "glsl",
tese = "glsl",
frag = "glsl",
geom = "glsl",
comp = "glsl",
vs = "glsl",
fs = "glsl",
},
})
-- lspconfig.rust_analyzer.setup({
vim.lsp.config("rust_analyzer", {
settings = {
["rust-analyzer"] = {},
},
})
-- lspconfig.rust_analyzer.setup({
vim.lsp.config("rust_analyzer",{
settings = {
["rust-analyzer"] = {},
},
handlers = handlers,
})
-- These lsp keybinds only load when an LSP is attatched to the buffer.
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(event)
-- Enable completion triggered by <c-x><c-o>
vim.bo[event.buf].omnifunc = "v:lua.vim.lsp.omnifunc"
-- lspconfig.lua_ls.setup({
vim.lsp.config("lua_ls",{
handlers = handlers,
})
local map = function(keys, func, desc)
vim.keymap.set("n", keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- These lsp keybinds only load when an LSP is attatched to the buffer.
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(event)
-- Enable completion triggered by <c-x><c-o>
vim.bo[event.buf].omnifunc = "v:lua.vim.lsp.omnifunc"
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
local map = function(keys, func, desc)
vim.keymap.set("n", keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- Find references for the word under your cursor.
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>ld", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
-- Find references for the word under your cursor.
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>lD", vim.lsp.buf.declaration, "Go to [D]eclaration")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map("<leader>ls", require("telescope.builtin").lsp_document_symbols, "document [S]ymbols")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>ld", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
-- Format file
map("<leader>lf", vim.lsp.buf.format, "[F]ormat")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>lD", vim.lsp.buf.declaration, "Go to [D]eclaration")
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map("<leader>lw", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace symbols")
map("<leader>li", vim.cmd.LspInfo, "Show lsp info")
map("<leader>lp", vim.diagnostic.goto_prev, "Go to [P]revious diagnostic message")
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map("<leader>ls", require("telescope.builtin").lsp_document_symbols, "document [S]ymbols")
map("<leader>ln", vim.diagnostic.goto_next, "Go to [N]ext diagnostic message")
-- Format file
map("<leader>lf", vim.lsp.buf.format, "[F]ormat")
map("<leader>le", vim.diagnostic.open_float, "Show diagnostic [E]rror messages")
vim.diagnostic.config({ virtual_text = false })
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map(
"<leader>lw",
require("telescope.builtin").lsp_dynamic_workspace_symbols,
"[W]orkspace symbols"
)
map("<leader>li", vim.cmd.LspInfo, "Show lsp info")
map("<leader>lp", vim.diagnostic.goto_prev, "Go to [P]revious diagnostic message")
map("<leader>lq", vim.diagnostic.setloclist, "Open diagnostic [Q]uickfix list")
map("<leader>ln", vim.diagnostic.goto_next, "Go to [N]ext diagnostic message")
-- Rename the variable under your cursor.
local function rename()
local clients = vim.lsp.get_clients({ bufnr = 0, method = "textDocument/rename" })
if #clients > 0 then
local targetClient = clients[1] -- Use the first client .. or angularls if available
for _, client in ipairs(clients) do
if client.name == "angularls" then
targetClient = client
break
end
end
vim.lsp.buf.rename(nil, { name = targetClient.name })
else
print("No LSP attached supports renaming")
end
end
--Most Language Servers support renaming across files, etc.
map("<leader>lr", rename, "[R]ename")
map("<leader>le", vim.diagnostic.open_float, "Show diagnostic [E]rror messages")
vim.diagnostic.config({ virtual_text = false })
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("<leader>la", vim.lsp.buf.code_action, "code [A]ction")
map("<leader>lq", vim.diagnostic.setloclist, "Open diagnostic [Q]uickfix list")
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap.
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("<leader>lr", vim.lsp.buf.rename, "[R]ename")
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("<leader>la", vim.lsp.buf.code_action, "code [A]ction")
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap.
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end,
})
end,
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end,
})
end,
}

View File

@@ -13,5 +13,6 @@ return {
},
extensions = { "nvim-tree" },
})
vim.o.cmdheight = 0
end,
}

View File

@@ -3,7 +3,7 @@
--$ :help telescope
return {
'nvim-telescope/telescope.nvim',
tag = '0.1.8',
tag = 'v0.2.2',
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()

View File

@@ -2,19 +2,28 @@
--$ URL: https://github.com/nvim-treesitter/nvim-treesitter
--# :help treesitter
return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
"nvim-treesitter/nvim-treesitter",
branch = "main",
lazy = false,
build = ":TSUpdate",
config = function()
local configs = require("nvim-treesitter.configs")
configs.setup({
ensure_installed = {
"c", "lua", "vim", "vimdoc", "javascript", "html", "python", "typescript"
},
sync_install = false,
highlight = { enable = true },
indent = { enable = true },
})
end
-- config = function()
-- local configs = require("nvim-treesitter.configs")
--
-- configs.setup({
-- ensure_installed = {
-- "c",
-- "lua",
-- "vim",
-- "vimdoc",
-- "javascript",
-- "html",
-- "python",
-- "typescript",
-- },
-- sync_install = false,
-- highlight = { enable = true },
-- indent = { enable = true },
-- })
-- end,
}

View File

@@ -35,5 +35,5 @@ end
LineNumberColors()
-- Set spell checker
vim.opt.spell = true
-- vim.opt.spell = true
vim.opt.spelllang = { 'en_gb', 'nl' }