Compare commits

..

No commits in common. "master" and "lazyloader" have entirely different histories.

24 changed files with 101 additions and 923 deletions

2
.gitignore vendored
View File

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

142
README.md
View File

@ -1,142 +0,0 @@
# 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,8 +1,9 @@
vim.opt.termguicolors = true
require("config.functions")
require("config.lazy")
require("config.keymaps")
require("config.lazy")
require("config.options")
--require("core.plugins")
require("config.aliases")
require("config.plugin")

21
lazy-lock.json Normal file
View File

@ -0,0 +1,21 @@
{
"SyntaxAttr.vim": { "branch": "master", "commit": "8debed49d8df762fd89f540996d9e9a5016ec0a3" },
"catppuccin": { "branch": "main", "commit": "1bf070129c0b6f77cc23f6a2212dcdc868308c52" },
"deadcolumn.nvim": { "branch": "master", "commit": "8f5f8610fda22ff7a3937bc72d0e7d41faaceeaa" },
"gruvbox": { "branch": "master", "commit": "697c00291db857ca0af00ec154e5bd514a79191f" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" },
"marks.nvim": { "branch": "master", "commit": "bb25ae3f65f504379e3d08c8a02560b76eaf91e8" },
"neo-tree.nvim": { "branch": "main", "commit": "56f383aa157f1ff20a59154907cc5f9fe26e4db9" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" },
"nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" },
"nvim-web-devicons": { "branch": "master", "commit": "f1420728f59843eb2ef084406b3d0201a0a0932d" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "55ad4fb76ab68460f700599b7449385f0c4e858e" },
"tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" },
"vim-gitgutter": { "branch": "main", "commit": "a5ae0a5a18e266f8a62b3e256208afcbb20fe5b5" },
"vim-indentwise": { "branch": "master", "commit": "608bd6876d3b56d469e0e615eb774a6e06095dbf" }
}

View File

@ -1,97 +1,5 @@
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"},
})
-- 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>')
@ -106,26 +14,19 @@ 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>', ':BufferLineCycleNext<CR>')
vim.keymap.set('n', '<S-Tab>', ':BufferLineCyclePrev<CR>')
-- quick close tab USE <leader>ZQ
--vim.keymap.set('n', '<C-w>', ':tabclose<CR>')
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>', {})
-- 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, {})

View File

@ -18,8 +18,8 @@ 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 = ' '
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({
@ -29,12 +29,7 @@ require("lazy").setup({
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = {
colorscheme = { "habamax" }
},
install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates
checker = {
enabled = true,
notify = false,
},
checker = { enabled = true },
})

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,25 +39,3 @@ 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

@ -1,53 +1,4 @@
-- 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"
require 'catppuccin'.setup()
vim.cmd.colorscheme "catppuccin-mocha"

View File

@ -1,89 +0,0 @@
-- 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

@ -1,11 +1,4 @@
local highlight = {
"RainbowDelimiterRed",
"RainbowDelimiterYellow",
"RainbowDelimiterBlue",
"RainbowDelimiterOrange",
"RainbowDelimiterGreen",
"RainbowDelimiterViolet",
"RainbowDelimiterCyan",
"RainbowRed",
"RainbowYellow",
"RainbowBlue",
@ -14,27 +7,18 @@ local highlight = {
"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" })
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)
vim.g.rainbow_delimiters = { highlight = highlight }
require("ibl").setup { scope = { highlight = highlight } }
hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark)
require("ibl").setup { indent = { highlight = highlight } }

View File

@ -1,3 +1,4 @@
require("config.plugin.catppuccin")
require("config.plugin.lualine")
require("config.plugin.nvim-tree")
require("config.plugin.treesitter")
@ -8,13 +9,10 @@ require("config.plugin.vim-gitgutter")
require("config.plugin.deadcolumn")
require("config.plugin.colorizer")
require("config.plugin.synattr")
require("config.plugin.rainbow-delimiters")
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")
--require("config.plugin.gruvbox")
--require("config.plugin.lsp_config")
--require("config.plugin.indent-blankline")

View File

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

View File

@ -1,108 +0,0 @@
-- 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,12 @@
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 +0,0 @@
require('lspsaga').config.lightbulb.enabled = false

View File

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

View File

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

View File

@ -1,40 +1,15 @@
-- 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',
[''] = rainbow_delimiters.strategy['global'],
commonlisp = rainbow_delimiters.strategy['local'],
},
query = {
[''] = 'rainbow-delimiters',
lua = 'rainbow-blocks',
},
priority = {
[''] = 110,
lua = 210,
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
@ -44,4 +19,6 @@ vim.g.rainbow_delimiters = {
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
blacklist = {'c', 'cpp'},
}

View File

@ -1,32 +0,0 @@
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

@ -1,15 +1,10 @@
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
}
}
})
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

@ -7,16 +7,4 @@ require 'nvim-treesitter.configs'.setup {
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

@ -7,19 +7,6 @@ return {
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
@ -38,8 +25,22 @@ return {
"nvim-tree/nvim-web-devicons",
},
},
--# neo-tree, a filebrowser
{
"nvim-neo-tree/neo-tree.nvim",
keys = {
{ "<leader>ft", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
},
opts = {},
},
--# gruvbox, a style
'morhetz/gruvbox',
--# catppuccin, a style
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000
},
--# fugitive, a git wrapper
'tpope/vim-fugitive',
--# tagbar, opens a view to see properties and methods of file
@ -49,7 +50,7 @@ return {
--# deadcolumn, shows line limit when coming close
'Bekaboo/deadcolumn.nvim',
--# colorizer, show hex and other colors e.g: #ADADBF
'NiklasV1/nvim-colorizer.lua',
'norcalli/nvim-colorizer.lua',
--# SyntaxAttr, display syntax highlighting
'vim-scripts/SyntaxAttr.vim',
--# rainbow-delimiters, colors braces etc
@ -58,253 +59,8 @@ return {
'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,
-- },
}
--"lukas-reineke/indent-blankline.nvim",
--"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.

Binary file not shown.