nvim config added

This commit is contained in:
Filip Rojek 2023-02-07 02:00:28 +01:00
parent 910ba5b3c5
commit a3a96c3fc6
11 changed files with 316 additions and 20 deletions

View File

@ -1,2 +0,0 @@
font:
size: 8

2
.config/nvim/.gitignore vendored Normal file
View File

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

View File

@ -1,21 +1,20 @@
local set = vim.opt 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)
set.encoding = "utf-8" vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
require('lazy').setup('plugins')
set.number = true require('config')
set.relativenumber = true require('completion')
set.tabstop = 4
set.shiftwidth = 4
set.expandtab = true
set.swapfile = false
set.ignorecase = true
set.smartcase = true
set.cursorline = true
set.linebreak = true
set.list = true

View File

@ -0,0 +1,128 @@
local cmp_status_ok, cmp = pcall(require, "cmp")
if not cmp_status_ok then
return
end
local snip_status_ok, luasnip = pcall(require, "luasnip")
if not snip_status_ok then
return
end
require("luasnip/loaders/from_vscode").lazy_load()
local check_backspace = function()
local col = vim.fn.col "." - 1
return col == 0 or vim.fn.getline("."):sub(col, col):match "%s"
end
--   פּ ﯟ   some other good icons
local kind_icons = {
Text = "",
Method = "m",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
}
-- find more here: https://www.nerdfonts.com/cheat-sheet
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body) -- For `luasnip` users.
end,
},
mapping = {
["<C-k>"] = cmp.mapping.select_prev_item(),
["<C-j>"] = cmp.mapping.select_next_item(),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
["<C-e>"] = cmp.mapping {
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
},
-- Accept currently selected item. If none selected, `select` first item.
-- Set `select` to `false` to only confirm explicitly selected items.
["<CR>"] = cmp.mapping.confirm { select = true },
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
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",
}),
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
-- Kind icons
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
vim_item.menu = ({
luasnip = "[Snippet]",
buffer = "[Buffer]",
path = "[Path]",
})[entry.source.name]
return vim_item
end,
},
sources = {
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
},
confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
-- documentation = {
-- border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
-- },
-- experimental = {
-- ghost_text = false,
-- native_menu = false,
-- },
}

View File

@ -0,0 +1,32 @@
local set = vim.opt
set.mouse = 'a'
set.encoding = 'utf-8'
set.fileencoding = 'UTF-8'
set.number = true
set.relativenumber = true
set.showcmd = true
vim.o.syntax = true
set.ignorecase = true
set.smartcase = true
set.cursorline = true
-- bold line number at cursor
vim.cmd [[ highlight CursorLineNr cterm=bold ]]
set.linebreak = true
-- special characters
set.list = true
set.listchars = 'tab:→ ,eol:↲,nbsp:␣,trail:•,extends:⟩,precedes:⟨'
set.tabstop = 4
set.shiftwidth = 4
--set.expandtab = true
vim.o.expandtab = false
vim.o.smartindent = true
set.swapfile = false

View File

@ -0,0 +1,17 @@
return {
{
'f-person/git-blame.nvim',
config = function()
vim.g.gitblame_date_format = '%r'
vim.g.gitblame_message_when_not_committed = ''
vim.g.gitblame_display_virtual_text = 0
end
},
{
'lewis6991/gitsigns.nvim',
config = function()
require('gitsigns').setup()
end
},
}

View File

@ -0,0 +1,48 @@
return {
'RRethy/nvim-base16',
'tpope/vim-commentary',
-- completion
'hrsh7th/nvim-cmp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'saadparwaiz1/cmp_luasnip',
-- snippets
'L3MON4D3/LuaSnip',
'rafamadriz/friendly-snippets',
-- emmet
'mattn/emmet-vim',
-- LSP
'neovim/nvim-lspconfig',
-- LSP, DAP, linters and formatters
-- 'jose-elias-alvarez/null-ls.nvim',
{
'dense-analysis/ale',
config = function()
vim.cmd [[ g:ale_sign_column_always = 1 ]]
end
},
-- management for LSP, DAP, linters and formatters
{
'williamboman/mason.nvim',
config = function()
require('mason').setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = ""
}
}
})
end
},
'williamboman/mason-lspconfig.nvim',
}

View File

@ -0,0 +1,16 @@
return {
'nvim-lualine/lualine.nvim',
dependencies = { 'kyazdani42/nvim-web-devicons', lazy = true },
config = function()
local git_blame = require('gitblame')
require('lualine').setup({
sections = {
lualine_c = {
{ git_blame.get_current_blame_text, cond = git_blame.is_blame_text_available }
}
}
})
vim.o.showmode = false
end
}

View File

@ -0,0 +1,19 @@
return {
'nvim-neo-tree/neo-tree.nvim',
cmd = 'Neotree',
branch = 'v2.x',
keys = {
{ '<leader>ft', '<cmd>Neotree toggle<cr>', desc = 'NeoTree' },
},
dependencies = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
},
opts = {
filesystem = {
follow_current_file = true,
hijack_netrw_behavior = 'open_current',
},
},
}

View File

@ -0,0 +1,8 @@
return {
"folke/which-key.nvim",
config = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end
}

View File

@ -0,0 +1,29 @@
return {
'folke/zen-mode.nvim',
config = {
window = {
backdrop = 1,
width = 80,
height = .9,
options = {
signcolumn = "no",
number = false,
relativenumber = false,
cursorline = false,
cursorcolumn = false,
foldcolumn = "0",
list = false,
}
},
opts = {
alacritty = {
enabled = true,
font = "13",
},
},
},
keys = {
{ '<leader>fg', '<cmd>ZenMode<cr>', desc = 'Zen Mode' },
},
}