From cd8c24bb2e5fb2762cfb40242bdc4a861a81a9f0 Mon Sep 17 00:00:00 2001 From: Pablu23 Date: Sat, 18 May 2024 15:12:46 +0200 Subject: [PATCH] Nvim config initial --- .gitignore | 1 + init.lua | 16 +++++++++++++ lazy-lock.json | 21 +++++++++++++++++ lua/plugins.lua | 4 ++++ lua/plugins/catppuccin.lua | 9 ++++++++ lua/plugins/completions.lua | 45 +++++++++++++++++++++++++++++++++++++ lua/plugins/lsp-config.lua | 36 +++++++++++++++++++++++++++++ lua/plugins/lualine.lua | 11 +++++++++ lua/plugins/neotree.lua | 12 ++++++++++ lua/plugins/none-ls.lua | 13 +++++++++++ lua/plugins/telescope.lua | 26 +++++++++++++++++++++ lua/plugins/treesitter.lua | 12 ++++++++++ lua/vim-options.lua | 7 ++++++ readme.md | 1 + 14 files changed, 214 insertions(+) create mode 100644 .gitignore create mode 100644 init.lua create mode 100644 lazy-lock.json create mode 100644 lua/plugins.lua create mode 100644 lua/plugins/catppuccin.lua create mode 100644 lua/plugins/completions.lua create mode 100644 lua/plugins/lsp-config.lua create mode 100644 lua/plugins/lualine.lua create mode 100644 lua/plugins/neotree.lua create mode 100644 lua/plugins/none-ls.lua create mode 100644 lua/plugins/telescope.lua create mode 100644 lua/plugins/treesitter.lua create mode 100644 lua/vim-options.lua create mode 100644 readme.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9bbbeea --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.luarc.json diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..9e9cba2 --- /dev/null +++ b/init.lua @@ -0,0 +1,16 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or 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("vim-options") +require("lazy").setup("plugins") + diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..d376a53 --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,21 @@ +{ + "LuaSnip": { "branch": "master", "commit": "de1a287c9cb525ae52bc846e8f6207e5ef1da5ac" }, + "catppuccin": { "branch": "main", "commit": "d97387aea8264f484bb5d5e74f2182a06c83e0d8" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "friendly-snippets": { "branch": "main", "commit": "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2" }, + "lazy.nvim": { "branch": "main", "commit": "758bb5de98b805acc5eeed8cdc8ac7f0bc4b0b86" }, + "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "9ae570e206360e47d30b4c35a4550c165f4ea7b7" }, + "mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "7aad1bf3f6b849cbf108e02c55ad4d701cb4d33a" }, + "none-ls.nvim": { "branch": "main", "commit": "37671797d6e5f9bd0ee3ab965ab2e6de251e1930" }, + "nui.nvim": { "branch": "main", "commit": "a3597dc88b53489d3fddbddbbd13787355253bb0" }, + "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-lspconfig": { "branch": "master", "commit": "a284b14b3a9c4851f900286cd7eb68e3a8f90b1c" }, + "nvim-treesitter": { "branch": "master", "commit": "00a8cfd562dc805eb4d732fbca35e23640dbf7c8" }, + "nvim-web-devicons": { "branch": "master", "commit": "e37bb1feee9e7320c76050a55443fa843b4b6f83" }, + "plenary.nvim": { "branch": "master", "commit": "08e301982b9a057110ede7a735dd1b5285eb341f" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" } +} \ No newline at end of file diff --git a/lua/plugins.lua b/lua/plugins.lua new file mode 100644 index 0000000..12e929f --- /dev/null +++ b/lua/plugins.lua @@ -0,0 +1,4 @@ +return { + + +} diff --git a/lua/plugins/catppuccin.lua b/lua/plugins/catppuccin.lua new file mode 100644 index 0000000..6289807 --- /dev/null +++ b/lua/plugins/catppuccin.lua @@ -0,0 +1,9 @@ +return { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + lazy = false, + config= function() + vim.cmd.colorscheme "catppuccin" + end +} diff --git a/lua/plugins/completions.lua b/lua/plugins/completions.lua new file mode 100644 index 0000000..9154a9a --- /dev/null +++ b/lua/plugins/completions.lua @@ -0,0 +1,45 @@ +return { + { + "hrsh7th/cmp-nvim-lsp" + }, + { + "L3MON4D3/LuaSnip", + dependencies = { + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets", + }, + }, + { + "hrsh7th/nvim-cmp", + config = function() + local cmp = require("cmp") + require("luasnip.loaders.from_vscode").lazy_load() + + cmp.setup({ + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + require("luasnip").lsp_expand(args.body) -- For `luasnip` users. + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, -- For luasnip users. + }, { + { name = "buffer" }, + }), + }) + end, + }, +} diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua new file mode 100644 index 0000000..b32af14 --- /dev/null +++ b/lua/plugins/lsp-config.lua @@ -0,0 +1,36 @@ +return { + { + "williamboman/mason.nvim", + config = function() + require("mason").setup() + end + }, + { + "williamboman/mason-lspconfig.nvim", + config = function() + require("mason-lspconfig").setup({ + ensure_installed = { + "lua_ls", + "gopls" + } + }) + end + }, + { + "neovim/nvim-lspconfig", + config = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({ + capabilities = capabilities + }) + lspconfig.gopls.setup({ + capabilities = capabilities + }) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {}) + vim.keymap.set({'n', 'v'}, 'ca', vim.lsp.buf.code_action, {}) + end + } +} diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua new file mode 100644 index 0000000..6c00bc3 --- /dev/null +++ b/lua/plugins/lualine.lua @@ -0,0 +1,11 @@ +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + require('lualine').setup({ + options = { + theme = 'dracula' + } + }) + end +} diff --git a/lua/plugins/neotree.lua b/lua/plugins/neotree.lua new file mode 100644 index 0000000..09ec8c4 --- /dev/null +++ b/lua/plugins/neotree.lua @@ -0,0 +1,12 @@ +return { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + }, + config = function() + vim.keymap.set('n', '', ':Neotree filesystem reveal right', {}) + end + } diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua new file mode 100644 index 0000000..c45f71f --- /dev/null +++ b/lua/plugins/none-ls.lua @@ -0,0 +1,13 @@ +return { + "nvimtools/none-ls.nvim", + config = function() + local null_ls = require("null-ls") + null_ls.setup({ + sources = { + null_ls.builtins.formatting.stylua, + null_ls.builtins.formatting.gofmt, + }, + }) + vim.keymap.set("n", "gf", vim.lsp.buf.format, {}) + end, +} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua new file mode 100644 index 0000000..28df1b8 --- /dev/null +++ b/lua/plugins/telescope.lua @@ -0,0 +1,26 @@ +return { + { + 'nvim-telescope/telescope.nvim', + tag = '0.1.6', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = function() + local builtin = require("telescope.builtin") + vim.keymap.set('n', '', builtin.find_files, {}) + vim.keymap.set('n', 'fg', builtin.live_grep, {}) + end + }, + { + 'nvim-telescope/telescope-ui-select.nvim', + config = function() + require("telescope").setup({ + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown { + } + } + } + }) + require("telescope").load_extension("ui-select") + end + } +} diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..7c5d8fa --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -0,0 +1,12 @@ +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function() + local config = require("nvim-treesitter.configs") + config.setup({ + ensure_installed = {"lua", "go"}, + highlight = {enable = true}, + indent = {enable = true}, + }) + end +} diff --git a/lua/vim-options.lua b/lua/vim-options.lua new file mode 100644 index 0000000..d0ab771 --- /dev/null +++ b/lua/vim-options.lua @@ -0,0 +1,7 @@ +vim.g.mapleader = " " +vim.cmd("set tabstop=2") +vim.cmd("set softtabstop=2") +vim.cmd("set shiftwidth=2") +vim.cmd("set expandtab") +vim.cmd("set number") +vim.cmd("set clipboard+=unnamedplus") diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e7c1fd4 --- /dev/null +++ b/readme.md @@ -0,0 +1 @@ +Currently this needs doing next: https://www.youtube.com/watch?v=iXIwm4mCpuc