From 48426854e158d62d99e4ea180c39be8102ff3ecd Mon Sep 17 00:00:00 2001 From: Steven Medeiros Melo <63684299+stevenmelo588@users.noreply.github.com> Date: Fri, 23 Feb 2024 20:12:22 -0500 Subject: [PATCH] Initial Nvim Config Commit --- .gitignore | 11 +++ README.md | 54 +++++++++++++ init.lua | 80 +++++++++++++++++++ lazy-lock.json | 32 ++++++++ lua/plugins/cmp.lua | 91 +++++++++++++++++++++ lua/plugins/harpoon.lua | 6 ++ lua/plugins/indent_blankline.lua | 5 ++ lua/plugins/lsp.lua | 44 +++++++++++ lua/plugins/lualine.lua | 108 +++++++++++++++++++++++++ lua/plugins/nvimtree.lua | 10 +++ lua/plugins/oxocarbon.lua | 12 +++ lua/plugins/telescope.lua | 11 +++ lua/plugins/treesitter.lua | 12 +++ lua/plugins/ui.lua | 20 +++++ lua/plugins/wichkey.lua | 14 ++++ lua/stevenmm/init.lua | 58 ++++++++++++++ lua/stevenmm/lazy/colors.lua | 30 +++++++ lua/stevenmm/lazy/init.lua | 10 +++ lua/stevenmm/lazy/lsp.lua | 101 +++++++++++++++++++++++ lua/stevenmm/lazy/lualine.lua | 132 +++++++++++++++++++++++++++++++ lua/stevenmm/lazy/mininvim.lua | 30 +++++++ lua/stevenmm/lazy/nvimtree.lua | 26 ++++++ lua/stevenmm/lazy/telescope.lua | 11 +++ lua/stevenmm/lazy/treesitter.lua | 12 +++ lua/stevenmm/lazy/wichkey.lua | 14 ++++ lua/stevenmm/lazy_init.lua | 17 ++++ lua/stevenmm/remap.lua | 7 ++ lua/stevenmm/set.lua | 34 ++++++++ style.css | 11 +++ 29 files changed, 1003 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 init.lua create mode 100644 lazy-lock.json create mode 100644 lua/plugins/cmp.lua create mode 100644 lua/plugins/harpoon.lua create mode 100644 lua/plugins/indent_blankline.lua create mode 100644 lua/plugins/lsp.lua create mode 100644 lua/plugins/lualine.lua create mode 100644 lua/plugins/nvimtree.lua create mode 100644 lua/plugins/oxocarbon.lua create mode 100644 lua/plugins/telescope.lua create mode 100644 lua/plugins/treesitter.lua create mode 100644 lua/plugins/ui.lua create mode 100644 lua/plugins/wichkey.lua create mode 100644 lua/stevenmm/init.lua create mode 100644 lua/stevenmm/lazy/colors.lua create mode 100644 lua/stevenmm/lazy/init.lua create mode 100644 lua/stevenmm/lazy/lsp.lua create mode 100644 lua/stevenmm/lazy/lualine.lua create mode 100644 lua/stevenmm/lazy/mininvim.lua create mode 100644 lua/stevenmm/lazy/nvimtree.lua create mode 100644 lua/stevenmm/lazy/telescope.lua create mode 100644 lua/stevenmm/lazy/treesitter.lua create mode 100644 lua/stevenmm/lazy/wichkey.lua create mode 100644 lua/stevenmm/lazy_init.lua create mode 100644 lua/stevenmm/remap.lua create mode 100644 lua/stevenmm/set.lua create mode 100644 style.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5c43bf7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.vscode/** +lua/plugin-mappings/** +lua/init.lua +devicon-master/** +plugged/** +plugin/** +after/plugint/** +syntax/** +TMP/** +init-test.vim +vimplug/** diff --git a/README.md b/README.md new file mode 100644 index 0000000..cb330db --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ + + +# README + +### Documentation on how my neovim install is configured + +- The File Structure of my configuration +- Where my files are located, their purpose and how they're called + +--- + +#### Files Extensions Found In This Repo + +| | | | +| ------------------------------------------------------------------------------- | ------ | -------- | +| ![image alt file_ext](https://api.iconify.design/skill-icons:vim-dark.svg) | `.vim` | Vim | +| ![image alt file_ext](https://api.iconify.design/skill-icons:lua-dark.svg) | `.lua` | Lua | +| ![image alt file_ext](https://api.iconify.design/skill-icons:markdown-dark.svg) | `.md` | Markdown | + +## CURRENT FILE STRUCTURE + +```text +📁 ~/.config/nvim +├── 📁 after +├── 📁 ftplugin +├── 📁 lua +│ ├── 📁 other_modules +│ └── ⚙ init.lua +├── 📁 plugin +│ └── ⚙ init-vim-plug.vim +├── 📁 syntax +├── 📁 TMP +├── 📁 vimplug +├── ⚙ README.md +└── ⚙ init.vim +``` + +## Function Equivalence + +| function | .lua | .vim | Vimscript Functions From Lua | +| :-------------: | :---------: | :------: | :--------------------------: | +| Sourcing a file | `require()` | `source` | `vim.cmd.source()` | + +[Vim Commands](https://neovim.io/doc/user/lua-guide.html#lua-guide-vim-commands) + +> Use **require()** when trying to source a `.lua` file inside a `.lua`, if you want to source `.vim` files use the lua vim interpretor `vim.cmd.source()`. + +[Vimscript Functions](https://neovim.io/doc/user/lua-guide.html#lua-guide-vim-functions) + +> If the `vim` function you're trying to call inside of a `.lua` file isn't a Vim command use the Vimscript Functions nomenclature instead. + +Use the `See also:`section for more information on which commands can be called + +[Function List](https://neovim.io/doc/user/usr_41.html#function-list) diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..1014d07 --- /dev/null +++ b/init.lua @@ -0,0 +1,80 @@ +require("stevenmm") +--vim.cmd.source('$XDG_CONFIG_HOME/nvim/lua/stevenmm/init.lua') + +--require("stevenmm") + +-- vim.wo.number = true +-- vim.wo.relativenumber = true +-- +-- vim.g.mapleader = ' ' +-- vim.g.maplocalleader = ' ' +-- +-- 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) +-- +-- vim.o.hlsearch = false +-- +-- vim.o.mouse = 'a' +-- +-- vim.o.breakindent = true +-- +-- vim.o.ignorecase = true +-- vim.o.smartcase = true +-- +-- vim.wo.signcolumn = 'yes' + +-- vim.o.updatetime = 250 + +-- vim.o.completeopt = 'menuone,noselect' + +-- vim.o.termguicolors = true + +--require('lazy').setup( +---- { +-- "plugins", +---- }, +-- { +-- -- root = vim.fn.stdpath("config") .. "/lazy/plugins", +-- +-- } +--) + +-- vim.cmd.colorscheme('flexoki-dark') + +-- vim.cmd.source('$XDG_CONFIG_HOME/nvim/lua/init.lua') + +-- require('init.lua') +-- vim.cmd.colorscheme 'oxocarbon' + +-- require(vim.fn.expand('$XDG_CONFIG_HOME/nvim/lua/') .. 'init.lua') + +-- require('lazy').setup({ + -- 'nyoom-engineering/oxocarbon.nvim', -- Colorscheme + -- 'nvim-lualine/lualine.nvim', -- Fancier statusline + -- Add indentation guides even on blank lines + -- 'lukas-reineke/indent-blankline.nvim', +-- 'nvim-treesitter/nvim-treesitter', +-- 'nvim-treesitter/nvim-treesitter-textobjects', -- Additional textobjects for treesitter + -- 'williamboman/mason.nvim', + -- 'williamboman/mason-lspconfig.nvim', + -- 'neovim/nvim-lspconfig', + -- { + -- 'hrsh7th/nvim-cmp', + -- dependencies = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' }, + -- }, + -- 'nvim-tree/nvim-web-devicons', + -- 'nvim-tree/nvim-tree.lua', +-- { 'nvim-telescope/telescope.nvim', version = '*', dependencies = { 'nvim-lua/plenary.nvim', } }, +-- 'nvim-telescope/telescope-file-browser.nvim', +-- 'ThePrimeagen/harpoon', +-- }, {}) diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..8507499 --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,32 @@ +{ + "LuaSnip": { "branch": "master", "commit": "f3b3d3446bcbfa62d638b1903ff00a78b2b730a1" }, + "cellular-automaton.nvim": { "branch": "main", "commit": "b7d056dab963b5d3f2c560d92937cb51db61cb5b" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "copilot.vim": { "branch": "release", "commit": "79e1a892ca9b4fa6234fd25f2930dba5201700bd" }, + "editorconfig.nvim": { "branch": "master", "commit": "5b9e303e1d6f7abfe616ce4cc8d3fffc554790bf" }, + "fidget.nvim": { "branch": "main", "commit": "60404ba67044c6ab01894dd5bf77bd64ea5e09aa" }, + "lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" }, + "lualine.nvim": { "branch": "master", "commit": "7d131a8d3ba5016229e8a1d08bf8782acea98852" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "fe4cce44dec93c69be17dad79b21de867dde118a" }, + "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, + "mini.comment": { "branch": "main", "commit": "a4b7e46deb9ad2feb8902cc5dbf087eced112ee5" }, + "mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" }, + "mini.move": { "branch": "main", "commit": "251d541a8ab745e81295a53c128829cb2bff18e3" }, + "mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" }, + "mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" }, + "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, + "nvim-lspconfig": { "branch": "master", "commit": "d1bab4cf4b69e49d6058028fd933d8ef5e74e680" }, + "nvim-tree.lua": { "branch": "master", "commit": "030defdb6522f5f716d8201d20ca1a2baa57ca66" }, + "nvim-treesitter": { "branch": "master", "commit": "917d696592a34917a12208f579d5e72c1a904aee" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "7f00d94543f1fd37cab2afa2e9a6cd54e1c6b9ef" }, + "nvim-web-devicons": { "branch": "master", "commit": "14ac5887110b06b89a96881d534230dac3ed134d" }, + "plenary": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" }, + "rose-pine": { "branch": "main", "commit": "f977eeba34b030b37f93ece2fbd792477606203b" }, + "telescope-file-browser.nvim": { "branch": "master", "commit": "48ffb8de688a22942940f50411d5928631368848" }, + "telescope.nvim": { "branch": "master", "commit": "b744cf59752aaa01561afb4223006de26f3836fd" }, + "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } +} \ No newline at end of file diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua new file mode 100644 index 0000000..daa408b --- /dev/null +++ b/lua/plugins/cmp.lua @@ -0,0 +1,91 @@ +-- print('test') + +local enabled_lsps = { + "pyright", + "tsserver", + "clangd", + "gopls", + "rust_analyzer", + "taplo", + "graphql" +} + +return { +-- "L3MON4D3/LuaSnip", +-- { + "hrsh7th/nvim-cmp", + + event = 'InsertEnter', + + dependencies = { + 'hrsh7th/cmp-nvim-lsp', + 'L3MON4D3/LuaSnip', + 'saadparwaiz1/cmp_luasnip', + }, + + config = function() + local cmp = require'cmp' + local ls = require('luasnip') + + cmp.setup({ + snippets = { + expand = function(args) + ls.lsp_expand(args.body) + end, + }, + sources = { + { name = 'luasnip' }, + }, + }) + end, +-- }, +-- 'saadparwaiz1/cmp_luasnip', + + +-- config = function() +-- +-- end, +-- +-- config = function() +-- local cmp = require('cmp') +-- +-- cmp.setup({ +-- snippet = { +-- expand = function(args) +-- vim.fn["luasnip#anonymous"](args.body) +-- 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.config.disable, +-- [''] = cmp.mapping({ +-- i = cmp.mapping.abort(), +-- c = cmp.mapping.close(), +-- }), +-- [''] = cmp.mapping.confirm({ select = true }), +-- }), +-- sources = cmp.config.sources({ +-- { name = 'nvim_lsp' }, +-- { name = 'luasnip' }, +-- }, { +-- { name = 'buffer' }, +-- }) +-- }) +-- +-- end, +-- +-- build = function() +-- local lspconfig = require('lspconfig') +-- for i, lsp in ipairs(enabled_lsps) do +-- lspconfig[lsp].setup({ +-- capabilities = capabilities +-- }) +-- end +-- end, +} diff --git a/lua/plugins/harpoon.lua b/lua/plugins/harpoon.lua new file mode 100644 index 0000000..e67ebc6 --- /dev/null +++ b/lua/plugins/harpoon.lua @@ -0,0 +1,6 @@ +-- lua/plugins/harpoon.lua +-- print('harpoon.lua loaded') + +return { + "ThePrimeagen/harpoon", +} diff --git a/lua/plugins/indent_blankline.lua b/lua/plugins/indent_blankline.lua new file mode 100644 index 0000000..7b495d9 --- /dev/null +++ b/lua/plugins/indent_blankline.lua @@ -0,0 +1,5 @@ +-- lua/plugins/indent-blankline.lua + +return { + "lukas-reineke/indent-blankline.nvim", +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua new file mode 100644 index 0000000..667f850 --- /dev/null +++ b/lua/plugins/lsp.lua @@ -0,0 +1,44 @@ +-- lua/plugins/lsp.lua +-- print('lsp.lua loaded') + +return { + "neovim/nvim-lspconfig", + lazy = false, + priority = 900, + + dependencies = { + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + }, + + config = function() + local lspconfig = require("lspconfig") + local mason = require("mason") + local masonlsp = require("mason-lspconfig") + + mason.setup() + masonlsp.setup() +-- lspconfig.setup({}) + + lspconfig.pyright.setup({}) + lspconfig.tsserver.setup({}) + lspconfig.clangd.setup({}) + lspconfig.gopls.setup({}) + lspconfig.rust_analyzer.setup({}) + lspconfig.taplo.setup({}) + lspconfig.graphql.setup({}) + lspconfig.lua_ls.setup({ + settings = { + diagnostics = { + global = { + 'vim', + 'require' + }, + }, + }, + }) + lspconfig.vimls.setup({}) +-- lspconfig.rust_analyzer.setup({}) +-- lspconfig.lua_ls.setup({}) + end, +} diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua new file mode 100644 index 0000000..d81ce0b --- /dev/null +++ b/lua/plugins/lualine.lua @@ -0,0 +1,108 @@ +-- lua/plugins/lualine.lua + +return { + "nvim-lualine/lualine.nvim", + + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + + config = function() + local lualine = require('lualine') + lualine.setup({ + options = { + theme = 'auto', + -- fmt = default, + -- fmt = string.upper, + + ignore_focus = { + + }, + + refresh = { + statusline = 100, + tabline = 100, + winbar = 100, + }, + }, + sections = { + lualine_a = { +-- { +-- 'windows' +-- }, + { + 'diff', + colored = true, + diff_color = { + added = 'LuaLineDiffAdd', + modified = 'LuaLineDiffChange', + removed = 'LuaLineDiffDelete', + }, + }, +-- { +-- 'buffers', +-- show_filename_only = true, +-- show_modified_status = false, +-- +-- mode = 4, +-- +-- filetype_names = { +-- NvimTree = 'NvimTree' +-- }, +-- }, + { + 'mode', + fmt = function(str) return '[' .. str:sub(1,1) .. ']' end, + }, + }, + lualine_b = { + { 'branch' } + }, + lualine_c = { + { + 'filename', + file_status = true, + newfile_status = false, + path = 0, + fmt = string.lower, + shorting_target = 40, + + symbols = { + modified = '[+]', + readonly = '[-]', + unamed = '[No Name]', + newfile = '[New]', + }, + } + }, + lualine_x = { + { + require("lazy.status").updates, + cond = require("lazy.status").has_updates, + color = { fg = "#ff9e64" }, + }, + { + 'encoding' + }, + { + 'filetype', + colored = true, + icons_enabled = true, + icon_only = true, + icon = { align='center' } + } + }, + lualine_y = { + { + 'progress', + }, + }, + lualine_z = { + { + 'location', + }, + }, + }, + }) + end, +} diff --git a/lua/plugins/nvimtree.lua b/lua/plugins/nvimtree.lua new file mode 100644 index 0000000..83aaec8 --- /dev/null +++ b/lua/plugins/nvimtree.lua @@ -0,0 +1,10 @@ +-- lua/plugins/nvimtree.lua +-- print('nvimtree.lua loaded') + +return { + "nvim-tree/nvim-tree.lua", + + dependencies = { + "nvim-tree/nvim-web-devicons", + }, +} diff --git a/lua/plugins/oxocarbon.lua b/lua/plugins/oxocarbon.lua new file mode 100644 index 0000000..d428c1b --- /dev/null +++ b/lua/plugins/oxocarbon.lua @@ -0,0 +1,12 @@ +-- lua/plugin/oxocarbon.lua +-- print('oxocarbon.lua loaded') + +return { + "nyoom-engineering/oxocarbon.nvim", + "", + lazy = false, + priority = 1000, + config = function() + vim.cmd.colorscheme('oxocarbon') + end, +} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua new file mode 100644 index 0000000..b238db2 --- /dev/null +++ b/lua/plugins/telescope.lua @@ -0,0 +1,11 @@ +-- lua/plugins/telescope.lua +-- print('telescope.lua loaded') + +return { + "nvim-telescope/telescope-file-browser.nvim", + + dependencies = { + "nvim-telescope/telescope.nvim", + "nvim-lua/plenary.nvim" + }, +} diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..7b2bab3 --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -0,0 +1,12 @@ +-- lua/plugins/treesitter.lua +-- print('treesitter.lua loaded') + +return { + "nvim-treesitter/nvim-treesitter", + + dependencies = { + "nvim-treesitter/nvim-treesitter-textobjects", + }, + + build = ":TSUpdate", +} diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua new file mode 100644 index 0000000..63781f0 --- /dev/null +++ b/lua/plugins/ui.lua @@ -0,0 +1,20 @@ +-- lua/plugin/oxocarbon.lua +-- print('oxocarbon.lua loaded') + +return { + { + "nyoom-engineering/oxocarbon.nvim", + lazy = false, + priority = 1000, + }, + { + 'kepano/flexoki-neovim', + name = 'flexoki', + lazy = false, + priority = 1000, + }, + +-- config = function() +-- vim.cmd.colorscheme('oxocarbon') +-- end, +} diff --git a/lua/plugins/wichkey.lua b/lua/plugins/wichkey.lua new file mode 100644 index 0000000..c7b01ad --- /dev/null +++ b/lua/plugins/wichkey.lua @@ -0,0 +1,14 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + opts = { + + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } +} diff --git a/lua/stevenmm/init.lua b/lua/stevenmm/init.lua new file mode 100644 index 0000000..1bdb75a --- /dev/null +++ b/lua/stevenmm/init.lua @@ -0,0 +1,58 @@ +require("stevenmm.set") +require("stevenmm.remap") + +require("stevenmm.lazy_init") + +local augroup = vim.api.nvim_create_augroup +local StevenmmGroup = augroup('Stevenmm', {}) + +local autocmd = vim.api.nvim_create_autocmd +local yank_group = augroup('HighlightYank', {}) + +function R(name) + require("plenary.reload").reload_module(name) +end + +vim.filetype.add({ + extension = { + templ = 'templ', + } +}) + +autocmd('TextYankPost', { + group = yank_group, + pattern = '*', + callback = function () + vim.highlight.on_yank({ + higroup = 'IncSearch', + timeout = 40, + }) + end, +}) + +autocmd({"BufWritePre"}, { + group = StevenmmGroup, + pattern = "*", + command = [[%s/\s\+$//e]], +}) + +autocmd('LspAttach', { + group = StevenmmGroup, + callback = function (e) + local opts = { buffer = e.buf } + vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) + vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) + vim.keymap.set("n", "vws", function() vim.lsp.buf.workspace_symbol() end, opts) + vim.keymap.set("n", "vd", function() vim.diagnostic.open_float() end, opts) + vim.keymap.set("n", "vca", function() vim.lsp.buf.code_action() end, opts) + vim.keymap.set("n", "vrr", function() vim.lsp.buf.reference() end, opts) + vim.keymap.set("n", "vrn", function() vim.lsp.buf.rename() end, opts) + vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) + vim.keymap.set("n", "[d", function() vim.lsp.buf.goto_next() end, opts) + vim.keymap.set("n", "]d", function() vim.lsp.buf.goto_prev() end, opts) + end +}) + +vim.g.netrw_browse_split = 0 +vim.g.netrw_banner = 0 +vim.g.netrw_winsize = 25 diff --git a/lua/stevenmm/lazy/colors.lua b/lua/stevenmm/lazy/colors.lua new file mode 100644 index 0000000..833905d --- /dev/null +++ b/lua/stevenmm/lazy/colors.lua @@ -0,0 +1,30 @@ +function ColorMyPencils(color) + color = color or "rose-pine" + vim.cmd.colorscheme(color) + + vim.api.nvim_set_hl(0, "Normal", {bg = "none" }) + vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) +end + +return { + { + "rose-pine/neovim", + name = "rose-pine", + config = function() + require("rose-pine").setup({ + variant = "main", + + styles = { + bold = true, + italic = false, + transparency = true, + }, + disable_background = true, + }) + + vim.cmd("colorscheme rose-pine") + + ColorMyPencils() + end + }, +} diff --git a/lua/stevenmm/lazy/init.lua b/lua/stevenmm/lazy/init.lua new file mode 100644 index 0000000..5c535da --- /dev/null +++ b/lua/stevenmm/lazy/init.lua @@ -0,0 +1,10 @@ +return { + { + "nvim-lua/plenary.nvim", + name = "plenary" + }, + + "github/copilot.vim", + "eandrju/cellular-automaton.nvim", + "gpanders/editorconfig.nvim", +} diff --git a/lua/stevenmm/lazy/lsp.lua b/lua/stevenmm/lazy/lsp.lua new file mode 100644 index 0000000..1a04bab --- /dev/null +++ b/lua/stevenmm/lazy/lsp.lua @@ -0,0 +1,101 @@ +return { + "neovim/nvim-lspconfig", + dependencies = { + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "hrsh7th/nvim-cmp", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + "j-hui/fidget.nvim", + }, + + config = function() + local cmp = require('cmp') + local cmp_lsp = require("cmp_nvim_lsp") + local capabilities = vim.tbl_deep_extend( + "force", + {}, + vim.lsp.protocol.make_client_capabilities(), + cmp_lsp.default_capabilities()) + + require("fidget").setup({}) + require("mason").setup() + require("mason-lspconfig").setup({ + ensure_installed = { + "clangd", + "lua_ls", + "rust_analyzer", + "tsserver", + }, + handlers = { + function(server_name) -- default handler (optional) + + require("lspconfig")[server_name].setup { + capabilities = capabilities + } + end, + + ["lua_ls"] = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup { + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { "vim", "it", "describe", "before_each", "after_each" }, + } + } + } + } + end, + + ["clangd"] = function () + local lspconfig = require("lspconfig") + lspconfig.clangd.setup({ + capabilities = capabilities, + }) + end, + } + }) + + local cmp_select = { behavior = cmp.SelectBehavior.Select } + + cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + --[''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.complete(), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, -- For luasnip users. + }, { + { name = 'buffer' }, + }) + }) + + vim.diagnostic.config({ + -- update_in_insert = true, + float = { + focusable = false, + style = "minimal", + border = "rounded", + source = "always", + header = "", + prefix = "", + }, + }) + end +} + diff --git a/lua/stevenmm/lazy/lualine.lua b/lua/stevenmm/lazy/lualine.lua new file mode 100644 index 0000000..0d7c73d --- /dev/null +++ b/lua/stevenmm/lazy/lualine.lua @@ -0,0 +1,132 @@ +-- lua/plugins/lualine.lua +local nvimtree = { + filetypes = { "NvimTree" }, + sections = { + lualine_c = { "buffers" }, + }, +} + + +return { + "nvim-lualine/lualine.nvim", + + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + + config = function() + local lualine = require('lualine') + lualine.setup({ + options = { + theme = 'rose-pine', + globalstatus = false, + -- fmt = default, + -- fmt = string.upper, +-- disabled_filetypes = { +-- "NvimTree" +-- }, + ignore_focus = { + + }, + + refresh = { + statusline = 100, + tabline = 100, + winbar = 100, + }, + }, + sections = { + lualine_a = { +-- { +-- 'windows' +-- }, + { + 'diff', + colored = true, + diff_color = { + added = 'LuaLineDiffAdd', + modified = 'LuaLineDiffChange', + removed = 'LuaLineDiffDelete', + }, + }, +-- { +-- 'buffers', +-- show_filename_only = true, +-- show_modified_status = false, +-- +-- mode = 4, +-- +-- filetype_names = { +-- NvimTree = 'NvimTree' +-- }, +-- }, + { + 'mode', +-- fmt = function(str) return '[' .. str:sub(1,1) .. ']' end, + }, + }, + lualine_b = { + { 'branch' } + }, + lualine_c = { + { + 'filetype', + icons_enabled = true, + icon_only = true, + icon = { align = 'center' }, + separator = "", + }, + { + 'filename', + file_status = true, + newfile_status = false, + path = 0, + fmt = string.lower, + shorting_target = 40, + + symbols = { + modified = '[+]', + readonly = '[-]', + unamed = '[No Name]', + newfile = '[New]', + }, + } + }, + lualine_x = { + { + require("lazy.status").updates, + cond = require("lazy.status").has_updates, + color = { fg = "#ff9e64" }, + }, + { + 'diagnostics', + + }, +-- { +-- 'filetype', +-- colored = true, +-- icons_enabled = true, +-- icon_only = true, +-- icon = { align = 'center' } +-- } + }, + lualine_y = { + { + 'location', + }, + }, + lualine_z = { + { + 'datetime', + icons_enabled = true, + icon = { '' }, + style = '%H:%M', + }, + }, + }, + extensions = { + nvimtree + } + }) + end, +} diff --git a/lua/stevenmm/lazy/mininvim.lua b/lua/stevenmm/lazy/mininvim.lua new file mode 100644 index 0000000..935e585 --- /dev/null +++ b/lua/stevenmm/lazy/mininvim.lua @@ -0,0 +1,30 @@ +return { + { + 'echasnovski/mini.pairs', + version = false, + }, + { + 'echasnovski/mini.move', + version = false, + }, + { + 'echasnovski/mini.surround', + version = false, + }, + { + 'echasnovski/mini.indentscope', + version = false, + }, + { + 'echasnovski/mini.comment', + version = false, + }, + + config = function () + require('mini.pairs').setup() + require('mini.move').setup() + require('mini.surround').setup() + require('mini.indentscope').setup() + require('mini.comment').setup() + end +} diff --git a/lua/stevenmm/lazy/nvimtree.lua b/lua/stevenmm/lazy/nvimtree.lua new file mode 100644 index 0000000..a1d52d5 --- /dev/null +++ b/lua/stevenmm/lazy/nvimtree.lua @@ -0,0 +1,26 @@ +return { + "nvim-tree/nvim-tree.lua", + lazy = false, + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + + config = function() + require("nvim-tree").setup({ + renderer = { + icons = { + web_devicons = { + file = { + enable = true, + color = true, + }, + folder = { + enable = true, + color = true, + }, + }, + }, + }, + }) + end, +} diff --git a/lua/stevenmm/lazy/telescope.lua b/lua/stevenmm/lazy/telescope.lua new file mode 100644 index 0000000..ed7dab9 --- /dev/null +++ b/lua/stevenmm/lazy/telescope.lua @@ -0,0 +1,11 @@ +-- lua/plugins/telescope.lua +-- print('telescope.lua loaded') + +return { + "nvim-telescope/telescope-file-browser.nvim", + + dependencies = { + "nvim-telescope/telescope.nvim", +-- "nvim-lua/plenary.nvim" + }, +} diff --git a/lua/stevenmm/lazy/treesitter.lua b/lua/stevenmm/lazy/treesitter.lua new file mode 100644 index 0000000..7b2bab3 --- /dev/null +++ b/lua/stevenmm/lazy/treesitter.lua @@ -0,0 +1,12 @@ +-- lua/plugins/treesitter.lua +-- print('treesitter.lua loaded') + +return { + "nvim-treesitter/nvim-treesitter", + + dependencies = { + "nvim-treesitter/nvim-treesitter-textobjects", + }, + + build = ":TSUpdate", +} diff --git a/lua/stevenmm/lazy/wichkey.lua b/lua/stevenmm/lazy/wichkey.lua new file mode 100644 index 0000000..c7b01ad --- /dev/null +++ b/lua/stevenmm/lazy/wichkey.lua @@ -0,0 +1,14 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + opts = { + + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } +} diff --git a/lua/stevenmm/lazy_init.lua b/lua/stevenmm/lazy_init.lua new file mode 100644 index 0000000..9d4b60b --- /dev/null +++ b/lua/stevenmm/lazy_init.lua @@ -0,0 +1,17 @@ +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) + +require("lazy").setup({ + spec = "stevenmm.lazy", + change_detection = { notify = false } +}) diff --git a/lua/stevenmm/remap.lua b/lua/stevenmm/remap.lua new file mode 100644 index 0000000..7ab02d4 --- /dev/null +++ b/lua/stevenmm/remap.lua @@ -0,0 +1,7 @@ +vim.g.mapleader = " " + +local keyset = vim.keymap.set + +keyset("n", "ma", ":Mason", { silent = true }) +keyset("n", "na", ":NvimTreeToggle", { silent = true }) +keyset("n", "fb", ":Telescope file_browser path=%:p:h", { noremap = true, silent = true }) diff --git a/lua/stevenmm/set.lua b/lua/stevenmm/set.lua new file mode 100644 index 0000000..6e1c25b --- /dev/null +++ b/lua/stevenmm/set.lua @@ -0,0 +1,34 @@ +-- vim.opt.guicursor = "n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50/,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor/,sm:block-blinkwait175-blinkoff150-blinkon175" + +vim.opt.number = true +vim.opt.relativenumber = true + +vim.opt.encoding = 'UTF-8' +vim.opt.guifont = 'monospace' + +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.shiftwidth = 4 +vim.opt.expandtab = true + +vim.opt.smartindent = true + +vim.opt.wrap = false + +vim.opt.swapfile = false +vim.opt.backup = false +vim.opt.undodir = os.getenv("XDG_CONFIG_HOME") .. "/.vim/undodir" +vim.opt.undofile = true + +vim.opt.hlsearch = false +vim.opt.incsearch = true + +vim.opt.termguicolors = true + +vim.opt.scrolloff = 8 +vim.opt.signcolumn = "yes" +vim.opt.isfname:append("@-@") + +vim.opt.updatetime = 50 + +vim.opt.colorcolumn = "80" diff --git a/style.css b/style.css new file mode 100644 index 0000000..2a48bed --- /dev/null +++ b/style.css @@ -0,0 +1,11 @@ +:root { + --favicon-dimensions-width: 32px; + --favicon-dimensions-height: auto; + --markdown-devicon-color: white; +} + +img[alt$="file_ext"] { + width: var(--favicon-dimensions-width); + height: var(--favicon-dimensions-height); + vertical-align: middle; +}