This commit is contained in:
Nikos Papadakis 2024-02-23 11:38:57 +02:00
parent aa1f89c172
commit 2f6925561b
Signed by untrusted user who does not match committer: nikos
GPG key ID: 78871F9905ADFF02
10 changed files with 206 additions and 254 deletions

View file

@ -1,60 +0,0 @@
local ok, lualine = pcall(require, "lualine")
if not ok then
return
end
local function diff_source()
local gitsigns = vim.b.gitsigns_status_dict
if gitsigns then
return {
added = gitsigns.added,
modified = gitsigns.changed,
removed = gitsigns.removed,
}
end
end
lualine.setup {
options = {
theme = "auto",
globalstatus = true,
section_separators = "",
},
sections = {
lualine_b = {
{ "branch" },
{
"diff",
source = diff_source,
},
},
lualine_c = {
{
"filetype",
colored = true,
icon_only = true,
separator = "",
},
{ "filename" },
{
function()
return vim.fn.search([[\s\+$]], "nw") ~= 0 and "trailing" or ""
end,
color = "WarningMsg",
},
},
lualine_x = {
{ "encoding" },
{ "fileformat" },
{
function()
if vim.bo.expandtab then
return "Space " .. vim.bo.shiftwidth
else
return "Tab " .. vim.bo.shiftwidth
end
end,
},
},
},
}

View file

@ -1,44 +0,0 @@
local ok, cmp = pcall(require, "cmp")
if not ok then
return
end
local luasnip_ok, luasnip = pcall(require, "luasnip")
if not luasnip_ok then
vim.notify("Luasnip is required for nvim-cmp to work", vim.log.levels.WARN)
end
local lspkind = require "lspkind"
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(4, { "i", "c" })),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-4, { "i", "c" })),
["<C-Space>"] = cmp.mapping(cmp.mapping.complete {}, { "i", "c" }),
["<C-c>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm { select = true },
},
sources = cmp.config.sources({
{ name = "nvim_lsp" },
}, {
{ name = "buffer" },
{ name = "path" },
}),
formatting = {
format = lspkind.cmp_format(),
},
}
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
})

View file

@ -57,6 +57,7 @@ vim.opt.signcolumn = "yes"
vim.opt.smartcase = true vim.opt.smartcase = true
vim.opt.splitright = true vim.opt.splitright = true
vim.opt.swapfile = false vim.opt.swapfile = false
vim.opt.laststatus = 3
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.opt.title = true vim.opt.title = true
vim.opt.undodir = vim.fn.stdpath "cache" .. "/undo" vim.opt.undodir = vim.fn.stdpath "cache" .. "/undo"

View file

@ -1,8 +1,5 @@
local ok, lspconfig = pcall(require, "lspconfig") local lspconfig = require "lspconfig"
require "neodev".setup()
if not ok then
return
end
local root_dir local root_dir
for dir in vim.fs.parents(vim.api.nvim_buf_get_name(0)) do for dir in vim.fs.parents(vim.api.nvim_buf_get_name(0)) do
@ -30,11 +27,11 @@ local on_attach = function(client, bufnr)
require("my.keymaps").lsp_keymaps(client, bufnr) require("my.keymaps").lsp_keymaps(client, bufnr)
if client.server_capabilities.completionProvider then if client.server_capabilities.completionProvider then
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") vim.api.nvim_set_option_value("omnifunc", "v:lua.vim.lsp.omnifunc", { buf = bufnr })
end end
if client.server_capabilities.definitionProvider then if client.server_capabilities.definitionProvider then
vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") vim.api.nvim_set_option_value("tagfunc", "v:lua.vim.lsp.tagfunc", { buf = bufnr })
end end
-- Highlight on cursor hold -- Highlight on cursor hold

View file

@ -1,8 +1,5 @@
local _, telescope = pcall(require, "telescope") local telescope = require "telescope"
local ok, builtin = pcall(require, "telescope.builtin") local builtin = require "telescope.builtin"
if not ok then
return
end
telescope.setup { telescope.setup {
extensions = { extensions = {

View file

@ -1,138 +0,0 @@
return {
{
"catppuccin/nvim",
lazy = false, -- make sure we load this during startup if it is your main colorscheme
priority = 1000, -- make sure to load this before all the other start plugins
name = "catppuccin",
opts = {
flavour = "mocha", -- latte, frappe, macchiato, mocha
transparent_background = false,
dim_inactive = {
enabled = true,
shade = "dark",
percentage = 0.15,
},
integrations = {
cmp = true,
fidget = true,
gitsigns = true,
indent_blankline = {
enabled = true,
colored_indent_levels = false,
},
native_lsp = {
enabled = true,
virtual_text = {
errors = { "italic" },
hints = { "italic" },
warnings = { "italic" },
information = { "italic" },
},
underlines = {
errors = { "underline" },
hints = { "underline" },
warnings = { "underline" },
information = { "underline" },
},
},
telescope = true,
treesitter = true,
},
},
config = function(_LazyPlugin, opts)
require("catppuccin").setup(opts)
vim.cmd.colorscheme "catppuccin"
end
},
{
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
dependencies = {
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
{ "nvim-telescope/telescope-ui-select.nvim" },
"nvim-lua/plenary.nvim",
}
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-path",
}
},
{
"nvim-treesitter/nvim-treesitter",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
},
{
"j-hui/fidget.nvim",
tag = "legacy",
event = "LspAttach",
opts = {
window = {
blend = 0,
},
},
},
{
"windwp/nvim-autopairs",
event = "InsertEnter",
opts = {}
},
{
"lukas-reineke/indent-blankline.nvim",
branch = "v3",
config = function()
require("ibl").setup {
scope = { enabled = false }
}
end
},
{
"stevearc/oil.nvim",
tag = "v2.1.0",
opts = {
keymaps = {
["g?"] = "actions.show_help",
["<CR>"] = "actions.select",
["<C-v>"] = "actions.select_vsplit",
["<C-s>"] = "actions.select_split",
["<C-t>"] = "actions.select_tab",
["<C-p>"] = "actions.preview",
["<C-c>"] = "actions.close",
["r"] = "actions.refresh",
["-"] = "actions.parent",
["_"] = "actions.open_cwd",
["`"] = "actions.cd",
["~"] = "actions.tcd",
["g."] = "actions.toggle_hidden",
},
use_default_keymaps = false,
}
},
{
"lewis6991/gitsigns.nvim",
opts = {
current_line_blame = true,
current_line_blame_opts = {
delay = 300,
},
on_attach = require "my.keymaps".gitsigns_keymaps,
}
},
{ "lukas-reineke/lsp-format.nvim", tag = "v2.5.1" },
{ "nvim-tree/nvim-web-devicons", lazy = true },
{
"L3MON4D3/LuaSnip",
version = "v2.*",
-- install jsregexp (optional!).
build = "make install_jsregexp"
},
"hrsh7th/cmp-cmdline",
"neovim/nvim-lspconfig",
"nvim-lualine/lualine.nvim",
"onsails/lspkind.nvim",
}

61
nvim/lua/plugins/cmp.lua Normal file
View file

@ -0,0 +1,61 @@
return {
{
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"onsails/lspkind.nvim",
},
config = function()
local cmp = require "cmp"
local lspkind = require "lspkind"
local luasnip = require "luasnip"
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(4, { "i", "c" })),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-4, { "i", "c" })),
["<C-Space>"] = cmp.mapping(cmp.mapping.complete {}, { "i", "c" }),
["<C-c>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm { select = true },
["<C-l>"] = cmp.mapping(function()
if luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
end
end, { "i", "s" }),
["<C-h>"] = cmp.mapping(function()
if luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
end
end, { "i", "s" })
},
sources = cmp.config.sources({
{ name = "nvim_lsp" },
}, {
{ name = "buffer" },
{ name = "path" },
}),
formatting = {
format = lspkind.cmp_format(),
},
}
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
})
end
},
}

74
nvim/lua/plugins/init.lua Normal file
View file

@ -0,0 +1,74 @@
return {
{
"nvim-telescope/telescope.nvim",
event = "VeryLazy",
branch = "0.1.x",
dependencies = {
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
{ "nvim-telescope/telescope-ui-select.nvim" },
"nvim-lua/plenary.nvim",
},
config = function()
require "my.telescope"
end
},
{
"nvim-treesitter/nvim-treesitter",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
},
{
"windwp/nvim-autopairs",
event = "InsertEnter",
opts = {}
},
{
"stevearc/oil.nvim",
tag = "v2.1.0",
opts = {
keymaps = {
["g?"] = "actions.show_help",
["<CR>"] = "actions.select",
["<C-v>"] = "actions.select_vsplit",
["<C-s>"] = "actions.select_split",
["<C-t>"] = "actions.select_tab",
["<C-p>"] = "actions.preview",
["<C-c>"] = "actions.close",
["r"] = "actions.refresh",
["-"] = "actions.parent",
["_"] = "actions.open_cwd",
["`"] = "actions.cd",
["~"] = "actions.tcd",
["g."] = "actions.toggle_hidden",
},
use_default_keymaps = false,
}
},
{
"lewis6991/gitsigns.nvim",
event = "VeryLazy",
opts = {
current_line_blame = true,
current_line_blame_opts = {
delay = 300,
},
on_attach = require "my.keymaps".gitsigns_keymaps,
}
},
{ "lukas-reineke/lsp-format.nvim", tag = "v2.5.1" },
{ "nvim-tree/nvim-web-devicons", lazy = true },
{
"L3MON4D3/LuaSnip",
version = "v2.*",
-- install jsregexp (optional!).
build = "make install_jsregexp"
},
{
'echasnovski/mini.nvim',
version = '*',
config = function()
require "mini.statusline".setup()
end
},
}

View file

@ -0,0 +1,17 @@
return {
{
"neovim/nvim-lspconfig",
dependencies = {
"folke/neodev.nvim",
},
config = function()
require "my.lsp"
end,
},
{
"j-hui/fidget.nvim",
tag = "v1.4.0",
opts = {},
event = "LspAttach"
},
}

View file

@ -0,0 +1,47 @@
return {
{
"catppuccin/nvim",
lazy = false, -- make sure we load this during startup if it is your main colorscheme
priority = 1000, -- make sure to load this before all the other start plugins
name = "catppuccin",
opts = {
flavour = "latte", -- latte, frappe, macchiato, mocha
transparent_background = false,
dim_inactive = {
enabled = true,
shade = "dark",
percentage = 0.15,
},
integrations = {
cmp = true,
fidget = true,
gitsigns = true,
native_lsp = {
enabled = true,
virtual_text = {
errors = { "italic" },
hints = { "italic" },
warnings = { "italic" },
information = { "italic" },
},
underlines = {
errors = { "underline" },
hints = { "underline" },
warnings = { "underline" },
information = { "underline" },
},
},
telescope = true,
treesitter = true,
mini = {
enabled = true,
indentscope_color = "",
},
},
},
config = function(_, opts)
require("catppuccin").setup(opts)
vim.cmd.colorscheme "catppuccin"
end
},
}