From a33ed5363547bf3984b7afc095078fe63b1c3f04 Mon Sep 17 00:00:00 2001 From: pauljako Date: Tue, 25 Feb 2025 12:38:50 +0100 Subject: [PATCH] Initial commit --- .stylua.toml | 6 +++ init.lua | 34 ++++++++++++++ init.lua.bak | 37 +++++++++++++++ lazy-lock.json | 18 ++++++++ lua/plugins.lua | 4 ++ lua/plugins/alpha.lua | 6 +++ lua/plugins/completions.lua | 90 +++++++++++++++++++++++++++++++++++++ lua/plugins/iceberg.lua | 6 +++ lua/plugins/lsp.lua | 37 +++++++++++++++ lua/plugins/lualine.lua | 38 ++++++++++++++++ lua/plugins/neotree.lua | 13 ++++++ lua/plugins/nonels.lua | 15 +++++++ lua/plugins/transparent.lua | 9 ++++ lua/plugins/treesitter.lua | 12 +++++ lua/plugins/whichkey.lua | 18 ++++++++ 15 files changed, 343 insertions(+) create mode 100644 .stylua.toml create mode 100644 init.lua create mode 100644 init.lua.bak create mode 100644 lazy-lock.json create mode 100644 lua/plugins.lua create mode 100644 lua/plugins/alpha.lua create mode 100644 lua/plugins/completions.lua create mode 100644 lua/plugins/iceberg.lua create mode 100644 lua/plugins/lsp.lua create mode 100644 lua/plugins/lualine.lua create mode 100644 lua/plugins/neotree.lua create mode 100644 lua/plugins/nonels.lua create mode 100644 lua/plugins/transparent.lua create mode 100644 lua/plugins/treesitter.lua create mode 100644 lua/plugins/whichkey.lua diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..ecb6dca --- /dev/null +++ b/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +call_parentheses = "None" diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..0c6ae90 --- /dev/null +++ b/init.lua @@ -0,0 +1,34 @@ + +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +local opts = { + rocks = { + hererocks = false, -- recommended if you do not have global installation of Lua 5.1. + }, +} + +-- Setup lazy.nvim +require("lazy").setup("plugins", opts) + +vim.cmd('set number') diff --git a/init.lua.bak b/init.lua.bak new file mode 100644 index 0000000..f236d98 --- /dev/null +++ b/init.lua.bak @@ -0,0 +1,37 @@ +local vim = vim +local Plug = vim.fn['plug#'] + +vim.call('plug#begin') + +Plug('cocopon/iceberg.vim') +Plug('williamboman/mason.nvim') +Plug('williamboman/mason-lspconfig.nvim') +Plug('neovim/nvim-lspconfig') +Plug('lewis6991/gitsigns.nvim') +Plug('nvim-tree/nvim-web-devicons') +Plug('nvim-lualine/lualine.nvim') +Plug('akinsho/bufferline.nvim') +Plug('xiyaowong/transparent.nvim') +Plug('folke/lazydev.nvim') + +vim.call('plug#end') + +vim.cmd('silent! colorscheme iceberg') + +require('mason').setup() +require("mason-lspconfig").setup() +vim.lsp.set_log_level("debug") +require'lspconfig'.nil_ls.setup{} +require'lspconfig'.pylyzer.setup{} +require('gitsigns').setup() + +require('lualine').setup() + +vim.opt.termguicolors = true +--require('bufferline').setup() + +require('transparent').setup() + +require('lazydev').setup() + +vim.cmd('set number') diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..67f95f6 --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,18 @@ +{ + "alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, + "iceberg.vim": { "branch": "master", "commit": "23835d5ed696436f716cbfdb56a93a7850fe3b18" }, + "lazy.nvim": { "branch": "main", "commit": "e5e9bf48211a13d9ee6c1077c88327c49c1ab4a0" }, + "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, + "neo-tree.nvim": { "branch": "main", "commit": "94c8ec36da52af0ea0128012e12abe05c26ef840" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "6557f20e631d2e9b2a9fd27a5c045d701a3a292c" }, + "none-ls.nvim": { "branch": "main", "commit": "f41624ea1a73f020ddbd33438f74abb95ea17d55" }, + "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, + "nvim-lspconfig": { "branch": "master", "commit": "6b63bdf2399b9bedf93297d98419550523a9ad68" }, + "nvim-treesitter": { "branch": "master", "commit": "5774e7d3da4f681296a87fcd85d17779ad362a4f" }, + "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "transparent.nvim": { "branch": "main", "commit": "8a2749a2fa74f97fe6557f61b89ac7fd873f3c21" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +} diff --git a/lua/plugins.lua b/lua/plugins.lua new file mode 100644 index 0000000..63426fe --- /dev/null +++ b/lua/plugins.lua @@ -0,0 +1,4 @@ +return { + -- add your plugins here + +} diff --git a/lua/plugins/alpha.lua b/lua/plugins/alpha.lua new file mode 100644 index 0000000..c3c47de --- /dev/null +++ b/lua/plugins/alpha.lua @@ -0,0 +1,6 @@ +return { + 'goolord/alpha-nvim', + config = function() + require('alpha').setup(require'alpha.themes.dashboard'.config) + end +} diff --git a/lua/plugins/completions.lua b/lua/plugins/completions.lua new file mode 100644 index 0000000..de38cbf --- /dev/null +++ b/lua/plugins/completions.lua @@ -0,0 +1,90 @@ +return { + { + "L3MON4D3/LuaSnip", + dependencies = { + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets", + }, + }, + { "hrsh7th/cmp-nvim-lsp" }, + { + "hrsh7th/nvim-cmp", + config = function() + local cmp = require "cmp" + + cmp.setup { + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + -- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + require("luasnip").lsp_expand(args.body) -- For `luasnip` users. + -- require('snippy').expand_snippet(args.body) -- For `snippy` users. + -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + -- vim.snippet.expand(args.body) -- For native neovim snippets (Neovim v0.10+) + + -- For `mini.snippets` users: + -- local insert = MiniSnippets.config.expand.insert or MiniSnippets.default_insert + -- insert({ body = args.body }) -- Insert at cursor + -- cmp.resubscribe({ "TextChangedI", "TextChangedP" }) + -- require("cmp.config").set_onetime({ sources = {} }) + 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 = "vsnip" }, -- For vsnip users. + { name = "luasnip" }, -- For luasnip users. + -- { name = 'ultisnips' }, -- For ultisnips users. + -- { name = 'snippy' }, -- For snippy users. + }, { + { name = "buffer" }, + }), + } + + -- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below + -- Set configuration for specific filetype. + --[[ cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'git' }, + }, { + { name = 'buffer' }, + }) + }) + require("cmp_git").setup() ]] + -- + + -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline({ "/", "?" }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = "buffer" }, + }, + }) + + -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline(":", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "path" }, + }, { + { name = "cmdline" }, + }), + matching = { disallow_symbol_nonprefix_matching = false }, + }) + + + require("luasnip.loaders.from_vscode").lazy_load() + + end, + }, +} diff --git a/lua/plugins/iceberg.lua b/lua/plugins/iceberg.lua new file mode 100644 index 0000000..b93087f --- /dev/null +++ b/lua/plugins/iceberg.lua @@ -0,0 +1,6 @@ +return { + 'cocopon/iceberg.vim', + config = function() + vim.cmd('colorscheme iceberg') + end +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua new file mode 100644 index 0000000..40ac307 --- /dev/null +++ b/lua/plugins/lsp.lua @@ -0,0 +1,37 @@ +return { + { + "williamboman/mason.nvim", + config = function() + require('mason').setup() + end + }, + { + "williamboman/mason-lspconfig.nvim", + config = function() + require('mason-lspconfig').setup { + ensure_installed = { "nil_ls", "pyright" }, + } + end + }, + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require('lspconfig') + +local capabilities = require('cmp_nvim_lsp').default_capabilities() + lspconfig.pyright.setup({ + capabilities = capabilities + }) + lspconfig.nil_ls.setup({ + capabilities = capabilities + }) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { + desc = 'Go to definition' + }) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, { + desc = 'Show Code Actions' + }) + end + } +} diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua new file mode 100644 index 0000000..142b9f4 --- /dev/null +++ b/lua/plugins/lualine.lua @@ -0,0 +1,38 @@ +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + local iceberg = require('lualine.themes.iceberg_dark') + iceberg.normal.c.bg = nil + iceberg.inactive.c.bg = nil + require('lualine').setup { + options = { + theme = iceberg, + component_separators = '', + section_separators = { left = '', right = '' }, + }, + sections = { + lualine_a = { { 'mode', separator = { left = '' }, right_padding = 2 } }, + lualine_b = { 'filename', 'branch' }, + lualine_c = { + '%=', --[[ add your center compoentnts here in place of this comment ]] + }, + lualine_x = {}, + lualine_y = { 'filetype', 'progress' }, + lualine_z = { + { 'location', separator = { right = '' }, left_padding = 2 }, + }, + }, + inactive_sections = { + lualine_a = { 'filename' }, + lualine_b = {}, + lualine_c = {}, + lualine_x = {}, + lualine_y = {}, + lualine_z = { 'location' }, + }, + tabline = {}, + extensions = {}, + } + end +} diff --git a/lua/plugins/neotree.lua b/lua/plugins/neotree.lua new file mode 100644 index 0000000..6a9010f --- /dev/null +++ b/lua/plugins/neotree.lua @@ -0,0 +1,13 @@ +return { + "nvim-neo-tree/neo-tree.nvim", + --branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended + "MunifTanjim/nui.nvim", + --{"3rd/image.nvim", opts = {}}, -- Optional image support in preview window: See `# Preview Mode` for more information + }, + config = function() + vim.keymap.set('n', '', ':Neotree filesystem reveal left', {}) + end + } diff --git a/lua/plugins/nonels.lua b/lua/plugins/nonels.lua new file mode 100644 index 0000000..98d6201 --- /dev/null +++ b/lua/plugins/nonels.lua @@ -0,0 +1,15 @@ +return { + "nvimtools/none-ls.nvim", + dependencies = { "nvim-lua/plenary.nvim", "nvimtools/none-ls-extras.nvim" }, + config = function() + local null_ls = require "null-ls" + null_ls.setup { + sources = { + null_ls.builtins.formatting.stylua, + null_ls.builtins.formatting.alejandra, + null_ls.builtins.diagnostics.pylint, + }, + } + vim.keymap.set("n", "", vim.lsp.buf.format, {}) + end, +} diff --git a/lua/plugins/transparent.lua b/lua/plugins/transparent.lua new file mode 100644 index 0000000..5b2408a --- /dev/null +++ b/lua/plugins/transparent.lua @@ -0,0 +1,9 @@ +return { + 'xiyaowong/transparent.nvim', + config = function() + vim.keymap.set('n', 't', ':TransparentToggle', { + desc = "Toggle Transparency", + }) + vim.opt.termguicolors = true + end +} diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..bcda05b --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -0,0 +1,12 @@ +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function() + require("nvim-treesitter.configs").setup{ + auto_install = true, + sync_install = false, + highlight = { enable = true }, + indent = { enable = true } + } + end +} diff --git a/lua/plugins/whichkey.lua b/lua/plugins/whichkey.lua new file mode 100644 index 0000000..acb6ee6 --- /dev/null +++ b/lua/plugins/whichkey.lua @@ -0,0 +1,18 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Local Keymaps (which-key)", + }, + }, +}