Compare commits

..

30 Commits

Author SHA1 Message Date
Raoul Branten
fa011a05e5 Fix warning keymap_accept 2026-01-15 10:35:46 +01:00
Raoul Branten
278be5ac15 whichkey commenting 2026-01-09 15:13:59 +01:00
Raoul Branten
146bdf9b39 use tabs not buffers 2026-01-06 14:30:02 +01:00
Raoul Branten
7cefecceed Fix autocomplete not working 2025-12-30 10:54:06 +01:00
Raoul Branten
bb0a48dafb remove cursor and annoying light bulb 2025-12-23 14:54:16 +01:00
Raoul Branten
c6146055fb var improvements 2025-12-23 14:42:56 +01:00
Raoul Branten
54b45037c1 var improvements 2025-12-23 14:33:18 +01:00
Raoul Branten
3af68c2c76 pre-ai-alter 2025-12-23 14:04:07 +01:00
Raoul Branten
e1c533e1c4 Update lmxfix file command 2025-11-19 13:51:05 +01:00
Raoul Branten
c30416ef78 Add terminal 2025-10-23 15:53:32 +02:00
Raoul Branten
b7611b08ae add keymaps for tab actions 2025-10-22 15:34:19 +02:00
Raoul Branten
fc8c549c98 Update keymaps 2025-10-22 14:05:57 +02:00
Raoul Branten
ab9375cf6c Add welcome screen 2025-09-25 17:00:47 +02:00
Raoul Branten
b25d85243a Fix keymap warnings 2025-09-25 16:52:28 +02:00
Raoul Branten
ea1ac722c3 lsp saga added 2025-09-25 15:39:00 +02:00
Raoul Branten
53f2fd8cda Added bunch of plugins 2025-09-25 15:16:23 +02:00
Raoul Branten
ce28c5f0c9 pre lunarvim 2025-09-25 10:51:18 +02:00
Raoul Branten
12cd4924a7 Add scroll, and llama shortcut 2025-06-05 22:06:17 +02:00
Raoul Branten
5f4866c0f6 comment clipboard 2025-05-22 16:42:50 +02:00
Raoul Branten
3b4bb34a67 fix lsp error 2025-05-22 16:41:44 +02:00
Raoul Branten
b11f25288e Fix indent coloring 2025-05-22 12:58:27 +02:00
Raoul Branten
d78e1294c9 Squash merge lsp into master 2025-05-21 14:54:28 +02:00
Raoul Branten
31810e41ec update theme 2025-05-21 14:54:08 +02:00
Raoul Branten
04c9931e1a gitignore not working 2025-05-20 13:49:24 +02:00
Raoul Branten
fa0b59a67a set clipbord 2025-05-19 14:27:25 +02:00
Raoul Branten
2a238d1d3f Add ignore lazy-lock 2025-05-19 14:27:02 +02:00
Raoul Branten
f019d65ace Formatting 2025-05-13 21:37:22 +02:00
Raoul Branten
5d91a35050 Change dir stucture 2025-05-13 21:18:38 +02:00
Raoul Branten
650508f116 set keymaps before lazy loading plugins 2025-05-13 16:08:41 +02:00
Raoul Branten
dec8271195 changed to lazyloader 2025-05-13 16:00:41 +02:00
43 changed files with 1089 additions and 423 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
lazy-lock.json
lazy-lock.json

142
README.md Normal file
View File

@ -0,0 +1,142 @@
# Neovim Configuration Summary
## Plugin Management
- **Plugin Manager**: `lazy.nvim` (auto-bootstrapped)
- **Leader Key**: `<Space>`
- **Update Checker**: Enabled (silent notifications)
## Core Plugins & Features
### File Navigation & Search
- **Telescope** (v0.1.8): Fuzzy finder for files, buffers, grep, help tags, marks
- **nvim-tree**: File browser
- **Tagbar**: Code structure viewer (properties/methods)
### LSP & Code Intelligence
- **Mason + Mason-LSPConfig**: LSP server management
- **nvim-lspconfig**: LSP client configuration
- **Lspsaga**: Enhanced LSP UI (code actions, definitions, diagnostics, outline)
- **nvim-cmp**: Completion engine with:
- Buffer, path, LSP, cmdline sources
- LuaSnip snippets
### Syntax & Highlighting
- **nvim-treesitter**: Syntax highlighting via language parsers
- **nvim-colorizer**: Color previews (hex codes, etc.)
- **SyntaxAttr**: Display syntax highlighting info
- **Gruvbox**: Colorscheme
### UI Enhancements
- **lualine**: Status bar
- **nvim-scrollbar**: Scrollbar indicator
- **indent-blankline**: Indentation guides
- **rainbow-delimiters**: Color-coded brackets/braces
- **deadcolumn**: Visual indicator near line limit
- **alpha-nvim**: Custom welcome screen
### Git Integration
- **vim-fugitive**: Git wrapper
- **vim-gitgutter**: Git diff indicators in gutter
### Code Quality & Formatting
- **conform.nvim**: Code formatter (configured for Lua with stylua)
- **Trouble.nvim**: Diagnostics viewer
### Marks & Navigation
- **marks.nvim**: Visual marks with gutter indicators
- **vim-indentwise**: Indentation-based navigation
### Other Utilities
- **undotree**: Visual undo history
- **which-key.nvim**: Keybinding help menu
- **toggleterm.nvim**: Floating terminal
- **llama.vim**: Local AI integration (requires llama.cpp with CUDA)
- **mini.nvim**: Mini utilities collection
- **volt/menu**: Context menu system
- **minty**: Color picker
## Key Bindings
### Telescope (`<leader>f`)
- `ff` - Find files
- `fg` - Live grep
- `fb` - Find buffers
- `fc` - Find in current buffer
- `fh` - Help tags
- `fm` - Marks
- `fr` - Resume last search
### LSP (`<leader>l`)
- `lc` - Code actions
- `lo` - Outline
- `lr` - Rename
- `ld` - Go to definition
- `lf` - LSP finder
- `lp` - Preview definition
- `lw` - Workspace diagnostics
- `lb` - Buffer diagnostics
- `lm` - LMS fixer (custom)
### Other Important Bindings
- `<leader>u` - Undo tree
- `<leader>m` - Marks management
- `<leader>t` - Tab navigation
- `<leader>b` - Buffer management
- `<leader>i` - Indentation toggles
- `<leader>n` - Remove search highlight
- `<leader>e` - Show diagnostic
- `<leader><F5>` - Definition in new tab
- `<leader><F8>` - Tagbar toggle
- `<C-k>` - LSP hover
- `<C-]>` - Jump to definition in new tab
- `<Tab>/<S-Tab>` - Tab navigation
- `<C-h/j/k/l>` - Window navigation
- `<C-m>` - Move split to tab
- `<C-t>` - Context menu
## Editor Settings
### Display
- True color support enabled
- Cursor line/column highlighting
- Line numbers
- Color column at 81
- Scroll offset: 5 lines
- Sign column always visible
### Indentation & Formatting
- Expand tabs to spaces
- Tab width: 4 spaces
- Smart indentation
- Show whitespace characters (eol, tabs, trails)
- No text wrapping
### Search
- Case-insensitive (smart case)
- Incremental search
- Highlight search results
- Wildignore case enabled
### Folding
- Method: indent
- Fold level: 99 (mostly open)
- Fold column visible
### Behavior
- Auto-read changed files
- Arrow keys disabled (forces hjkl)
- Mouse disabled
- Shell commands run interactively (`-ic` flag)
## Special Features
1. **PHP Helper**: Custom function for inserting debug backtraces
3. **Custom Aliases**: `Bufdel` command for buffer management
4. **Quick Directory Navigation**: Shortcuts to LMS project directories (`<leader>c`)
## Architecture
- Modular structure: config split into logical files
- Plugin configs in `lua/config/plugin/`
- Main entry point: `init.lua`
- Uses Lua-based configuration throughout
This setup focuses on productivity with LSP integration, AI-assisted completion, and a clean UI.

View File

@ -1,6 +1,8 @@
require("core.options")
require("core.functions")
require("core.keymaps")
require("core.plugins")
require("core.aliases")
require("core.plugin_config")
vim.opt.termguicolors = true
require("config.functions")
require("config.lazy")
require("config.keymaps")
require("config.options")
require("config.aliases")
require("config.plugin")

131
lua/config/keymaps.lua Normal file
View File

@ -0,0 +1,131 @@
local wk = require("which-key")
local telescope = require('telescope.builtin')
local marks = require('marks')
-- the leader key is <space>
wk.add({
-- Telescope
{ "<leader>f", group = "Telescope" },
{ "<leader>ff", telescope.find_files, desc = "Find files", mode = "n" },
{ "<leader>fg", telescope.live_grep, desc = "Live grep", mode ="n"},
{ "<leader>fb", telescope.buffers, desc = "Find in buffers", mode ="n"},
{ "<leader>fc", telescope.current_buffer_fuzzy_find, desc = "Find in current buffer", mode ="n"},
{ "<leader>fh", telescope.help_tags, desc = "Find in help tags", mode ="n"},
{ "<leader>fm", telescope.marks, desc = "Find in marks", mode ="n"},
{ "<leader>fr", telescope.resume, desc = "Resume last find", mode ="n"},
-- LspSaga
{ "<leader>l", group = "Lsp" },
{ "<leader>lc", "<cmd>Lspsaga code_action<cr>", desc = "Code Action", mode ="n"},
{ "<leader>lo", "<cmd>Lspsaga outline<cr>", desc = "Outline", mode ="n"},
{ "<leader>lr", "<cmd>Lspsaga rename<cr>", desc = "Rename", mode ="n"},
{ "<leader>ld", "<cmd>Lspsaga goto_definition<cr>", desc = "Lsp GoTo Definition", mode ="n"},
{ "<leader>lf", "<cmd>Lspsaga finder<cr>", desc = "Lsp Finder", mode ="n"},
{ "<leader>lp", "<cmd>Lspsaga peek_definition<cr>", desc = "Preview Definition", mode ="n"},
{ "<leader>lw", "<cmd>Lspsaga show_workspace_diagnostics<cr>", desc = "Show Workspace Diagnostics", mode ="n"},
{ "<leader>lb", "<cmd>Lspsaga show_buf_diagnostics<cr>", desc = "Show Buffer Diagnostics", mode ="n"},
{ "<leader>lm", "<cmd>TermExec cmd='lmsfixfile %:p:h' direction='float'<cr>", desc = "LMS fixer this file", mode ="n"},
-- UndoTree
{ "<leader>u", group = "UndoTree" },
{ "<leader>uu", "<cmd>lua require('undotree').toggle()<cr>", desc="Toggle undo tree", mode ="n"},
-- TagBar
{ "<leader><F8>", "<cmd>:TagbarToggle fj<cr>", desc="Toggle tagbar", mode ="n"},
-- Custom
{ "<leader>n", "<cmd>:noh<cr>", desc="Remove highlight", mode = "n"},
-- Jump to definition in new tab
{ "<leader><F5>", "<cmd>tab split | lua vim.lsp.buf.definition()<cr>", desc="Definition in new tab", mode = "n"},
-- See error in diagnostic window
{ "<leader>e", "<cmd>lua vim.diagnostic.open_float()<CR>", desc="See diagnostic", mode = "n"},
-- Closing stuff
{ "<leader>Z", group = "Closing"},
{ "<leader>ZZ", "<cmd>wq!<cr>", desc = "Write en close", mode = "n"},
{ "<leader>ZQ", "<cmd>q!<cr>", desc = "Close without write", mode = "n"},
-- Creating and browsing marks
{ "<leader>m", group = "Create / Jump mark"},
{ "<leader>mx", marks.set, desc = "Set mark [x]", mode = "n"},
{ "<leader>m,", marks.set_next, desc = "Set the next available alphabetical (lowercase) mark", mode = "n"},
{ "<leader>m;", marks.toggle, desc = "Toggle the next available mark at the current line", mode = "n"},
{ "<leader>m]", marks.next, desc = "Move to next mark", mode = "n"},
{ "<leader>m[", marks.prev, desc = "Move to previous mark", mode = "n"},
{ "<leader>m:", marks.preview, desc = "Preview mark. This will prompt you for a specific mark to preview; press <cr> to preview the next mark.", mode = "n"},
{ "<leader>m[0-9]", marks.set_bookmark, desc = "Add a bookmark from bookmark group[0-9].", mode = "n"},
{ "<leader>m}", marks.next_bookmark, desc = "Move to the next bookmark having the same type as the bookmark under the cursor. Works across buffers.", mode = "n"},
{ "<leader>m{", marks.prev_bookmark, desc = "Move to the previous bookmark having the same type as the bookmark under the cursor. Works across buffers.", mode = "n"},
-- Deleting marks
{ "<leader>s", group = "Delete marks"},
{ "<leader>dmx", marks.delete, desc = "Delete mark x", mode = "n"},
{ "<leader>dm-", marks.delete_line, desc = "Delete all marks on the current line", mode = "n"},
{ "<leader>dm<space>", marks.delete_buf, desc = "Delete all marks in the current buffer", mode = "n"},
{ "<leader>dm=", marks.delete_bookmark, desc = "Delete the bookmark under the cursor.", mode = "n"},
{ "<leader>dm[0-9]", marks.delete_bookmark, desc = "Delete all bookmarks from bookmark group[0-9].", mode = "n"},
-- Git
{ "<leader>h", group = "Git"},
-- Tabs
{ "<leader>t", group = "Tabs"},
{ "<leader>tf", "<cmd>tabm 0<cr>", desc = "Move before first tab", mode = "n"},
{ "<leader>tl", "<cmd>tabm<cr>", desc = "Move after last tab", mode = "n"},
{ "<leader>t,", "<cmd>tabm -<cr>", desc = "Move tab to left", mode = "n"},
{ "<leader>t.", "<cmd>tabm +<cr>", desc = "Move tab to right", mode = "n"},
{ "<leader>tn", "<cmd>tabnext<cr>", desc = "Go to next tab", mode = "n"},
{ "<leader>tp", "<cmd>tabprevious<cr>", desc = "Go to previous tab", mode = "n"},
{ "<leader>tb", "<cmd>tabfirst<cr>", desc = "Go to first tab", mode = "n"},
{ "<leader>te", "<cmd>tablast<cr>", desc = "Go to last tab", mode = "n"},
{ "<leader>to", "<cmd>tabonly<cr>", desc = "Close all except current", mode = "n"},
-- Buffer
{ "<leader>b", group = "Buffers"},
{ "<leader>bd", "<cmd>Bufdel<cr>", desc = "Close open buffers", mode = "n"},
-- Indent
{ "<leader>i", group = "Indentation"},
{ "<leader>it", "<cmd>IBLToggle<cr>", desc = "Toggle indentation guides", mode = "n"},
{ "<leader>im", "<cmd>set list!<cr>", desc = "Toggle indentation characters", mode = "n"},
-- Navigation
{ "<leader>c", group = "Quick change directories"},
{ "<leader>cr", "<cmd>cd ~/lms/<cr>", desc = "Change to lms root", mode = "n"},
{ "<leader>cc", "<cmd>cd ~/lms/App/Lms/<cr>", desc = "Change to App/Lms", mode = "n"},
{ "<leader>ct", "<cmd>cd ~/lms/Tests/<cr>", desc = "Change to Tests", mode = "n"},
-- Commenting
{ "<leader>g", group = "Commenting"},
{ "<leader>gcc", desc = "Toggles the current line using linewise comment", mode = "n"},
{ "<leader>gbc", desc = "Toggles the current line using blockwise comment", mode = "n"},
{ "<leader>gc", desc = "Toggles the region using linewise comment", mode = "v"},
{ "<leader>gb", desc = "Toggles the region using blockwise comment", mode = "v"},
{ "<leader>gb2}", desc = "Toggle until the 2 next blank line", mode = "n"},
{ "<leader>gbaf", desc = "Toggle comment around a function (w/ LSP/treesitter support)", mode = "n"},
{ "<leader>gbac", desc = "Toggle comment around a class (w/ LSP/treesitter support)", mode = "n"},
})
-- prevent using arrow keys or mouse
vim.keymap.set('n', '<Left>', ':echoe "Yo retard use h"<CR>')
vim.keymap.set('n', '<Right>', ':echoe "Yo retard use l"<CR>')
vim.keymap.set('n', '<Up>', ':echoe "Yo retard use k"<CR>')
vim.keymap.set('n', '<Down>', ':echoe "Yo retard use j"<CR>')
vim.opt.mouse = ''
-- dont automatically jump when searching
vim.keymap.set('n', '*', '*```<CR>')
-- show lsp floating tooltip
vim.keymap.set('n', '<c-k>', ':lua vim.lsp.buf.hover()<CR>')
-- tab navigation using <TAB>
vim.keymap.set('n', '<Tab>', ':BufferLineCycleNext<CR>')
vim.keymap.set('n', '<S-Tab>', ':BufferLineCyclePrev<CR>')
-- quick close tab USE <leader>ZQ
--vim.keymap.set('n', '<C-w>', ':tabclose<CR>')
-- jump to definition in new tab
vim.keymap.set('n', '<C-]>', '<cmd>tab split | lua vim.lsp.buf.definition()<CR>', {})
-- change split window
vim.keymap.set('n', '<C-k>', ':wincmd k<CR>')
vim.keymap.set('n', '<C-j>', ':wincmd j<CR>')
vim.keymap.set('n', '<C-h>', ':wincmd h<CR>')
vim.keymap.set('n', '<C-l>', ':wincmd l<CR>')
-- move split to tab
vim.keymap.set('n', '<C-m>', ':tab split<CR>')
-- open context menu
vim.keymap.set("n", "<C-t>", function()
require("menu").open("default")
end, {})

40
lua/config/lazy.lua Normal file
View File

@ -0,0 +1,40 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- import your plugins
{ import = "plugins" },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = {
colorscheme = { "habamax" }
},
-- automatically check for plugin updates
checker = {
enabled = true,
notify = false,
},
})

View File

@ -14,7 +14,7 @@ vim.opt.colorcolumn = "81"
vim.opt.autoread = true
vim.opt.wildmode = 'longest,list'
vim.opt.ttyfast = true
-- vim.opt.pastetoggle = '<F3>'
--vim.opt.pastetoggle = '<F3>'
-- formatting
vim.opt.expandtab = true
@ -39,3 +39,25 @@ vim.opt.smartcase = true
vim.opt.incsearch = true
vim.opt.hlsearch = true
vim.opt.wildignorecase = true
-- running interactive shell commands
vim.opt.shellcmdflag = '-ic'
-- folding
vim.opt.foldmethod = 'indent'
vim.opt.foldcolumn = '1'
vim.opt.foldlevel = 99
vim.opt.foldlevelstart = 99
vim.opt.foldenable = true
-- colorscheme
vim.cmd.colorscheme('gruvbox')
vim.opt.background = 'dark'
--vim.opt.foldlevelstart=99
--vim.opt.foldlevel=99
--
--vim.opt.foldmethod = 'expr'
--vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
--vim.opt.foldtext = "v:lua.vim.treesitter.foldtext()"

View File

@ -0,0 +1,53 @@
-- setup must be called before loading
require("catppuccin").setup({
flavour = "mocha", -- latte, frappe, macchiato, mocha
background = { -- :h background
light = "latte",
dark = "mocha",
},
transparent_background = false, -- disables setting the background color.
show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
dim_inactive = {
enabled = false, -- dims the background color of inactive window
shade = "dark",
percentage = 0.15, -- percentage of the shade to apply to the inactive window
},
no_italic = false, -- Force no italic
no_bold = false, -- Force no bold
no_underline = false, -- Force no underline
styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
comments = { "italic" }, -- Change the style of comments
conditionals = { "italic" },
loops = {},
functions = {},
keywords = {},
strings = {},
variables = {},
numbers = {},
booleans = {},
properties = {},
types = {},
operators = {},
-- miscs = {}, -- Uncomment to turn off hard-coded styles
},
color_overrides = {},
custom_highlights = {},
default_integrations = true,
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
treesitter = true,
notify = false,
mini = {
enabled = true,
indentscope_color = "",
},
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
},
})
-- setup must be called before loading
vim.cmd.colorscheme "catppuccin"

89
lua/config/plugin/cmp.lua Normal file
View File

@ -0,0 +1,89 @@
-- nvim-cmp configuration
local cmp = require('cmp')
local luasnip = require('luasnip')
cmp.setup({
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp', priority = 1000 },
{ name = 'luasnip', priority = 750 },
}, {
{ name = 'buffer', priority = 500 },
{ name = 'path', priority = 250 },
}),
sorting = {
comparators = {
cmp.config.compare.offset,
cmp.config.compare.exact,
cmp.config.compare.score,
cmp.config.compare.recently_used,
cmp.config.compare.locality,
cmp.config.compare.kind,
cmp.config.compare.sort_text,
cmp.config.compare.length,
cmp.config.compare.order,
},
},
formatting = {
format = function(entry, vim_item)
vim_item.menu = ({
nvim_lsp = '[LSP]',
luasnip = '[Snippet]',
buffer = '[Buffer]',
path = '[Path]',
})[entry.source.name]
return vim_item
end,
},
})
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore)
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore)
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
})
})

View File

@ -0,0 +1,40 @@
local highlight = {
"RainbowDelimiterRed",
"RainbowDelimiterYellow",
"RainbowDelimiterBlue",
"RainbowDelimiterOrange",
"RainbowDelimiterGreen",
"RainbowDelimiterViolet",
"RainbowDelimiterCyan",
"RainbowRed",
"RainbowYellow",
"RainbowBlue",
"RainbowOrange",
"RainbowGreen",
"RainbowViolet",
"RainbowCyan",
}
local hooks = require "ibl.hooks"
-- create the highlight groups in the highlight setup hook, so they are reset
-- every time the colorscheme changes
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowDelimiterRed", { fg = "#E06C75" })
vim.api.nvim_set_hl(0, "RainbowDelimiterYellow", { fg = "#E5C07B" })
vim.api.nvim_set_hl(0, "RainbowDelimiterBlue", { fg = "#61AFEF" })
vim.api.nvim_set_hl(0, "RainbowDelimiterOrange", { fg = "#D19A66" })
vim.api.nvim_set_hl(0, "RainbowDelimiterGreen", { fg = "#98C379" })
vim.api.nvim_set_hl(0, "RainbowDelimiterViolet", { fg = "#C678DD" })
vim.api.nvim_set_hl(0, "RainbowDelimiterCyan", { fg = "#56B6C2" })
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
end)
vim.g.rainbow_delimiters = { highlight = highlight }
require("ibl").setup { scope = { highlight = highlight } }
hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark)

View File

@ -0,0 +1,20 @@
require("config.plugin.lualine")
require("config.plugin.nvim-tree")
require("config.plugin.treesitter")
require("config.plugin.telescope")
require("config.plugin.vim-fugitive")
require("config.plugin.tagbar")
require("config.plugin.vim-gitgutter")
require("config.plugin.deadcolumn")
require("config.plugin.colorizer")
require("config.plugin.synattr")
require("config.plugin.marks")
require("config.plugin.vim-indentwise")
require("config.plugin.rainbow-delimiters")
require("config.plugin.indent-blankline")
require("config.plugin.scrollbar")
require("config.plugin.lspsaga")
require("config.plugin.lsp")
require("config.plugin.luasnip")
require("config.plugin.gruvbox")
require("config.plugin.cmp")

View File

@ -0,0 +1,2 @@
-- change llama shortcut to use tab for just the line
-- and shift-tab for the whole block

108
lua/config/plugin/lsp.lua Normal file
View File

@ -0,0 +1,108 @@
-- LSP Configuration
local lspconfig = require('lspconfig')
-- Setup Mason (already done via lazy.nvim, but ensure it's initialized)
require('mason').setup()
-- Setup LSP capabilities for nvim-cmp
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- Function to attach LSP to buffers
local on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings for LSP actions
local bufopts = { noremap = true, silent = true, buffer = bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts)
end
-- Try to use mason-lspconfig if available, otherwise setup servers manually
local mason_lspconfig_ok, mason_lspconfig = pcall(require, 'mason-lspconfig')
if mason_lspconfig_ok then
-- Setup mason-lspconfig
mason_lspconfig.setup({
ensure_installed = {}, -- Add LSP servers here as needed
automatic_installation = false,
})
-- Setup handlers if the API is available
if mason_lspconfig.setup_handlers then
mason_lspconfig.setup_handlers({
-- Default handler for all servers
function(server_name)
lspconfig[server_name].setup({
capabilities = capabilities,
on_attach = on_attach,
})
end,
})
end
end
-- Setup LSP servers manually (uncomment as needed)
-- Install servers via :Mason command in Neovim first
-- Lua LSP
-- lspconfig.lua_ls.setup({
-- capabilities = capabilities,
-- on_attach = on_attach,
-- settings = {
-- Lua = {
-- runtime = { version = 'LuaJIT' },
-- diagnostics = { globals = { 'vim' } },
-- workspace = { library = vim.api.nvim_get_runtime_file("", true) },
-- telemetry = { enable = false },
-- },
-- },
-- })
-- Python LSP (uncomment when pyright is installed)
-- lspconfig.pyright.setup({
-- capabilities = capabilities,
-- on_attach = on_attach,
-- })
-- Rust LSP (uncomment when rust_analyzer is installed)
-- lspconfig.rust_analyzer.setup({
-- capabilities = capabilities,
-- on_attach = on_attach,
-- })
-- Diagnostic configuration
vim.diagnostic.config({
virtual_text = true,
signs = true,
update_in_insert = false,
underline = true,
severity_sort = true,
float = {
focusable = false,
style = "minimal",
border = "rounded",
source = "always",
header = "",
prefix = "",
},
})
-- Show diagnostic signs
local signs = { Error = "󰅚 ", Warn = "󰀪 ", Hint = "󰌶 ", Info = "󰋽 " }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
end

View File

@ -0,0 +1 @@
require('lspsaga').config.lightbulb.enabled = false

View File

@ -1,7 +1,8 @@
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'gruvbox',
--theme = 'catppuccin-mocha'
theme = 'gruvbox'
},
sections = {
lualine_a = {

View File

@ -0,0 +1,2 @@
-- LuaSnip configuration
require("luasnip.loaders.from_vscode").lazy_load()

View File

@ -0,0 +1,47 @@
-- This module contains a number of default definitions
local rainbow_delimiters = require 'rainbow-delimiters'
--vim.g.rainbow_delimiters = {
-- strategy = {
-- [''] = rainbow_delimiters.strategy['global'],
-- commonlisp = rainbow_delimiters.strategy['local'],
-- },
-- query = {
-- [''] = 'rainbow-delimiters',
-- lua = 'rainbow-blocks',
-- },
-- --highlight = {
-- -- 'RainbowRed',
-- -- 'RainbowYellow',
-- -- 'RainbowBlue',
-- -- 'RainbowOrange',
-- -- 'RainbowGreen',
-- -- 'RainbowViolet',
-- -- 'RainbowCyan',
-- --},
-- blacklist = {'c', 'cpp'},
--}
vim.g.rainbow_delimiters = {
strategy = {
[''] = 'rainbow-delimiters.strategy.global',
vim = 'rainbow-delimiters.strategy.local',
},
query = {
[''] = 'rainbow-delimiters',
lua = 'rainbow-blocks',
},
priority = {
[''] = 110,
lua = 210,
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
'RainbowDelimiterBlue',
'RainbowDelimiterOrange',
'RainbowDelimiterGreen',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
}

View File

@ -0,0 +1,32 @@
require'scrollbar'.setup{
handle = {
text = " ",
blend = 10, -- Integer between 0 and 100. 0 for fully opaque and 100 to full transparent. Defaults to 30.
color = '#FFF',
color_nr = nil, -- cterm
highlight = "CursorColumn",
hide_if_all_visible = true, -- Hides handle if all lines are visible
},
marks = {
Cursor = {
text = "",
},
Error = {
text = { "", "" },
},
Warn = {
text = { "", "" },
},
Info = {
text = { "", "" },
},
Hint = {
text = { "", "" },
},
Misc = {
text = { "-", "=" },
},
},
}
-- ⚠
-- ↦

View File

@ -0,0 +1,15 @@
local telescope = require('telescope')
telescope.setup({
pickers = {
live_grep = {
file_ignore_patterns = { '.git' },
additional_args = function(_)
return { "--hidden" }
end
},
find_files = {
file_ignore_patterns = { '.git' },
hidden = true
}
}
})

View File

@ -0,0 +1,22 @@
require 'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all"
ensure_installed = { "c", "lua", "vim", "php" },
sync_install = false,
auto_install = true,
highlight = {
enable = false,
},
indent = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
}

View File

@ -1,32 +0,0 @@
-- clear searchterm
vim.keymap.set('n', '<F5>', ':noh<CR>')
-- prevent using arrow keys or mouse
vim.keymap.set('n', '<Left>', ':echoe "Yo retard use h"<CR>')
vim.keymap.set('n', '<Right>', ':echoe "Yo retard use l"<CR>')
vim.keymap.set('n', '<Up>', ':echoe "Yo retard use k"<CR>')
vim.keymap.set('n', '<Down>', ':echoe "Yo retard use j"<CR>')
vim.opt.mouse = ''
-- dont automatically jump when searching
vim.keymap.set('n', '*', '*```<CR>')
-- show lsp floating tooltip
vim.keymap.set('n', '<c-k>', ':lua vim.lsp.buf.hover()<CR>')
-- The telescope leader key is space
-- keymaps can be found in telescope config
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
-- toggle tagbar plugin
vim.keymap.set('n', '<F8>', ':TagbarToggle fj<CR>')
-- tab navigation using <TAB>
vim.keymap.set('n', '<Tab>', ':tabnext<CR>')
vim.keymap.set('n', '<S-Tab>', ':tabprevious<CR>')
-- quick close tab
vim.keymap.set('n', '<C-w>', ':tabclose<CR>')
-- jump to definition in new tab
vim.keymap.set('n', '<C-]>', '<cmd>tab split | lua vim.lsp.buf.definition()<CR>', {})

View File

@ -1,24 +0,0 @@
local highlight = {
"RainbowRed",
"RainbowYellow",
"RainbowBlue",
"RainbowOrange",
"RainbowGreen",
"RainbowViolet",
"RainbowCyan",
}
local hooks = require "ibl.hooks"
-- create the highlight groups in the highlight setup hook, so they are reset
-- every time the colorscheme changes
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#CC241D" })
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#D79921" })
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#458588" })
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D65D0E" })
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98971A" })
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#B16286" })
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#689D6A" })
end)
require("ibl").setup { indent = { highlight = highlight } }

View File

@ -1,17 +0,0 @@
require("core.plugin_config.gruvbox")
require("core.plugin_config.lualine")
require("core.plugin_config.nvim-tree")
require("core.plugin_config.treesitter")
require("core.plugin_config.telescope")
require("core.plugin_config.vim-fugitive")
require("core.plugin_config.tagbar")
require("core.plugin_config.vim-gitgutter")
require("core.plugin_config.deadcolumn")
require("core.plugin_config.colorizer")
require("core.plugin_config.synattr")
require("core.plugin_config.rainbow-delimiters")
require("core.plugin_config.marks")
require("core.plugin_config.lsp_config")
require("core.plugin_config.indent-blankline")
require("core.plugin_config.indent-blankline")
require("core.plugin_config.vim-indentwise")

View File

@ -1,12 +0,0 @@
require("mason").setup()
require("mason-lspconfig").setup({
})
require("lspconfig").phpactor.setup({
on_attach = on_attach,
init_options = {
["language_server_phpstan.enabled"] = false,
["language_server_psalm.enabled"] = false,
}
})
--require("lspconfig").sumneko_lua.setup {}

View File

@ -1,24 +0,0 @@
-- This module contains a number of default definitions
local rainbow_delimiters = require 'rainbow-delimiters'
vim.g.rainbow_delimiters = {
strategy = {
[''] = rainbow_delimiters.strategy['global'],
commonlisp = rainbow_delimiters.strategy['local'],
},
query = {
[''] = 'rainbow-delimiters',
lua = 'rainbow-blocks',
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
'RainbowDelimiterBlue',
'RainbowDelimiterOrange',
'RainbowDelimiterGreen',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
blacklist = {'c', 'cpp'},
}

View File

@ -1,10 +0,0 @@
local builtin = require('telescope.builtin')
-- The leader key is space
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
vim.keymap.set('n', '<leader>fc', builtin.current_buffer_fuzzy_find, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
vim.keymap.set('n', '<leader>fm', builtin.marks, {})
vim.keymap.set('n', '<leader>fr', builtin.resume, {})

View File

@ -1,10 +0,0 @@
require 'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all"
ensure_installed = { "c", "lua", "vim", "php" },
sync_install = false,
auto_install = true,
highlight = {
enable = false,
},
}

View File

@ -1,77 +0,0 @@
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local packer_bootstrap = ensure_packer()
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
-- My plugins here
use 'morhetz/gruvbox'
use 'nvim-tree/nvim-tree.lua'
use 'nvim-tree/nvim-web-devicons'
use 'nvim-lualine/lualine.nvim'
use {
'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate'
}
use {
'nvim-telescope/telescope.nvim',
tag = '0.1.6',
requires = { {'nvim-lua/plenary.nvim'} }
}
use 'tpope/vim-fugitive'
use 'majutsushi/tagbar'
use 'airblade/vim-gitgutter'
use 'Bekaboo/deadcolumn.nvim'
use {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"neovim/nvim-lspconfig",
}
use 'norcalli/nvim-colorizer.lua'
use 'vim-scripts/SyntaxAttr.vim'
--use 'romgrk/barbar.nvim'
use 'HiPhish/rainbow-delimiters.nvim'
use 'chentoast/marks.nvim'
use "lukas-reineke/indent-blankline.nvim"
use "jeetsukumaran/vim-indentwise"
-- AI
use({
"olimorris/codecompanion.nvim",
config = function()
require("codecompanion").setup({
strategies = {
chat = {
adapter = "ollama",
},
inline = {
adapter = "ollama",
},
cmd = {
adapter = "ollama",
}
},
})
end,
requires = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
}
})
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if packer_bootstrap then
require('packer').sync()
end
end)

310
lua/plugins/init.lua Normal file
View File

@ -0,0 +1,310 @@
return {
--# plenary, handles multitasking and program effeciency
"nvim-lua/plenary.nvim",
--# telescope, open a windows to fuzzy find in for files or strings in files
{
'nvim-telescope/telescope.nvim',
tag = '0.1.8',
dependencies = { 'nvim-lua/plenary.nvim' }
},
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
config = function()
require("telescope").load_extension("fzf")
end,
},
{
"nvim-telescope/telescope-ui-select.nvim",
config = function()
require("telescope").load_extension("ui-select")
end,
},
--# treesitter, uses language parsers for highlighting
'nvim-treesitter/nvim-treesitter',
--# lualine, creates nice looking status bar
'nvim-lualine/lualine.nvim',
--# web-devicons, generates icons for nerd font
{
"nvim-tree/nvim-web-devicons",
opts = {}
},
--# nvim-tree, a filebrowser
{
"nvim-tree/nvim-tree.lua",
version = "*",
lazy = false,
dependencies = {
"nvim-tree/nvim-web-devicons",
},
},
--# gruvbox, a style
'morhetz/gruvbox',
--# fugitive, a git wrapper
'tpope/vim-fugitive',
--# tagbar, opens a view to see properties and methods of file
'majutsushi/tagbar',
--# gitgutter, shows git info in gutter
'airblade/vim-gitgutter',
--# deadcolumn, shows line limit when coming close
'Bekaboo/deadcolumn.nvim',
--# colorizer, show hex and other colors e.g: #ADADBF
'NiklasV1/nvim-colorizer.lua',
--# SyntaxAttr, display syntax highlighting
'vim-scripts/SyntaxAttr.vim',
--# rainbow-delimiters, colors braces etc
'HiPhish/rainbow-delimiters.nvim',
--# marks, shows where marks are placed in gutter
'chentoast/marks.nvim',
--# indentwise, helps with indentation formatting
"jeetsukumaran/vim-indentwise",
--# local ai, needs llama.cpp which should be built using CUDA, see https://github.com/ggml-org/llama.cpp
{
'ggml-org/llama.vim',
init = function()
vim.g.llama_config = {
keymap_fim_accept_line = "<Tab>",
keymap_fim_accept_full = "<S-Tab>",
}
end,
},
--# indent-blankline, shows indentation
{
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
--commit = "29be0919b91fb59eca9e90690d76014233392bef",
},
-- lsp stuff
{
"mason-org/mason.nvim",
opts = {}
},
{
"mason-org/mason-lspconfig.nvim",
opts = {},
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"neovim/nvim-lspconfig",
},
},
-- show warning and errors
{
"folke/trouble.nvim",
opts = {}, -- for default options, refer to the configuration section for custom setup.
cmd = "Trouble",
keys = {
{
"<leader>xx",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<leader>xX",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<leader>cs",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<leader>cl",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<leader>xL",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<leader>xQ",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
},
-- quick commenting
{
'numToStr/Comment.nvim',
opts = {
-- add any options here
}
},
-- Add scrollbar
'petertriho/nvim-scrollbar',
-- Show shortcut keys
{
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
},
-- formatting!
{
"stevearc/conform.nvim",
opts = {
formatters_by_ft = { lua = { "stylua" } },
},
},
-- context menu
{
"nvzone/volt",
lazy = true
},
{
"nvzone/menu",
lazy = true
},
-- color picker
{
"nvzone/minty",
cmd = { "Shades", "Huefy" },
},
-- undo tree
{
"jiaoshijie/undotree",
dependencies = { "nvim-lua/plenary.nvim" },
---@module 'undotree.collector'
---@type UndoTreeCollector.Opts
opts = {
-- your options
},
keys = { -- load the plugin only when using it's keybinding:
{ "<leader>u", "<cmd>lua require('undotree').toggle()<cr>" },
},
},
{
'nvimdev/lspsaga.nvim',
config = function()
require('lspsaga').setup({
lightbulb = {
enable = false,
},
})
end,
dependencies = {
'nvim-treesitter/nvim-treesitter', -- optional
'nvim-tree/nvim-web-devicons', -- optional
}
},
-- mini icons
{
'nvim-mini/mini.nvim',
version = '*'
},
-- custom welcome screen
{
"goolord/alpha-nvim",
config = function ()
require'alpha'.setup(require'alpha.themes.dashboard'.config)
end,
},
-- floating terminal
{
'akinsho/toggleterm.nvim',
version = "*",
config = true
},
-- Completion framework
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-cmdline",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
},
config = function()
require("config.plugin.cmp")
end,
},
-- Improves tabs
{
"akinsho/bufferline.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("bufferline").setup({
options = {
mode = "tabs",
separator_style = "slant",
}
})
end,
},
-- AI
-- {
-- "supermaven-inc/supermaven-nvim",
-- config = function()
-- require("supermaven-nvim").setup({})
-- end,
-- },
}
--"williamboman/mason.nvim",
--"williamboman/mason-lspconfig.nvim",
--"neovim/nvim-lspconfig",
--# neo-tree, a filebrowser
--{
-- "nvim-neo-tree/neo-tree.nvim",
-- keys = {
-- { "<leader>ft", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
-- },
-- opts = {},
--},
---- ui plugin is a collection of many UI modules like statusline, tabline, cheatsheet, nvdash and much more!
--"nvim-lua/plenary.nvim",
--{
-- "nvim-tree/nvim-web-devicons",
-- lazy = true
--},
--{
-- "nvchad/ui",
-- config = function()
-- require "nvchad"
-- end
--},
--{
-- "nvchad/base46",
-- lazy = true,
-- build = function()
-- require("base46").load_all_highlights()
-- end,
--},
--{
-- "dundalek/lazy-lsp.nvim",
-- commit="0ccc0238be37351d53e64c2f6c7f9e106e2bdb68",
-- dependencies = {
-- "neovim/nvim-lspconfig",
-- {"VonHeikemen/lsp-zero.nvim", branch = "v3.x"},
-- "hrsh7th/cmp-nvim-lsp",
-- "hrsh7th/nvim-cmp",
-- },
-- config = function()
-- local lsp_zero = require("lsp-zero")
-- lsp_zero.on_attach(function(client, bufnr)
-- -- see :help lsp-zero-keybindings to learn the available actions
-- lsp_zero.default_keymaps({
-- buffer = bufnr,
-- preserve_mappings = false
-- })
-- end)
-- require("lazy-lsp").setup {}
-- end,
--},

Binary file not shown.

BIN
nvim.appimage.v10 Executable file

Binary file not shown.

View File

@ -1,209 +0,0 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/produktr/.cache/nvim/packer_hererocks/2.1.1713484068/share/lua/5.1/?.lua;/home/produktr/.cache/nvim/packer_hererocks/2.1.1713484068/share/lua/5.1/?/init.lua;/home/produktr/.cache/nvim/packer_hererocks/2.1.1713484068/lib/luarocks/rocks-5.1/?.lua;/home/produktr/.cache/nvim/packer_hererocks/2.1.1713484068/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/produktr/.cache/nvim/packer_hererocks/2.1.1713484068/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
["SyntaxAttr.vim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/SyntaxAttr.vim",
url = "https://github.com/vim-scripts/SyntaxAttr.vim"
},
["codecompanion.nvim"] = {
config = { "\27LJ\2\nÕ\1\0\0\5\0\f\0\0156\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\n\0005\3\4\0005\4\3\0=\4\5\0035\4\6\0=\4\a\0035\4\b\0=\4\t\3=\3\v\2B\0\2\1K\0\1\0\15strategies\1\0\1\15strategies\0\bcmd\1\0\1\fadapter\vollama\vinline\1\0\1\fadapter\vollama\tchat\1\0\3\vinline\0\bcmd\0\tchat\0\1\0\1\fadapter\vollama\nsetup\18codecompanion\frequire\0" },
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/codecompanion.nvim",
url = "https://github.com/olimorris/codecompanion.nvim"
},
["deadcolumn.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/deadcolumn.nvim",
url = "https://github.com/Bekaboo/deadcolumn.nvim"
},
gruvbox = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/gruvbox",
url = "https://github.com/morhetz/gruvbox"
},
["indent-blankline.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
url = "https://github.com/lukas-reineke/indent-blankline.nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["marks.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/marks.nvim",
url = "https://github.com/chentoast/marks.nvim"
},
["mason-lspconfig.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
url = "https://github.com/williamboman/mason-lspconfig.nvim"
},
["mason.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/mason.nvim",
url = "https://github.com/williamboman/mason.nvim"
},
["nvim-colorizer.lua"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua",
url = "https://github.com/norcalli/nvim-colorizer.lua"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-tree.lua"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
url = "https://github.com/nvim-tree/nvim-tree.lua"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-web-devicons"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
url = "https://github.com/nvim-tree/nvim-web-devicons"
},
["packer.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["rainbow-delimiters.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/rainbow-delimiters.nvim",
url = "https://github.com/HiPhish/rainbow-delimiters.nvim"
},
tagbar = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/tagbar",
url = "https://github.com/majutsushi/tagbar"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
["vim-fugitive"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/vim-fugitive",
url = "https://github.com/tpope/vim-fugitive"
},
["vim-gitgutter"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/vim-gitgutter",
url = "https://github.com/airblade/vim-gitgutter"
},
["vim-indentwise"] = {
loaded = true,
path = "/home/produktr/.local/share/nvim/site/pack/packer/start/vim-indentwise",
url = "https://github.com/jeetsukumaran/vim-indentwise"
}
}
time([[Defining packer_plugins]], false)
-- Config for: codecompanion.nvim
time([[Config for codecompanion.nvim]], true)
try_loadstring("\27LJ\2\nÕ\1\0\0\5\0\f\0\0156\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\n\0005\3\4\0005\4\3\0=\4\5\0035\4\6\0=\4\a\0035\4\b\0=\4\t\3=\3\v\2B\0\2\1K\0\1\0\15strategies\1\0\1\15strategies\0\bcmd\1\0\1\fadapter\vollama\vinline\1\0\1\fadapter\vollama\tchat\1\0\3\vinline\0\bcmd\0\tchat\0\1\0\1\fadapter\vollama\nsetup\18codecompanion\frequire\0", "config", "codecompanion.nvim")
time([[Config for codecompanion.nvim]], false)
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end