From 218d4c3f0d9ca7417d45c43e715014b139991706 Mon Sep 17 00:00:00 2001 From: Gunwoo Ben Kim Date: Thu, 3 Oct 2024 17:43:54 +1000 Subject: [PATCH] feat(lazyvim): add lazyvim config --- tag-lazyvim/config/nvim/.gitignore | 8 + tag-lazyvim/config/nvim/.neoconf.json | 15 ++ tag-lazyvim/config/nvim/LICENSE | 201 ++++++++++++++++++ tag-lazyvim/config/nvim/README.md | 4 + tag-lazyvim/config/nvim/init.lua | 2 + tag-lazyvim/config/nvim/lazy-lock.json | 65 ++++++ tag-lazyvim/config/nvim/lazyvim.json | 20 ++ .../config/nvim/lua/config/autocmds.lua | 3 + .../config/nvim/lua/config/keymaps.lua | 29 +++ tag-lazyvim/config/nvim/lua/config/lazy.lua | 55 +++++ .../config/nvim/lua/config/options.lua | 3 + tag-lazyvim/config/nvim/lua/config/utils.lua | 46 ++++ .../config/nvim/lua/plugins/catppuccin.lua | 11 + tag-lazyvim/config/nvim/lua/plugins/cmp.lua | 7 + .../config/nvim/lua/plugins/lualine.lua | 15 ++ .../config/nvim/lua/plugins/register.lua | 4 + .../config/nvim/lua/plugins/telescope.lua | 7 + tag-lazyvim/config/nvim/lua/plugins/tmux.lua | 19 ++ .../config/nvim/lua/plugins/treesitter.lua | 17 ++ tag-lazyvim/config/nvim/stylua.toml | 3 + 20 files changed, 534 insertions(+) create mode 100644 tag-lazyvim/config/nvim/.gitignore create mode 100644 tag-lazyvim/config/nvim/.neoconf.json create mode 100644 tag-lazyvim/config/nvim/LICENSE create mode 100644 tag-lazyvim/config/nvim/README.md create mode 100644 tag-lazyvim/config/nvim/init.lua create mode 100644 tag-lazyvim/config/nvim/lazy-lock.json create mode 100644 tag-lazyvim/config/nvim/lazyvim.json create mode 100644 tag-lazyvim/config/nvim/lua/config/autocmds.lua create mode 100644 tag-lazyvim/config/nvim/lua/config/keymaps.lua create mode 100644 tag-lazyvim/config/nvim/lua/config/lazy.lua create mode 100644 tag-lazyvim/config/nvim/lua/config/options.lua create mode 100644 tag-lazyvim/config/nvim/lua/config/utils.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/catppuccin.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/cmp.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/lualine.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/register.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/telescope.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/tmux.lua create mode 100644 tag-lazyvim/config/nvim/lua/plugins/treesitter.lua create mode 100644 tag-lazyvim/config/nvim/stylua.toml diff --git a/tag-lazyvim/config/nvim/.gitignore b/tag-lazyvim/config/nvim/.gitignore new file mode 100644 index 0000000..cc5457a --- /dev/null +++ b/tag-lazyvim/config/nvim/.gitignore @@ -0,0 +1,8 @@ +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/tag-lazyvim/config/nvim/.neoconf.json b/tag-lazyvim/config/nvim/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/tag-lazyvim/config/nvim/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/tag-lazyvim/config/nvim/LICENSE b/tag-lazyvim/config/nvim/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/tag-lazyvim/config/nvim/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/tag-lazyvim/config/nvim/README.md b/tag-lazyvim/config/nvim/README.md new file mode 100644 index 0000000..185280b --- /dev/null +++ b/tag-lazyvim/config/nvim/README.md @@ -0,0 +1,4 @@ +# 💤 LazyVim + +A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). +Refer to the [documentation](https://lazyvim.github.io/installation) to get started. diff --git a/tag-lazyvim/config/nvim/init.lua b/tag-lazyvim/config/nvim/init.lua new file mode 100644 index 0000000..2514f9e --- /dev/null +++ b/tag-lazyvim/config/nvim/init.lua @@ -0,0 +1,2 @@ +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") diff --git a/tag-lazyvim/config/nvim/lazy-lock.json b/tag-lazyvim/config/nvim/lazy-lock.json new file mode 100644 index 0000000..1efa758 --- /dev/null +++ b/tag-lazyvim/config/nvim/lazy-lock.json @@ -0,0 +1,65 @@ +{ + "LazyVim": { "branch": "main", "commit": "d5a4ced75acadb6ae151c0d2960a531c691c88b9" }, + "ReplaceWithRegister": { "branch": "master", "commit": "832efc23111d19591d495dc72286de2fb0b09345" }, + "SchemaStore.nvim": { "branch": "main", "commit": "dd374887d6e1de38e9d7041da824a8dc10cae401" }, + "bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" }, + "catppuccin": { "branch": "main", "commit": "7be452ee067978cdc8b2c5f3411f0c71ffa612b9" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "conform.nvim": { "branch": "master", "commit": "40d4e98fcc3e6f485f0e8924c63734bc7e305967" }, + "copilot-cmp": { "branch": "master", "commit": "b6e5286b3d74b04256d0a7e3bd2908eabec34b44" }, + "copilot.lua": { "branch": "master", "commit": "1a237cf50372830a61d92b0adf00d3b23882e0e1" }, + "dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" }, + "dressing.nvim": { "branch": "master", "commit": "1b7921eecc65af1baf8ac1dc06f0794934cbcfb2" }, + "flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" }, + "friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, + "gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" }, + "grug-far.nvim": { "branch": "main", "commit": "b7c2b28e49d55ff71cd9bb3ad19a2021316510d8" }, + "indent-blankline.nvim": { "branch": "master", "commit": "e7a4442e055ec953311e77791546238d1eaae507" }, + "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, + "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" }, + "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, + "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "mini.ai": { "branch": "main", "commit": "9b9b7cfa38b4871c3e44cfe89cf6d53fd40684d9" }, + "mini.icons": { "branch": "main", "commit": "a2742459f0ee32806c2438ca06b4d8b331f3f4d4" }, + "mini.pairs": { "branch": "main", "commit": "919a89ed3c9f4142215a44c9fffca72fa8c8e792" }, + "neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" }, + "neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" }, + "neotest-golang": { "branch": "main", "commit": "33077c3662866a04af5f03d1dc6042d929fef037" }, + "noice.nvim": { "branch": "main", "commit": "df448c649ef6bc5a6a633a44f2ad0ed8d4442499" }, + "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, + "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, + "nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" }, + "nvim-dap-go": { "branch": "main", "commit": "6aa88167ea1224bcef578e8c7160fe8afbb44848" }, + "nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "52638640ae309cacdaff785fdbb854437bd1ee5c" }, + "nvim-lint": { "branch": "master", "commit": "27f44d1cc3d733a38a736acb902f94879d99c76c" }, + "nvim-lspconfig": { "branch": "master", "commit": "04680101ff79e99b4e33a4386ec27cbd0d360c75" }, + "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, + "nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" }, + "nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" }, + "nvim-treesitter": { "branch": "master", "commit": "45e0d66246f31306d890b91301993fa1623e79f1" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "b91c98afa6c42819aea6cbc1ba38272f5456a5cf" }, + "nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, + "persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" }, + "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, + "render-markdown.nvim": { "branch": "main", "commit": "fe1002fddc61207e4ef4325d4bc0ca33697bbc7a" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, + "telescope-terraform-doc.nvim": { "branch": "main", "commit": "ce2d39a576a68755a623982a7a88bcb3d981b15b" }, + "telescope-terraform.nvim": { "branch": "main", "commit": "072c97023797ca1a874668aaa6ae0b74425335df" }, + "telescope.nvim": { "branch": "master", "commit": "eae0d8fbde590b0eaa2f9481948cd6fd7dd21656" }, + "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, + "tokyonight.nvim": { "branch": "main", "commit": "2c85fad417170d4572ead7bf9fdd706057bd73d7" }, + "trouble.nvim": { "branch": "main", "commit": "254145ffd528b98eb20be894338e2d5c93fa02c2" }, + "ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" }, + "vim-helm": { "branch": "master", "commit": "ae1ebc160d2b9b90108477ab10df7a4fc501e358" }, + "vim-system-copy": { "branch": "master", "commit": "8abd9ed21016bdc21b458c79da3b9ac0ee25c1ce" }, + "vim-tmux-navigator": { "branch": "master", "commit": "a9b52e7d36114d40350099f254b5f299a35df978" }, + "which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" } +} diff --git a/tag-lazyvim/config/nvim/lazyvim.json b/tag-lazyvim/config/nvim/lazyvim.json new file mode 100644 index 0000000..1e463e5 --- /dev/null +++ b/tag-lazyvim/config/nvim/lazyvim.json @@ -0,0 +1,20 @@ +{ + "extras": [ + "lazyvim.plugins.extras.coding.copilot", + "lazyvim.plugins.extras.dap.core", + "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.go", + "lazyvim.plugins.extras.lang.helm", + "lazyvim.plugins.extras.lang.json", + "lazyvim.plugins.extras.lang.markdown", + "lazyvim.plugins.extras.lang.terraform", + "lazyvim.plugins.extras.lang.toml", + "lazyvim.plugins.extras.lang.typescript", + "lazyvim.plugins.extras.lang.yaml", + "lazyvim.plugins.extras.test.core" + ], + "news": { + "NEWS.md": "6520" + }, + "version": 6 +} \ No newline at end of file diff --git a/tag-lazyvim/config/nvim/lua/config/autocmds.lua b/tag-lazyvim/config/nvim/lua/config/autocmds.lua new file mode 100644 index 0000000..27e9e06 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/config/autocmds.lua @@ -0,0 +1,3 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- Add any additional autocmds here diff --git a/tag-lazyvim/config/nvim/lua/config/keymaps.lua b/tag-lazyvim/config/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..71f23b7 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/config/keymaps.lua @@ -0,0 +1,29 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps here +local utils = require("config.utils") +local map = utils.map +local nnoremap = utils.nnoremap +local vnoremap = utils.vnoremap +local onoremap = utils.onoremap +local cnoremap = utils.cnoremap +local inoremap = utils.inoremap + +nnoremap("w", "w!") +nnoremap("wa", "wa") +nnoremap("q", "q!") +map("q:", ":q") + +nnoremap("0", "^") +nnoremap("^", "0") + +nnoremap("", ":noh") +vnoremap("", "gV") +onoremap("", "") +cnoremap("", "") +inoremap("", "") +nnoremap("", ":noh") +vnoremap("", "gV") +onoremap("", "") +cnoremap("", "") +inoremap("", "") diff --git a/tag-lazyvim/config/nvim/lua/config/lazy.lua b/tag-lazyvim/config/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..fbc0560 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/config/lazy.lua @@ -0,0 +1,55 @@ +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) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + { import = "lazyvim.plugins.extras.linting.eslint" }, + { import = "lazyvim.plugins.extras.formatting.prettier" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "tokyonight", "habamax" } }, + checker = { + enabled = true, -- check for plugin updates periodically + notify = false, -- notify on update + }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/tag-lazyvim/config/nvim/lua/config/options.lua b/tag-lazyvim/config/nvim/lua/config/options.lua new file mode 100644 index 0000000..3ea1454 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/config/options.lua @@ -0,0 +1,3 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here diff --git a/tag-lazyvim/config/nvim/lua/config/utils.lua b/tag-lazyvim/config/nvim/lua/config/utils.lua new file mode 100644 index 0000000..7868170 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/config/utils.lua @@ -0,0 +1,46 @@ +local api = vim.api +local M = {} + +local function make_keymap_fn(mode, o) + local parent_opts = vim.deepcopy(o) + return function(combo, mapping, opts) + assert(combo ~= mode, string.format("The combo should not be the same as the mode for %s", combo)) + local _opts = opts and vim.deepcopy(opts) or {} + + if type(mapping) == "function" then + local fn_id = globals._create(mapping) + mapping = string.format("lua globals._execute(%s)", fn_id) + end + + if _opts.bufnr then + local bufnr = _opts.bufnr + _opts.bufnr = nil + _opts = vim.tbl_extend("keep", _opts, parent_opts) + api.nvim_buf_set_keymap(bufnr, mode, combo, mapping, _opts) + else + api.nvim_set_keymap(mode, combo, mapping, vim.tbl_extend("keep", _opts, parent_opts)) + end + end +end + +local map_opts = { noremap = false, silent = true } +M.map = make_keymap_fn("", map_opts) +M.nmap = make_keymap_fn("n", map_opts) +M.xmap = make_keymap_fn("x", map_opts) +M.imap = make_keymap_fn("i", map_opts) +M.vmap = make_keymap_fn("v", map_opts) +M.omap = make_keymap_fn("o", map_opts) +M.tmap = make_keymap_fn("t", map_opts) +M.smap = make_keymap_fn("s", map_opts) +M.cmap = make_keymap_fn("c", map_opts) + +local noremap_opts = { noremap = true, silent = true } +M.nnoremap = make_keymap_fn("n", noremap_opts) +M.xnoremap = make_keymap_fn("x", noremap_opts) +M.vnoremap = make_keymap_fn("v", noremap_opts) +M.inoremap = make_keymap_fn("i", noremap_opts) +M.onoremap = make_keymap_fn("o", noremap_opts) +M.tnoremap = make_keymap_fn("t", noremap_opts) +M.cnoremap = make_keymap_fn("c", noremap_opts) + +return M diff --git a/tag-lazyvim/config/nvim/lua/plugins/catppuccin.lua b/tag-lazyvim/config/nvim/lua/plugins/catppuccin.lua new file mode 100644 index 0000000..8687fb6 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/catppuccin.lua @@ -0,0 +1,11 @@ +return { + { + "catppuccin/nvim", + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin", + }, + }, +} diff --git a/tag-lazyvim/config/nvim/lua/plugins/cmp.lua b/tag-lazyvim/config/nvim/lua/plugins/cmp.lua new file mode 100644 index 0000000..d4e664c --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/cmp.lua @@ -0,0 +1,7 @@ +return { + "hrsh7th/nvim-cmp", + dependencies = { "hrsh7th/cmp-cmdline" }, + opts = function(_, opts) + table.insert(opts.sources, { name = "cmdline" }) + end, +} diff --git a/tag-lazyvim/config/nvim/lua/plugins/lualine.lua b/tag-lazyvim/config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..3968162 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,15 @@ +return { + { + "nvim-lualine/lualine.nvim", + config = function() + require("lualine").setup({ + options = { + theme = "catppuccin", + icons_enabled = false, + component_separators = " ", + section_separators = { left = "", right = "" }, + }, + }) + end, + }, +} diff --git a/tag-lazyvim/config/nvim/lua/plugins/register.lua b/tag-lazyvim/config/nvim/lua/plugins/register.lua new file mode 100644 index 0000000..e5c9d59 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/register.lua @@ -0,0 +1,4 @@ +return { + "christoomey/vim-system-copy", + "vim-scripts/ReplaceWithRegister", +} diff --git a/tag-lazyvim/config/nvim/lua/plugins/telescope.lua b/tag-lazyvim/config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..6029960 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,7 @@ +return { + "nvim-telescope/telescope.nvim", + keys = { + { "", "Telescope find_files", desc = "Find Files" }, + { "B", "Telescope buffers", desc = "Buffers" }, + }, +} diff --git a/tag-lazyvim/config/nvim/lua/plugins/tmux.lua b/tag-lazyvim/config/nvim/lua/plugins/tmux.lua new file mode 100644 index 0000000..0025b90 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/tmux.lua @@ -0,0 +1,19 @@ +return { + { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + "TmuxNavigatePrevious", + }, + keys = { + { "", "TmuxNavigateLeft" }, + { "", "TmuxNavigateDown" }, + { "", "TmuxNavigateUp" }, + { "", "TmuxNavigateRight" }, + { "", "TmuxNavigatePrevious" }, + }, + }, +} diff --git a/tag-lazyvim/config/nvim/lua/plugins/treesitter.lua b/tag-lazyvim/config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..a1d2850 --- /dev/null +++ b/tag-lazyvim/config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,17 @@ +return { + { + "folke/which-key.nvim", + keys = { + { "", mode = "x", false }, + { "", mode = { "x", "n" }, false }, + }, + }, + { + "nvim-treesitter/nvim-treesitter", + opts = { + incremental_selection = { + enable = false, + }, + }, + }, +} diff --git a/tag-lazyvim/config/nvim/stylua.toml b/tag-lazyvim/config/nvim/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/tag-lazyvim/config/nvim/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file