Compare commits

...

31 Commits

Author SHA1 Message Date
e480f27f70 some changes 2025-01-04 19:47:00 +01:00
54860e1f3b fixing neogit + trying new plugins 2024-05-31 18:03:12 +02:00
2218802114 Improving mini config 2024-05-18 00:52:49 +02:00
c32d895f9b New mini.nvim plugins and cleanup 2024-05-18 00:37:07 +02:00
9406f6d742 Adding .luarc.json and cleaning up plugins.lua 2024-05-17 20:28:40 +02:00
69e87e7d77 Updating harpoon config + migrating to codeium 2024-04-26 20:55:48 +02:00
aa3f06a77f Merge branch 'master' of git.nussnougate.net:sevi-kun/nvim 2024-04-15 22:26:13 +02:00
9e50fa629a refining plugins.lua 2024-04-15 22:26:09 +02:00
0009f09e82 Updating treesitter config
Removing unneeded, adding all languages and fixing php indent
2024-02-28 14:48:36 +01:00
ae1e337895 Highlight current line 2024-01-11 12:41:46 +01:00
947d04c265 fix harpoon - lazy - version to branch 2024-01-11 12:37:33 +01:00
3d987091c6 remove neorg as not needed 2024-01-10 22:53:36 +01:00
05fa907bbf migrate from packer to lazy 2023-12-02 16:51:36 +01:00
221eadd375 Merge branch 'master' of git.nussnougate.net:sevi-kun/nvim 2023-09-08 19:14:10 +02:00
d03873fe01 fixing telescope for neovim nightly 2023-09-08 19:13:57 +02:00
e472cf0c13 Disabeling shitty wrap...
Need to find a different solution for wrap in lsp messages
2023-09-06 17:08:06 +02:00
a6fb05eeca Add copilot to packer 2023-09-05 22:08:04 +02:00
b83a2da4b5 Refine settings 2023-09-05 21:40:50 +02:00
63720ef6e8 Add oil as additional filemanager 2023-09-05 21:40:13 +02:00
587831d76f Refine remap for buffer movement 2023-09-05 21:39:01 +02:00
d3dbe17ecf Merge branch 'master' of git.nussnougate.net:sevi-kun/nvim 2023-09-05 20:45:12 +02:00
ffa9646bcd add new remaps for buffer navigation 2023-09-05 20:45:06 +02:00
3080f6957b disable autoclose for norg 2023-09-05 20:41:22 +02:00
a409554f1a add neorg for notes taking 2023-09-05 20:40:26 +02:00
835b0543d4 Upload sessions plugin config 2023-09-05 13:03:02 +02:00
5101b0774b Add sessions management plugins 2023-09-05 13:01:56 +02:00
23316d5276 new theme + removing php from treesitter 2023-09-01 21:56:21 +02:00
568ddda484 Add make shortcut F5 2023-08-27 14:18:14 +02:00
3e8e55e818 Configure search to ignore case 2023-08-04 22:21:46 +02:00
4919f21455 Add block/indent indicator 2023-08-04 22:21:03 +02:00
5bb05ba08c Cleanup config 2023-08-04 22:20:33 +02:00
19 changed files with 441 additions and 292 deletions

2
.gitignore vendored
View File

@ -1 +1,3 @@
plugin/packer_compiled.lua
lazy-lock.json

13
.luarc.json Executable file
View File

@ -0,0 +1,13 @@
{
"runtime.version": "LuaJIT",
"runtime.path": [
"lua/?.lua",
"lua/?/init.lua"
],
"diagnostics.globals": ["vim"],
"workspace.checkThirdParty": false,
"workspace.library": [
"$VIMRUNTIME",
"./lua"
]
}

View File

@ -1,23 +1,12 @@
-- Close brackets
local config = {
keys = {
["("] = { escape = false, close = true, pair = "()", disabled_filetypes = {} },
["["] = { escape = false, close = true, pair = "[]", disabled_filetypes = {} },
["{"] = { escape = false, close = true, pair = "{}", disabled_filetypes = {} },
local autoclose = require("autoclose")
[">"] = { escape = true, close = false, pair = "<>", disabled_filetypes = {} },
[")"] = { escape = true, close = false, pair = "()", disabled_filetypes = {} },
["]"] = { escape = true, close = false, pair = "[]", disabled_filetypes = {} },
["}"] = { escape = true, close = false, pair = "{}", disabled_filetypes = {} },
['"'] = { escape = true, close = true, pair = '""', disabled_filetypes = {} },
["'"] = { escape = true, close = true, pair = "''", disabled_filetypes = {} },
["`"] = { escape = true, close = true, pair = "``", disabled_filetypes = {} },
},
autoclose.setup({
options = {
disabled_filetypes = { "text", "markdown" },
disable_when_touch = false,
pair_spaces = false,
disabled_filetypes = { "text", "markdown", "neogit", },
disable_when_touch = true,
pair_spaces = true,
auto_indent = true,
disable_command_mode = true,
},
}
})

View File

@ -1,40 +1,9 @@
-- pretty location at the top
require("barbecue").setup({
---Whether to attach navic to language servers automatically.
---
---@type boolean
attach_navic = true,
---Whether to create winbar updater autocmd.
---
---@type boolean
create_autocmd = true,
---Buftypes to enable winbar in.
---
---@type string[]
include_buftypes = { "" },
---Filetypes not to enable winbar in.
---
---@type string[]
exclude_filetypes = { "netrw", "toggleterm" },
modifiers = {
---Filename modifiers applied to dirname.
---
---See: `:help filename-modifiers`
---
---@type string
dirname = ":~:.",
---Filename modifiers applied to basename.
---
---See: `:help filename-modifiers`
---
---@type string
basename = "",
},
exclude_filetypes = { "netrw", "toggleterm", "neogit" },
---Whether to display path to file.
---
@ -50,7 +19,7 @@ require("barbecue").setup({
---modified.
---
---@type boolean
show_modified = false,
show_modified = true,
---Get modified status of file.
---
@ -63,96 +32,4 @@ require("barbecue").setup({
---
---@type boolean
show_navic = true,
---Get leading custom section contents.
---
---NOTE: This function shouldn't do any expensive actions as it is run on each
---render.
---
---@type fun(bufnr: number, winnr: number): barbecue.Config.custom_section
lead_custom_section = function() return " " end,
---@alias barbecue.Config.custom_section
---|string # Literal string.
---|{ [1]: string, [2]: string? }[] # List-like table of `[text, highlight?]` tuples in which `highlight` is optional.
---
---Get custom section contents.
---
---NOTE: This function shouldn't do any expensive actions as it is run on each
---render.
---
---@type fun(bufnr: number, winnr: number): barbecue.Config.custom_section
custom_section = function() return " " end,
---@alias barbecue.Config.theme
---|'"auto"' # Use your current colorscheme's theme or generate a theme based on it.
---|string # Theme located under `barbecue.theme` module.
---|barbecue.Theme # Same as '"auto"' but override it with the given table.
---
---Theme to be used for generating highlight groups dynamically.
---
---@type barbecue.Config.theme
--theme = "auto",
theme = {
basename = { bold = false},
},
---Whether context text should follow its icon's color.
---
---@type boolean
context_follow_icon_color = false,
symbols = {
---Modification indicator.
---
---@type string
modified = "",
---Truncation indicator.
---
---@type string
ellipsis = "",
---Entry separator.
---
---@type string
separator = "",
},
---@alias barbecue.Config.kinds
---|false # Disable kind icons.
---|table<string, string> # Type to icon mapping.
---
---Icons for different context entry kinds.
---
---@type barbecue.Config.kinds
kinds = {
File = "",
Module = "",
Namespace = "",
Package = "",
Class = "",
Method = "",
Property = "",
Field = "",
Constructor = "",
Enum = "",
Interface = "",
Function = "",
Variable = "",
Constant = "",
String = "",
Number = "",
Boolean = "",
Array = "",
Object = "",
Key = "",
Null = "",
EnumMember = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
},
})

View File

@ -1,11 +1,44 @@
-- fast switching between files
local mark = require("harpoon.mark")
local ui = require("harpoon.ui")
local harpoon = require("harpoon")
vim.keymap.set("n", "<leader>a", mark.add_file)
vim.keymap.set("n", "<leader>h", ui.toggle_quick_menu)
-- REQUIRED
harpoon:setup({})
-- REQUIRED
--
-- basic telescope configuration
local conf = require("telescope.config").values
local function toggle_telescope(harpoon_files)
local file_paths = {}
for _, item in ipairs(harpoon_files.items) do
table.insert(file_paths, item.value)
end
require("telescope.pickers").new({}, {
prompt_title = "Harpoon",
finder = require("telescope.finders").new_table({
results = file_paths,
}),
previewer = conf.file_previewer({}),
sorter = conf.generic_sorter({}),
}):find()
end
vim.keymap.set("n", "<leader>H", function() toggle_telescope(harpoon:list()) end,
{ desc = "Open harpoon in telescope" })
vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end,
{ desc = "Harpoon: Add current buffer" })
vim.keymap.set("n", "<leader>hh", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end,
{ desc = "Harpoon: Toggle quick menu" })
vim.keymap.set("n", "<C-h>", function() harpoon:list():select(1) end)
vim.keymap.set("n", "<C-j>", function() harpoon:list():select(2) end)
vim.keymap.set("n", "<C-k>", function() harpoon:list():select(3) end)
vim.keymap.set("n", "<C-l>", function() harpoon:list():select(4) end)
-- Toggle previous & next buffers stored within Harpoon list
vim.keymap.set("n", "<leader>hp", function() harpoon:list():prev() end,
{ desc = "Harpoon: Previous buffer" })
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end,
{ desc = "Harpoon: Next buffer" })
vim.keymap.set("n", "<C-h>", function() ui.nav_file(1) end)
vim.keymap.set("n", "<C-j>", function() ui.nav_file(2) end)
vim.keymap.set("n", "<C-k>", function() ui.nav_file(3) end)
vim.keymap.set("n", "<C-l>", function() ui.nav_file(4) end)

View File

@ -1,11 +1,22 @@
-- language server manager (via Mason)
local lsp = require('lsp-zero').preset({})
local lsp_zero = require("lsp-zero")
lsp.on_attach(function(client, bufnr)
lsp.default_keymaps({buffer = bufnr})
lsp_zero.on_attach(function(client, bufnr)
-- see :help lsp-zero-keybindings
-- to learn the available actions
lsp_zero.default_keymaps({buffer = bufnr})
end)
-- (Optional) Configure lua language server for neovim
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
require("mason").setup({})
require("mason-lspconfig").setup({
ensure_installed = {},
handlers = {
lsp_zero.default_setup,
},
})
local codeium = require("codeium")
codeium.setup({
enable_chat = true,
})
lsp.setup()

48
after/plugin/mini.lua Normal file
View File

@ -0,0 +1,48 @@
-- Configuration of mini.nvim plugins
-- mini.map
local map = require("mini.map")
map.setup({
symbols = {
encode = map.gen_encode_symbols.dot("3x2")
},
window = {
width = 16,
show_integration_count = false
},
integrations = {
map.gen_integration.diagnostic({
error = "DiagnosticFloatingError",
warn = "DiagnosticFloatingWarn",
info = "DiagnosticFloatingInfo",
hint = "DiagnosticFloatingHint",
}),
map.gen_integration.builtin_search(),
},
})
vim.keymap.set("n", "<Leader>mf", map.toggle_focus)
vim.keymap.set("n", "<Leader>mr", map.refresh)
vim.keymap.set("n", "<Leader>mt", map.toggle)
-- mini.animate
local animate = require("mini.animate")
animate.setup({
cursor = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" })
},
scroll = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" })
},
resize = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" })
},
open = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" })
},
close = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" })
},
})

View File

@ -43,4 +43,4 @@ neogit.setup {
popup = {
kind = "split",
},
}
}

6
after/plugin/notes.lua Normal file
View File

@ -0,0 +1,6 @@
-- Configuration of note taking setup
local mkdnflow = require("mkdnflow")
mkdnflow.setup({
wrap = true
})

28
after/plugin/oil.lua Normal file
View File

@ -0,0 +1,28 @@
require("oil").setup({
default_file_explorer = false,
columns = {
-- "icon",
-- "permissions",
-- "size",
-- "mtime",
},
float = {
-- Padding around the floating window
padding = 12,
max_width = 120,
max_height = 64,
border = "rounded",
win_options = {
winblend = 0,
},
-- This is the config that will be passed to nvim_open_win.
-- Change values here to customize the layout
override = function(conf)
return conf
end,
}
})
vim.keymap.set("n", "<leader>-", ":Oil --float <CR>")

10
after/plugin/sessions.lua Normal file
View File

@ -0,0 +1,10 @@
sessions = require("seshmgr")
sessions.setup({
session_dir = os.getenv("HOME") .. "/.nvim/sessions",
telescope = {
enabled = true,
keymap = "<leader>ss",
},
})

View File

@ -1,7 +1,7 @@
-- finding files in working dir and repo
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>pf', builtin.git_files, {})
vim.keymap.set('n', '<leader>ps', function()
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, {})
vim.keymap.set("n", "<leader>pf", builtin.git_files, {})
vim.keymap.set("n", "<leader>ps", function()
builtin.grep_string({ search = vim.fn.input("Grep > ") });
end)

View File

@ -1,23 +1,32 @@
-- parsing and highlighting
require'nvim-treesitter.configs'.setup {
require"nvim-treesitter.configs".setup {
-- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "python", "javascript", "typescript", "php", "c", "rust", "bash", "lua", "vim", "vimdoc", "query" },
ensure_installed = "all",
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
-- Recommendation: set to false if you don"t have `tree-sitter` CLI installed locally
auto_install = true,
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
highlight = {
enable = true,
},
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false,
-- Needed because treesitter highlight turns off autoindent for php files
indent = {
enable = true,
},
}

View File

@ -1,2 +1,7 @@
-- advanced undo history
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
vim.opt.undodir = os.getenv("HOME") .. "/.nvim/undodir"
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undofile = true

View File

@ -1 +1,16 @@
require("sevi-kun")
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("sevi-kun.plugins")

View File

@ -1,101 +0,0 @@
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
-- treesitter
use ('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
use ('nvim-treesitter/playground')
use ('nvim-treesitter/nvim-treesitter-context')
-- useful
use {
'nvim-telescope/telescope.nvim', tag = '0.1.2',
requires = 'nvim-lua/plenary.nvim'
}
use {
'ThePrimeagen/harpoon',
requires = 'nvim-lua/plenary.nvim'
}
use {
'NeogitOrg/neogit',
requires = 'nvim-lua/plenary.nvim'
}
use({
"kylechui/nvim-surround",
tag = "*", -- Use for stability; omit to use `main` branch for the latest features
config = function()
require("nvim-surround").setup()
end
})
use {
'numToStr/Comment.nvim',
config = function()
require('Comment').setup()
end
}
use ('mbbill/undotree')
use {
'm4xshen/autoclose.nvim',
config = function ()
require("autoclose").setup()
end
}
-- pretty
use {
'catppuccin/nvim',
as = 'mocha',
config = function()
vim.cmd('colorscheme catppuccin-mocha')
end
}
use {
"utilyre/barbecue.nvim", tag = "*",
requires = {
"SmiteshP/nvim-navic",
"nvim-tree/nvim-web-devicons", -- optional dependency
},
after = "nvim-web-devicons", -- keep this if you're using NvChad
config = function()
require("barbecue").setup()
end,
}
-- lsp
use {
'VonHeikemen/lsp-zero.nvim',
branch = 'v2.x',
requires = {
-- LSP Support
{'neovim/nvim-lspconfig'}, -- Required
{ -- Optional
'williamboman/mason.nvim',
run = function()
pcall(vim.cmd, 'MasonUpdate')
end,
},
{'williamboman/mason-lspconfig.nvim'}, -- Optional
-- Autocompletion
{'hrsh7th/nvim-cmp'}, -- Required
{'hrsh7th/cmp-nvim-lsp'}, -- Required
{'L3MON4D3/LuaSnip'}, -- Required
}
}
end)

199
lua/sevi-kun/plugins.lua Normal file
View File

@ -0,0 +1,199 @@
-- lazy.nvim plugins
return {
-- treesitter
{ "nvim-treesitter/nvim-treesitter",
build = ":TSUpdate"
},
{ "nvim-treesitter/playground" },
{ "nvim-treesitter/nvim-treesitter-context" },
-- useful
--{ dir = "/mnt/nas_belar/code/vim-plugins/narrator.nvim" },
{ "nvim-telescope/telescope.nvim",
version = "0.1.x",
dependencies = { "nvim-lua/plenary.nvim" }
},
{ "mackeper/SeshMgr.nvim",
event = "VeryLazy"
},
{ "ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
},
{ "ThePrimeagen/refactoring.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
lazy = false,
config = function()
require("refactoring").setup()
end,
},
{ "NeogitOrg/neogit",
branch = "master",
dependencies = {
"nvim-lua/plenary.nvim",
"sindrets/diffview.nvim",
"nvim-telescope/telescope.nvim",
}
},
{ "stevearc/oil.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" }
},
{ "kylechui/nvim-surround",
version = "*",
event = "VeryLazy",
config = function()
require("nvim-surround").setup()
end
},
{ "mbbill/undotree" },
{ "m4xshen/autoclose.nvim" },
-- Notes
{ "jbyuki/nabla.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" }
},
{ "jakewvincent/mkdnflow.nvim" },
-- pretty
{ "navarasu/onedark.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd("colorscheme onedark")
end
},
{ "lukas-reineke/indent-blankline.nvim",
lazy = false,
main = "ibl",
opts = {},
config = function()
require("ibl").setup({})
end
},
{ "utilyre/barbecue.nvim",
lazy = false,
name = "barbecue",
version = "*",
dependencies = {
"SmiteshP/nvim-navic",
"nvim-tree/nvim-web-devicons",
},
},
-- mini
{ "echasnovski/mini.basics",
version = false,
config = function()
require("mini.basics").setup()
end
},
{ "echasnovski/mini.ai",
version = false,
config = function()
require("mini.ai").setup()
end
},
{ "echasnovski/mini.comment",
version = false,
config = function()
require("mini.comment").setup()
end
},
{ "echasnovski/mini.map",
version = false,
},
{ "echasnovski/mini.statusline",
version = false,
config = function()
require("mini.statusline").setup()
end
},
{ "echasnovski/mini.animate",
version = false,
config = function()
require("mini.animate").setup()
end
},
{ "echasnovski/mini.fuzzy",
version = false,
config = function()
require("mini.fuzzy").setup()
end
},
{ "echasnovski/mini.splitjoin",
version = false,
config = function()
require("mini.splitjoin").setup()
end
},
-- Style Checker
{ "averms/black-nvim" },
-- trouble
{ "folke/trouble.nvim",
branch = "dev",
},
-- lsp
{ "Exafunction/codeium.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
},
{ "neoclide/coc.nvim",
branch = "release"
},
{ "williamboman/mason.nvim",
config = function()
require("mason").setup({})
end
},
{ "williamboman/mason-lspconfig.nvim" },
{ "VonHeikemen/lsp-zero.nvim", branch = "v3.x" },
{ "neovim/nvim-lspconfig" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "hrsh7th/nvim-cmp" },
{ "L3MON4D3/LuaSnip" },
}

View File

@ -3,6 +3,8 @@ vim.g.mapleader = " "
vim.keymap.set("n", "<leader>.", vim.cmd.Ex)
vim.keymap.set("n", "<C-b>", ":e #<CR>")
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
@ -17,4 +19,6 @@ vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
vim.keymap.set("n", "<F5>", ":make")
vim.keymap.set("n", "<leader>l", ":noh<CR>")

View File

@ -1,5 +1,9 @@
vim.g.mapleader = " "
vim.opt.nu = true
vim.opt.relativenumber = true
vim.opt.ignorecase = true
vim.opt.cursorline = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
@ -10,12 +14,7 @@ vim.opt.smartindent = true
vim.opt.wrap = false
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.opt.termguicolors = true
@ -28,4 +27,6 @@ vim.opt.updatetime = 50
vim.opt.colorcolumn = "80"
vim.g.mapleader = " "
vim.g.netrw_preview = 1
vim.g.netrw_liststyle = 3
vim.g.netrw_winsize = 30