init.lua
my configunknown
lua
2 years ago
6.1 kB
7
Indexable
------------------------
-- Require statements --
------------------------
require("core.options") --> options from lua/core/options.lua
require("core.keymaps") --> keymaps from lua/core/keymaps.lua
---------------------
-- Installing Lazy --
---------------------
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)
-------------
-- Plugins --
-------------
require("lazy").setup({
-- Catppuccin colorscheme
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function()
vim.cmd.colorscheme 'catppuccin'
end,
},
-- Lualine as a status line
{
'nvim-lualine/lualine.nvim',
dependencies = {
'nvim-tree/nvim-web-devicons',
},
-- cheakout :help lualine.txt for info
opts = {
options = {
disabled_filetypes = { 'NvimTree' },
icons_enabled = true,
theme = 'catppuccin',
section_separators = { left = '', right = '' },
component_separators = { left = '', right = ''},
},
sections = {
lualine_a = {
{ icon = '', 'mode', separator = { left = '' , right = ''}, right_padding = 2 },
},
lualine_b = {
{ 'filetype', icon_only = true },
{ 'filename' , color = { fg = '#bcc0cc' } },
'branch'
},
lualine_c = { 'fileformat' },
lualine_x = {},
lualine_y = { { 'filetype' , color = { fg = '#bcc0cc' } }, 'progress' },
lualine_z = {
{ 'location', separator = { right = '' }, left_padding = 2 },
},
},
},
},
-- Indent blankline
{ "lukas-reineke/indent-blankline.nvim", main = "ibl", opts = {} },
-- Telescope fuzzy finder
{
'nvim-telescope/telescope.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
},
config = function()
local telescope = require("telescope")
local actions = require("telescope.actions")
telescope.setup({
defaults = {
mappings = {
i = {
['<C-j>'] = actions.move_selection_next,
['<C-k>'] = actions.move_selection_previous,
},
},
},
})
end,
},
-- Nvim filetree
{
'nvim-tree/nvim-tree.lua',
config = function()
-- disable netrw
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- setup function
require("nvim-tree").setup()
end,
},
-- Toggle terminal
{
'akinsho/toggleterm.nvim',
config = function()
require("toggleterm").setup({
open_mapping = [[<c-t>]],
direction = 'float',
float_opts = {
border = 'curved',
winblend = 0,
highlights = {
border = 'Normal',
background = 'Normal',
},
},
})
end,
},
-- Vim navigator
{
'christoomey/vim-tmux-navigator',
},
-- Buffer line
{
'akinsho/bufferline.nvim',
version = "*",
dependencies = 'nvim-tree/nvim-web-devicons',
config = function()
require("bufferline").setup({
options = {
indicator = { style = "icon", icon = ""},
buffer_close_icon = '',
modified_icon = "●",
close_icon = "",
left_trunc_marker = "",
right_trunc_marker = "",
offsets = { { filetype = "NvimTree", text = " File Explorer", text_align = "left" } },
max_name_length = 30,
max_prefix_length = 30, -- prefix used when a buffer is de-duplicated
tab_size = 20,
}
})
end,
},
-- cmp plugins
{
"hrsh7th/nvim-cmp",
config = function ()
require("cmp").setup({
sources = {
name = 'buffer',
option = {
keyword_pattern = [[\k\+]],
},
},
})
end,
}, -- The completion plugin
{ "hrsh7th/cmp-buffer" }, -- buffer completions
{ "hrsh7th/cmp-path" }, -- path completions
{ "hrsh7th/cmp-cmdline" }, -- cmdline completions
{ 'hrsh7th/cmp-nvim-lsp' },
-- snippets
{ "L3MON4D3/LuaSnip" }, --snippet engine
{ "rafamadriz/friendly-snippets" }, -- a bunch of snippets to use
{ "saadparwaiz1/cmp_luasnip" }, -- snippet completions
-- lsp config
{ 'neovim/nvim-lspconfig' },
{
'williamboman/mason.nvim' ,
config = function()
require("mason").setup({
ui = {
icons = {
package_pending = " ",
package_installed = " ",
package_uninstalled = " ",
},
},
})
end,
},
{
'williamboman/mason-lspconfig.nvim' ,
config = function()
require("mason-lspconfig").setup({
ensure_installed = {
"html",
"cssls",
"tsserver",
}
})
end,
},
})
-- [[ Configure nvim-cmp ]]
local cmp = require 'cmp'
local luasnip = require 'luasnip'
require('luasnip.loaders.from_vscode').lazy_load()
luasnip.config.setup {}
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
completion = {
completeopt = 'menu,menuone,noinsert'
},
mapping = cmp.mapping.preset.insert {
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete {},
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_locally_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.locally_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
},
}Editor is loading...
Leave a Comment