LazyVIM and some updated configurations
This commit is contained in:
		
							parent
							
								
									451c1ed56d
								
							
						
					
					
						commit
						7d50f578b1
					
				
					 46 changed files with 1269 additions and 969 deletions
				
			
		
							
								
								
									
										15
									
								
								nvim/.neoconf.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								nvim/.neoconf.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | |||
| { | ||||
|   "neodev": { | ||||
|     "library": { | ||||
|       "enabled": true, | ||||
|       "plugins": true | ||||
|     } | ||||
|   }, | ||||
|   "neoconf": { | ||||
|     "plugins": { | ||||
|       "lua_ls": { | ||||
|         "enabled": true | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										201
									
								
								nvim/LICENSE
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										201
									
								
								nvim/LICENSE
									
										
									
									
									
										Normal file
									
								
							|  | @ -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. | ||||
							
								
								
									
										4
									
								
								nvim/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								nvim/README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -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. | ||||
|  | @ -1,16 +1,2 @@ | |||
| require("blakeridgway.plugins-setup") | ||||
| require("blakeridgway.core.options") | ||||
| require("blakeridgway.core.keymaps") | ||||
| require("blakeridgway.core.colorscheme") | ||||
| require("blakeridgway.plugins.comment") | ||||
| require("blakeridgway.plugins.nvim-tree") | ||||
| require("blakeridgway.plugins.lualine") | ||||
| require("blakeridgway.plugins.telescope") | ||||
| require("blakeridgway.plugins.nvim-cmp") | ||||
| require("blakeridgway.plugins.lsp.mason") | ||||
| require("blakeridgway.plugins.lsp.lspconfig") | ||||
| require("blakeridgway.plugins.lsp.null-ls") | ||||
| require("blakeridgway.plugins.autopairs") | ||||
| require("blakeridgway.plugins.treesitter") | ||||
| require("blakeridgway.plugins.gitsigns") | ||||
| require("blakeridgway.plugins.discord") | ||||
| -- bootstrap lazy.nvim, LazyVim and your plugins | ||||
| require("config.lazy") | ||||
|  |  | |||
							
								
								
									
										65
									
								
								nvim/lazy-lock.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								nvim/lazy-lock.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | |||
| { | ||||
|   "LazyVim": { "branch": "main", "commit": "879e29504d43e9f178d967ecc34d482f902e5a91" }, | ||||
|   "LuaSnip": { "branch": "master", "commit": "6a001360cea89df50f7c5cc8c7a75e6a21f1ef5c" }, | ||||
|   "SchemaStore.nvim": { "branch": "main", "commit": "de7a5763edab2075e1925869af827ca38109ebfa" }, | ||||
|   "bufferline.nvim": { "branch": "main", "commit": "e48ce1805697e4bb97bc171c081e849a65859244" }, | ||||
|   "catppuccin": { "branch": "main", "commit": "079500a625f3ae5aa6efb758f1a17fe4c7a57e52" }, | ||||
|   "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, | ||||
|   "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, | ||||
|   "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, | ||||
|   "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, | ||||
|   "conform.nvim": { "branch": "master", "commit": "8b407bb6175846cdc4c499e2a8d28109615a2089" }, | ||||
|   "copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" }, | ||||
|   "copilot.lua": { "branch": "master", "commit": "dcaaed5b58e6c2d395bca18d25d34e6384856722" }, | ||||
|   "dashboard-nvim": { "branch": "master", "commit": "63df28409d940f9cac0a925df09d3dc369db9841" }, | ||||
|   "dressing.nvim": { "branch": "master", "commit": "8b7ae53d7f04f33be3439a441db8071c96092d19" }, | ||||
|   "friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" }, | ||||
|   "gitsigns.nvim": { "branch": "main", "commit": "d195f0c35ced5174d3ecce1c4c8ebb3b5bc23fa9" }, | ||||
|   "inc-rename.nvim": { "branch": "main", "commit": "a48c7cec5c4f00d7438dce5fadb55f4d715ef9f2" }, | ||||
|   "incline.nvim": { "branch": "main", "commit": "fdd7e08a6e3d0dd8d9aa02428861fa30c37ba306" }, | ||||
|   "indent-blankline.nvim": { "branch": "master", "commit": "d4c718467d35bc93714425a7102d82e7e5065280" }, | ||||
|   "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, | ||||
|   "lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" }, | ||||
|   "mason-lspconfig.nvim": { "branch": "main", "commit": "9453e3d6cd2ca45d96e20f343e8f1b927364b630" }, | ||||
|   "mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" }, | ||||
|   "mini.ai": { "branch": "main", "commit": "c28f7d7348f27425a180b1b7dcaa77651f8b71ee" }, | ||||
|   "mini.animate": { "branch": "main", "commit": "507c43c4402c7d7a2101bc72bece6e2202152afa" }, | ||||
|   "mini.bufremove": { "branch": "main", "commit": "f53c7f27e36009fe61563c11cde154b94a0e5b94" }, | ||||
|   "mini.comment": { "branch": "main", "commit": "3d9c8009615857e982f09bc5357fc95f2a2175f3" }, | ||||
|   "mini.hipatterns": { "branch": "main", "commit": "af0306665ee2d5c5fbf8e07e82237fc01ec3baa3" }, | ||||
|   "mini.indentscope": { "branch": "main", "commit": "dc26fa1a6c8976f42930c9f53da88d3d441bb13f" }, | ||||
|   "mini.pairs": { "branch": "main", "commit": "71f117fd57f930da6ef4126b24f594dd398bac26" }, | ||||
|   "mini.surround": { "branch": "main", "commit": "af8129efcabe95fc08a233e9f91569829bed031f" }, | ||||
|   "neo-tree.nvim": { "branch": "v3.x", "commit": "230ff118613fa07138ba579b89d13ec2201530b9" }, | ||||
|   "neoconf.nvim": { "branch": "main", "commit": "64437787dba70fce50dad7bfbb97d184c5bc340f" }, | ||||
|   "neodev.nvim": { "branch": "main", "commit": "40b608b31f3da728e298051c4bf579d8e8a84294" }, | ||||
|   "noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" }, | ||||
|   "nui.nvim": { "branch": "main", "commit": "c9b4de623d19a85b353ff70d2ae9c77143abe69c" }, | ||||
|   "nvim-cmp": { "branch": "main", "commit": "538e37ba87284942c1d76ed38dd497e54e65b891" }, | ||||
|   "nvim-lint": { "branch": "master", "commit": "5b42e12f397e9fd2629e6f0ce1c780a12b9e6597" }, | ||||
|   "nvim-lspconfig": { "branch": "master", "commit": "84f2dd42efffa20d505ac44c78568d778ca7e0a1" }, | ||||
|   "nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" }, | ||||
|   "nvim-spectre": { "branch": "master", "commit": "a18a58015b46f02b4fe537ebfffd82e46110ff24" }, | ||||
|   "nvim-treesitter": { "branch": "master", "commit": "000f71842bf08840df1e70004b17507fa92b2fb7" }, | ||||
|   "nvim-treesitter-context": { "branch": "master", "commit": "cfa8ee19ac9bae9b7fb2958eabe2b45b70c56ccb" }, | ||||
|   "nvim-treesitter-textobjects": { "branch": "master", "commit": "ec1c5bdb3d87ac971749fa6c7dbc2b14884f1f6a" }, | ||||
|   "nvim-ts-autotag": { "branch": "main", "commit": "8515e48a277a2f4947d91004d9aa92c29fdc5e18" }, | ||||
|   "nvim-ts-context-commentstring": { "branch": "main", "commit": "1277b4a1f451b0f18c0790e1a7f12e1e5fdebfee" }, | ||||
|   "nvim-web-devicons": { "branch": "master", "commit": "a1425903ab52a0a0460622519e827f224e5b4fee" }, | ||||
|   "persistence.nvim": { "branch": "main", "commit": "ad538bfd5336f1335cdb6fd4e0b0eebfa6e12f32" }, | ||||
|   "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, | ||||
|   "refactoring.nvim": { "branch": "master", "commit": "156532476deb10b1b2a32cb38e1078b3f9951c42" }, | ||||
|   "solarized-osaka.nvim": { "branch": "main", "commit": "83b7026ac7a4e185d4ecbe99926fd94b5735e2ea" }, | ||||
|   "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" }, | ||||
|   "telescope-file-browser.nvim": { "branch": "master", "commit": "8e0543365fe5781c9babea7db89ef06bcff3716d" }, | ||||
|   "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, | ||||
|   "telescope.nvim": { "branch": "master", "commit": "6213322ab56eb27356fdc09a5078e41e3ea7f3bc" }, | ||||
|   "todo-comments.nvim": { "branch": "main", "commit": "4a6737a8d70fe1ac55c64dfa47fcb189ca431872" }, | ||||
|   "tokyonight.nvim": { "branch": "main", "commit": "f247ee700b569ed43f39320413a13ba9b0aef0db" }, | ||||
|   "trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" }, | ||||
|   "twilight.nvim": { "branch": "main", "commit": "8b7b50c0cb2dc781b2f4262a5ddd57571556d1e4" }, | ||||
|   "vim-illuminate": { "branch": "master", "commit": "3bd2ab64b5d63b29e05691e624927e5ebbf0fb86" }, | ||||
|   "vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" }, | ||||
|   "vscode.nvim": { "branch": "main", "commit": "cd081089f4a2ceddade73d0415e1809ded510191" }, | ||||
|   "zen-mode.nvim": { "branch": "main", "commit": "50e2e2a36cc97847d9ab3b1a3555ba2ef6839b50" } | ||||
| } | ||||
							
								
								
									
										10
									
								
								nvim/lazyvim.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								nvim/lazyvim.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| { | ||||
|   "extras": [ | ||||
| 
 | ||||
|   ], | ||||
|   "news": { | ||||
|     "NEWS.md": "2123", | ||||
|     "doc/news.txt": "17421" | ||||
|   }, | ||||
|   "version": 2 | ||||
| } | ||||
|  | @ -1,7 +0,0 @@ | |||
| -- set colorscheme to nightfly with protected call | ||||
| -- in case it isn't installed | ||||
| local status, _ = pcall(vim.cmd, "colorscheme nightfly") | ||||
| if not status then | ||||
|   print("Colorscheme not found!") -- print error if colorscheme not installed | ||||
|   return | ||||
| end | ||||
|  | @ -1,55 +0,0 @@ | |||
| -- set leader key to space | ||||
| vim.g.mapleader = " " | ||||
| 
 | ||||
| local keymap = vim.keymap -- for conciseness | ||||
| 
 | ||||
| --------------------- | ||||
| -- General Keymaps | ||||
| --------------------- | ||||
| 
 | ||||
| -- use jk to exit insert mode | ||||
| keymap.set("i", "jk", "<ESC>") | ||||
| 
 | ||||
| -- clear search highlights | ||||
| keymap.set("n", "<leader>nh", ":nohl<CR>") | ||||
| 
 | ||||
| -- delete single character without copying into register | ||||
| keymap.set("n", "x", '"_x') | ||||
| 
 | ||||
| -- increment/decrement numbers | ||||
| keymap.set("n", "<leader>+", "<C-a>") -- increment | ||||
| keymap.set("n", "<leader>-", "<C-x>") -- decrement | ||||
| 
 | ||||
| -- window management | ||||
| keymap.set("n", "<leader>sv", "<C-w>v") -- split window vertically | ||||
| keymap.set("n", "<leader>sh", "<C-w>s") -- split window horizontally | ||||
| keymap.set("n", "<leader>se", "<C-w>=") -- make split windows equal width & height | ||||
| keymap.set("n", "<leader>sx", ":close<CR>") -- close current split window | ||||
| 
 | ||||
| keymap.set("n", "<leader>to", ":tabnew<CR>") -- open new tab | ||||
| keymap.set("n", "<leader>tx", ":tabclose<CR>") -- close current tab | ||||
| keymap.set("n", "<leader>tn", ":tabn<CR>") --  go to next tab | ||||
| keymap.set("n", "<leader>tp", ":tabp<CR>") --  go to previous tab | ||||
| 
 | ||||
| ---------------------- | ||||
| -- Plugin Keybinds | ||||
| ---------------------- | ||||
| 
 | ||||
| -- vim-maximizer | ||||
| keymap.set("n", "<leader>sm", ":MaximizerToggle<CR>") -- toggle split window maximization | ||||
| 
 | ||||
| -- nvim-tree | ||||
| keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>") -- toggle file explorer | ||||
| 
 | ||||
| -- telescope | ||||
| keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>") -- find files within current working directory, respects .gitignore | ||||
| keymap.set("n", "<leader>fs", "<cmd>Telescope live_grep<cr>") -- find string in current working directory as you type | ||||
| keymap.set("n", "<leader>fc", "<cmd>Telescope grep_string<cr>") -- find string under cursor in current working directory | ||||
| keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>") -- list open buffers in current neovim instance | ||||
| keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>") -- list available help tags | ||||
| 
 | ||||
| -- telescope git commands | ||||
| keymap.set("n", "<leader>gc", "<cmd>Telescope git_commits<cr>") -- list all git commits (use <cr> to checkout) ["gc" for git commits] | ||||
| keymap.set("n", "<leader>gfc", "<cmd>Telescope git_bcommits<cr>") -- list git commits for current file/buffer (use <cr> to checkout) ["gfc" for git file commits] | ||||
| keymap.set("n", "<leader>gb", "<cmd>Telescope git_branches<cr>") -- list git branches (use <cr> to checkout) ["gb" for git branch] | ||||
| keymap.set("n", "<leader>gs", "<cmd>Telescope git_status<cr>") -- list current changes per file with diff preview ["gs" for git status] | ||||
|  | @ -1,41 +0,0 @@ | |||
| local opt = vim.opt -- for conciseness | ||||
| 
 | ||||
| -- line numbers | ||||
| opt.relativenumber = true -- show relative line numbers | ||||
| opt.number = true -- shows absolute line number on cursor line (when relative number is on) | ||||
| 
 | ||||
| -- tabs & indentation | ||||
| opt.tabstop = 2 -- 2 spaces for tabs (prettier default) | ||||
| opt.shiftwidth = 2 -- 2 spaces for indent width | ||||
| opt.expandtab = true -- expand tab to spaces | ||||
| opt.autoindent = true -- copy indent from current line when starting new one | ||||
| 
 | ||||
| -- line wrapping | ||||
| opt.wrap = false -- disable line wrapping | ||||
| 
 | ||||
| -- search settings | ||||
| opt.ignorecase = true -- ignore case when searching | ||||
| opt.smartcase = true -- if you include mixed case in your search, assumes you want case-sensitive | ||||
| 
 | ||||
| -- cursor line | ||||
| opt.cursorline = true -- highlight the current cursor line | ||||
| 
 | ||||
| -- appearance | ||||
| 
 | ||||
| -- turn on termguicolors for nightfly colorscheme to work | ||||
| -- (have to use iterm2 or any other true color terminal) | ||||
| opt.termguicolors = true | ||||
| opt.background = "dark" -- colorschemes that can be light or dark will be made dark | ||||
| opt.signcolumn = "yes" -- show sign column so that text doesn't shift | ||||
| 
 | ||||
| -- backspace | ||||
| opt.backspace = "indent,eol,start" -- allow backspace on indent, end of line or insert mode start position | ||||
| 
 | ||||
| -- clipboard | ||||
| opt.clipboard:append("unnamedplus") -- use system clipboard as default register | ||||
| 
 | ||||
| -- split windows | ||||
| opt.splitright = true -- split vertical window to the right | ||||
| opt.splitbelow = true -- split horizontal window to the bottom | ||||
| 
 | ||||
| opt.iskeyword:append("-") -- consider string-string as whole word | ||||
|  | @ -1,109 +0,0 @@ | |||
| -- auto install packer if not installed | ||||
| local ensure_packer = function() | ||||
| 	local fn = vim.fn | ||||
| 	local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" | ||||
| 	if fn.empty(fn.glob(install_path)) > 0 then | ||||
| 		fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path }) | ||||
| 		vim.cmd([[packadd packer.nvim]]) | ||||
| 		return true | ||||
| 	end | ||||
| 	return false | ||||
| end | ||||
| local packer_bootstrap = ensure_packer() -- true if packer was just installed | ||||
| 
 | ||||
| -- autocommand that reloads neovim and installs/updates/removes plugins | ||||
| -- when file is saved | ||||
| vim.cmd([[  | ||||
|   augroup packer_user_config | ||||
|     autocmd! | ||||
|     autocmd BufWritePost plugins-setup.lua source <afile> | PackerSync | ||||
|   augroup end | ||||
| ]]) | ||||
| 
 | ||||
| -- import packer safely | ||||
| local status, packer = pcall(require, "packer") | ||||
| if not status then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| -- add list of plugins to install | ||||
| return packer.startup(function(use) | ||||
| 	-- packer can manage itself | ||||
| 	use("wbthomason/packer.nvim") | ||||
| 
 | ||||
| 	use("nvim-lua/plenary.nvim") -- lua functions that many plugins use | ||||
| 
 | ||||
| 	use("bluz71/vim-nightfly-guicolors") -- preferred colorscheme | ||||
| 
 | ||||
| 	use("christoomey/vim-tmux-navigator") -- tmux & split window navigation | ||||
| 
 | ||||
| 	use("szw/vim-maximizer") -- maximizes and restores current window | ||||
| 
 | ||||
| 	-- essential plugins | ||||
| 	use("tpope/vim-surround") -- add, delete, change surroundings (it's awesome) | ||||
| 	use("inkarkat/vim-ReplaceWithRegister") -- replace with register contents using motion (gr + motion) | ||||
| 
 | ||||
| 	-- commenting with gc | ||||
| 	use("numToStr/Comment.nvim") | ||||
| 
 | ||||
| 	-- file explorer | ||||
| 	use("nvim-tree/nvim-tree.lua") | ||||
| 
 | ||||
| 	-- vs-code like icons | ||||
| 	use("nvim-tree/nvim-web-devicons") | ||||
| 
 | ||||
| 	-- statusline | ||||
| 	use("nvim-lualine/lualine.nvim") | ||||
| 
 | ||||
| 	-- fuzzy finding w/ telescope | ||||
| 	use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) -- dependency for better sorting performance | ||||
| 	use({ "nvim-telescope/telescope.nvim", tag = "0.1.0" }) -- fuzzy finder | ||||
| 
 | ||||
| 	-- autocompletion | ||||
| 	use("hrsh7th/nvim-cmp") -- completion plugin | ||||
| 	use("hrsh7th/cmp-buffer") -- source for text in buffer | ||||
| 	use("hrsh7th/cmp-path") -- source for file system paths | ||||
| 
 | ||||
| 	-- snippets | ||||
| 	use("L3MON4D3/LuaSnip") -- snippet engine | ||||
| 	use("saadparwaiz1/cmp_luasnip") -- for autocompletion | ||||
| 	use("rafamadriz/friendly-snippets") -- useful snippets | ||||
| 
 | ||||
| 	-- managing & installing lsp servers, linters & formatters | ||||
| 	use("williamboman/mason.nvim") -- in charge of managing lsp servers, linters & formatters | ||||
| 	use("williamboman/mason-lspconfig.nvim") -- bridges gap b/w mason & lspconfig | ||||
| 
 | ||||
| 	-- configuring lsp servers | ||||
| 	use("neovim/nvim-lspconfig") -- easily configure language servers | ||||
| 	use("hrsh7th/cmp-nvim-lsp") -- for autocompletion | ||||
| 	use({ "glepnir/lspsaga.nvim", branch = "main" }) -- enhanced lsp uis | ||||
| 	use("jose-elias-alvarez/typescript.nvim") -- additional functionality for typescript server (e.g. rename file & update imports) | ||||
| 	use("onsails/lspkind.nvim") -- vs-code like icons for autocompletion | ||||
| 
 | ||||
| 	-- formatting & linting | ||||
| 	use("jose-elias-alvarez/null-ls.nvim") -- configure formatters & linters | ||||
| 	use("jayp0521/mason-null-ls.nvim") -- bridges gap b/w mason & null-ls | ||||
| 
 | ||||
| 	-- treesitter configuration | ||||
| 	use({ | ||||
| 		"nvim-treesitter/nvim-treesitter", | ||||
| 		run = function() | ||||
| 			local ts_update = require("nvim-treesitter.install").update({ with_sync = true }) | ||||
| 			ts_update() | ||||
| 		end, | ||||
| 	}) | ||||
| 
 | ||||
| 	-- auto closing | ||||
| 	use("windwp/nvim-autopairs") -- autoclose parens, brackets, quotes, etc... | ||||
| 	use({ "windwp/nvim-ts-autotag", after = "nvim-treesitter" }) -- autoclose tags | ||||
| 
 | ||||
| 	-- git integration | ||||
| 	use("lewis6991/gitsigns.nvim") -- show line modifications on left hand side | ||||
| 
 | ||||
| 	-- discord rpc | ||||
| 	use("andweeb/presence.nvim") | ||||
| 
 | ||||
| 	if packer_bootstrap then | ||||
| 		require("packer").sync() | ||||
| 	end | ||||
| end) | ||||
|  | @ -1,29 +0,0 @@ | |||
| local autopairs_setup, autopairs = pcall(require, "nvim-autopairs") | ||||
| if not autopairs_setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- configure autopairs | ||||
| autopairs.setup({ | ||||
|   check_ts = true, -- enable treesitter | ||||
|   ts_config = { | ||||
|     lua = { "string" }, -- don't add pairs in lua string treesitter nodes | ||||
|     javascript = { "template_string" }, -- don't add pairs in javscript template_string treesitter nodes | ||||
|     java = false, -- don't check treesitter on java | ||||
|   }, | ||||
| }) | ||||
| 
 | ||||
| -- import nvim-autopairs completion functionality safely | ||||
| local cmp_autopairs_setup, cmp_autopairs = pcall(require, "nvim-autopairs.completion.cmp") | ||||
| if not cmp_autopairs_setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- import nvim-cmp plugin safely (completions plugin) | ||||
| local cmp_setup, cmp = pcall(require, "cmp") | ||||
| if not cmp_setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- make autopairs and completion work together | ||||
| cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) | ||||
|  | @ -1,8 +0,0 @@ | |||
| -- import comment | ||||
| local setup, comment = pcall(require, "Comment") | ||||
| if not setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- enable comment | ||||
| comment.setup() | ||||
|  | @ -1,23 +0,0 @@ | |||
| require("presence"):setup({ | ||||
| 	-- General options | ||||
| 	auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`) | ||||
| 	neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image | ||||
| 	main_image = "neovim", -- Main image display (either "neovim" or "file") | ||||
| 	client_id = "793271441293967371", -- Use your own Discord application client id (not recommended) | ||||
| 	log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") | ||||
| 	debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`) | ||||
| 	enable_line_number = false, -- Displays the current line number instead of the current project | ||||
| 	blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches | ||||
| 	buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table) | ||||
| 	file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference) | ||||
| 	show_time = true, -- Show the timer | ||||
| 
 | ||||
| 	-- Rich Presence text options | ||||
| 	editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string) | ||||
| 	file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string) | ||||
| 	git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string) | ||||
| 	plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string) | ||||
| 	reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string) | ||||
| 	workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string) | ||||
| 	line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string) | ||||
| }) | ||||
|  | @ -1,8 +0,0 @@ | |||
| -- import gitsigns plugin safely | ||||
| local setup, gitsigns = pcall(require, "gitsigns") | ||||
| if not setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- configure/enable gitsigns | ||||
| gitsigns.setup() | ||||
|  | @ -1,111 +0,0 @@ | |||
| -- import lspconfig plugin safely | ||||
| local lspconfig_status, lspconfig = pcall(require, "lspconfig") | ||||
| if not lspconfig_status then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| -- import cmp-nvim-lsp plugin safely | ||||
| local cmp_nvim_lsp_status, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") | ||||
| if not cmp_nvim_lsp_status then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| -- import typescript plugin safely | ||||
| local typescript_setup, typescript = pcall(require, "typescript") | ||||
| if not typescript_setup then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| local keymap = vim.keymap -- for conciseness | ||||
| 
 | ||||
| -- enable keybinds only for when lsp server available | ||||
| local on_attach = function(client, bufnr) | ||||
| 	-- keybind options | ||||
| 	local opts = { noremap = true, silent = true, buffer = bufnr } | ||||
| 
 | ||||
| 	-- set keybinds | ||||
| 	keymap.set("n", "gf", "<cmd>Lspsaga lsp_finder<CR>", opts) -- show definition, references | ||||
| 	keymap.set("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts) -- got to declaration | ||||
| 	keymap.set("n", "gd", "<cmd>Lspsaga peek_definition<CR>", opts) -- see definition and make edits in window | ||||
| 	keymap.set("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts) -- go to implementation | ||||
| 	keymap.set("n", "<leader>ca", "<cmd>Lspsaga code_action<CR>", opts) -- see available code actions | ||||
| 	keymap.set("n", "<leader>rn", "<cmd>Lspsaga rename<CR>", opts) -- smart rename | ||||
| 	keymap.set("n", "<leader>D", "<cmd>Lspsaga show_line_diagnostics<CR>", opts) -- show  diagnostics for line | ||||
| 	keymap.set("n", "<leader>d", "<cmd>Lspsaga show_cursor_diagnostics<CR>", opts) -- show diagnostics for cursor | ||||
| 	keymap.set("n", "[d", "<cmd>Lspsaga diagnostic_jump_prev<CR>", opts) -- jump to previous diagnostic in buffer | ||||
| 	keymap.set("n", "]d", "<cmd>Lspsaga diagnostic_jump_next<CR>", opts) -- jump to next diagnostic in buffer | ||||
| 	keymap.set("n", "K", "<cmd>Lspsaga hover_doc<CR>", opts) -- show documentation for what is under cursor | ||||
| 	keymap.set("n", "<leader>o", "<cmd>LSoutlineToggle<CR>", opts) -- see outline on right hand side | ||||
| 
 | ||||
| 	-- typescript specific keymaps (e.g. rename file and update imports) | ||||
| 	if client.name == "tsserver" then | ||||
| 		keymap.set("n", "<leader>rf", ":TypescriptRenameFile<CR>") -- rename file and update imports | ||||
| 		keymap.set("n", "<leader>oi", ":TypescriptOrganizeImports<CR>") -- organize imports (not in youtube nvim video) | ||||
| 		keymap.set("n", "<leader>ru", ":TypescriptRemoveUnused<CR>") -- remove unused variables (not in youtube nvim video) | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| -- used to enable autocompletion (assign to every lsp server config) | ||||
| local capabilities = cmp_nvim_lsp.default_capabilities() | ||||
| 
 | ||||
| -- Change the Diagnostic symbols in the sign column (gutter) | ||||
| -- (not in youtube nvim video) | ||||
| local signs = { Error = " ", Warn = " ", Hint = "ﴞ ", Info = " " } | ||||
| for type, icon in pairs(signs) do | ||||
| 	local hl = "DiagnosticSign" .. type | ||||
| 	vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" }) | ||||
| end | ||||
| 
 | ||||
| -- configure html server | ||||
| lspconfig["html"].setup({ | ||||
| 	capabilities = capabilities, | ||||
| 	on_attach = on_attach, | ||||
| }) | ||||
| 
 | ||||
| -- configure typescript server with plugin | ||||
| typescript.setup({ | ||||
| 	server = { | ||||
| 		capabilities = capabilities, | ||||
| 		on_attach = on_attach, | ||||
| 	}, | ||||
| }) | ||||
| 
 | ||||
| -- configure css server | ||||
| lspconfig["cssls"].setup({ | ||||
| 	capabilities = capabilities, | ||||
| 	on_attach = on_attach, | ||||
| }) | ||||
| 
 | ||||
| -- configure tailwindcss server | ||||
| lspconfig["tailwindcss"].setup({ | ||||
| 	capabilities = capabilities, | ||||
| 	on_attach = on_attach, | ||||
| }) | ||||
| 
 | ||||
| -- configure emmet language server | ||||
| lspconfig["emmet_ls"].setup({ | ||||
| 	capabilities = capabilities, | ||||
| 	on_attach = on_attach, | ||||
| 	filetypes = { "html", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "svelte" }, | ||||
| }) | ||||
| 
 | ||||
| -- configure lua server (with special settings) | ||||
| lspconfig["lua_ls"].setup({ | ||||
| 	capabilities = capabilities, | ||||
| 	on_attach = on_attach, | ||||
| 	settings = { -- custom settings for lua | ||||
| 		Lua = { | ||||
| 			-- make the language server recognize "vim" global | ||||
| 			diagnostics = { | ||||
| 				globals = { "vim" }, | ||||
| 			}, | ||||
| 			workspace = { | ||||
| 				-- make language server aware of runtime files | ||||
| 				library = { | ||||
| 					[vim.fn.expand("$VIMRUNTIME/lua")] = true, | ||||
| 					[vim.fn.stdpath("config") .. "/lua"] = true, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| }) | ||||
|  | @ -1,44 +0,0 @@ | |||
| -- import mason plugin safely | ||||
| local mason_status, mason = pcall(require, "mason") | ||||
| if not mason_status then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| -- import mason-lspconfig plugin safely | ||||
| local mason_lspconfig_status, mason_lspconfig = pcall(require, "mason-lspconfig") | ||||
| if not mason_lspconfig_status then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| -- import mason-null-ls plugin safely | ||||
| local mason_null_ls_status, mason_null_ls = pcall(require, "mason-null-ls") | ||||
| if not mason_null_ls_status then | ||||
| 	return | ||||
| end | ||||
| 
 | ||||
| -- enable mason | ||||
| mason.setup() | ||||
| 
 | ||||
| mason_lspconfig.setup({ | ||||
| 	-- list of servers for mason to install | ||||
| 	ensure_installed = { | ||||
| 		"tsserver", | ||||
| 		"html", | ||||
| 		"cssls", | ||||
| 		"tailwindcss", | ||||
| 		"emmet_ls", | ||||
| 	}, | ||||
| 	-- auto-install configured servers (with lspconfig) | ||||
| 	automatic_installation = true, -- not the same as ensure_installed | ||||
| }) | ||||
| 
 | ||||
| mason_null_ls.setup({ | ||||
| 	-- list of formatters & linters for mason to install | ||||
| 	ensure_installed = { | ||||
| 		"prettier", -- ts/js formatter | ||||
| 		"stylua", -- lua formatter | ||||
| 		"eslint_d", -- ts/js linter | ||||
| 	}, | ||||
| 	-- auto-install configured formatters & linters (with null-ls) | ||||
| 	automatic_installation = true, | ||||
| }) | ||||
|  | @ -1,48 +0,0 @@ | |||
| -- import null-ls plugin safely | ||||
| local setup, null_ls = pcall(require, "null-ls") | ||||
| if not setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- for conciseness | ||||
| local formatting = null_ls.builtins.formatting -- to setup formatters | ||||
| local diagnostics = null_ls.builtins.diagnostics -- to setup linters | ||||
| 
 | ||||
| -- to setup format on save | ||||
| local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) | ||||
| 
 | ||||
| -- configure null_ls | ||||
| null_ls.setup({ | ||||
|   -- setup formatters & linters | ||||
|   sources = { | ||||
|     --  to disable file types use | ||||
|     --  "formatting.prettier.with({disabled_filetypes: {}})" (see null-ls docs) | ||||
|     formatting.prettier, -- js/ts formatter | ||||
|     formatting.stylua, -- lua formatter | ||||
|     diagnostics.eslint_d.with({ -- js/ts linter | ||||
|       -- only enable eslint if root has .eslintrc.js (not in youtube nvim video) | ||||
|       condition = function(utils) | ||||
|         return utils.root_has_file(".eslintrc.js") -- change file extension if you use something else | ||||
|       end, | ||||
|     }), | ||||
|   }, | ||||
|   -- configure format on save | ||||
|   on_attach = function(current_client, bufnr) | ||||
|     if current_client.supports_method("textDocument/formatting") then | ||||
|       vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) | ||||
|       vim.api.nvim_create_autocmd("BufWritePre", { | ||||
|         group = augroup, | ||||
|         buffer = bufnr, | ||||
|         callback = function() | ||||
|           vim.lsp.buf.format({ | ||||
|             filter = function(client) | ||||
|               --  only use null-ls for formatting instead of lsp server | ||||
|               return client.name == "null-ls" | ||||
|             end, | ||||
|             bufnr = bufnr, | ||||
|           }) | ||||
|         end, | ||||
|       }) | ||||
|     end | ||||
|   end, | ||||
| }) | ||||
|  | @ -1,36 +0,0 @@ | |||
| -- import lualine plugin safely | ||||
| local status, lualine = pcall(require, "lualine") | ||||
| if not status then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- get lualine nightfly theme | ||||
| local lualine_nightfly = require("lualine.themes.nightfly") | ||||
| 
 | ||||
| -- new colors for theme | ||||
| local new_colors = { | ||||
|   blue = "#65D1FF", | ||||
|   green = "#3EFFDC", | ||||
|   violet = "#FF61EF", | ||||
|   yellow = "#FFDA7B", | ||||
|   black = "#000000", | ||||
| } | ||||
| 
 | ||||
| -- change nightlfy theme colors | ||||
| lualine_nightfly.normal.a.bg = new_colors.blue | ||||
| lualine_nightfly.insert.a.bg = new_colors.green | ||||
| lualine_nightfly.visual.a.bg = new_colors.violet | ||||
| lualine_nightfly.command = { | ||||
|   a = { | ||||
|     gui = "bold", | ||||
|     bg = new_colors.yellow, | ||||
|     fg = new_colors.black, -- black | ||||
|   }, | ||||
| } | ||||
| 
 | ||||
| -- configure lualine with modified theme | ||||
| lualine.setup({ | ||||
|   options = { | ||||
|     theme = lualine_nightfly, | ||||
|   }, | ||||
| }) | ||||
|  | @ -1,53 +0,0 @@ | |||
| -- import nvim-cmp plugin safely | ||||
| local cmp_status, cmp = pcall(require, "cmp") | ||||
| if not cmp_status then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- import luasnip plugin safely | ||||
| local luasnip_status, luasnip = pcall(require, "luasnip") | ||||
| if not luasnip_status then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- import lspkind plugin safely | ||||
| local lspkind_status, lspkind = pcall(require, "lspkind") | ||||
| if not lspkind_status then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- load vs-code like snippets from plugins (e.g. friendly-snippets) | ||||
| require("luasnip/loaders/from_vscode").lazy_load() | ||||
| 
 | ||||
| vim.opt.completeopt = "menu,menuone,noselect" | ||||
| 
 | ||||
| cmp.setup({ | ||||
|   snippet = { | ||||
|     expand = function(args) | ||||
|       luasnip.lsp_expand(args.body) | ||||
|     end, | ||||
|   }, | ||||
|   mapping = cmp.mapping.preset.insert({ | ||||
|     ["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion | ||||
|     ["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion | ||||
|     ["<C-b>"] = cmp.mapping.scroll_docs(-4), | ||||
|     ["<C-f>"] = cmp.mapping.scroll_docs(4), | ||||
|     ["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions | ||||
|     ["<C-e>"] = cmp.mapping.abort(), -- close completion window | ||||
|     ["<CR>"] = cmp.mapping.confirm({ select = false }), | ||||
|   }), | ||||
|   -- sources for autocompletion | ||||
|   sources = cmp.config.sources({ | ||||
|     { name = "nvim_lsp" }, -- lsp | ||||
|     { name = "luasnip" }, -- snippets | ||||
|     { name = "buffer" }, -- text within current buffer | ||||
|     { name = "path" }, -- file system paths | ||||
|   }), | ||||
|   -- configure lspkind for vs-code like icons | ||||
|   formatting = { | ||||
|     format = lspkind.cmp_format({ | ||||
|       maxwidth = 50, | ||||
|       ellipsis_char = "...", | ||||
|     }), | ||||
|   }, | ||||
| }) | ||||
|  | @ -1,35 +0,0 @@ | |||
| -- import nvim-tree plugin safely | ||||
| local setup, nvimtree = pcall(require, "nvim-tree") | ||||
| if not setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- settings passed of nvim-tree documentation | ||||
| vim.g.loaded_netrw = 1 | ||||
| vim.g.loaded_netrwPlugin = 1 | ||||
| 
 | ||||
| -- colorscheme for arrows in tree to a light blue | ||||
| vim.cmd([[ highlight NvimTreeIndentMarker guifg=#3FC5FF ]]) | ||||
| 
 | ||||
| -- config nvim-tree | ||||
| nvimtree.setup({ | ||||
|   -- folder arrow icons | ||||
|   renderer = { | ||||
|     icons = { | ||||
|       glyphs = { | ||||
|         folder = { | ||||
|           arrow_closed = " ",  | ||||
|           arrow_open = " ", | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|   -- no window_picker for explorer | ||||
|   actions = { | ||||
|     open_file = { | ||||
|       window_picker = { | ||||
|         enable = false, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| }) | ||||
|  | @ -1,26 +0,0 @@ | |||
| -- import telescope | ||||
| local telescope_setup, telescope = pcall(require, "telescope") | ||||
| if not telescope_setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- import teleport actions | ||||
| local actions_setup, actions = pcall(require, "telescope.actions") | ||||
| if not actions_setup then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- config | ||||
| telescope.setup({ | ||||
|   defaults = { | ||||
|     mappings = { | ||||
|       i = { | ||||
|         ["<C-k>"] = actions.move_selection_previous, | ||||
|         ["<C-j>"] = actions.move_selection_next, | ||||
|         ["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| }) | ||||
| 
 | ||||
| telescope.load_extension("fzf") | ||||
|  | @ -1,37 +0,0 @@ | |||
| -- import nvim-treesitter plugin safely | ||||
| local status, treesitter = pcall(require, "nvim-treesitter.configs") | ||||
| if not status then | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| -- configure treesitter | ||||
| treesitter.setup({ | ||||
|   -- enable syntax highlighting | ||||
|   highlight = { | ||||
|     enable = true, | ||||
|   }, | ||||
|   -- enable indentation | ||||
|   indent = { enable = true }, | ||||
|   -- enable autotagging (w/ nvim-ts-autotag plugin) | ||||
|   autotag = { enable = true }, | ||||
|   -- ensure these language parsers are installed | ||||
|   ensure_installed = { | ||||
|     "json", | ||||
|     "javascript", | ||||
|     "typescript", | ||||
|     "tsx", | ||||
|     "yaml", | ||||
|     "html", | ||||
|     "css", | ||||
|     "markdown", | ||||
|     "svelte", | ||||
|     "graphql", | ||||
|     "bash", | ||||
|     "lua", | ||||
|     "vim", | ||||
|     "dockerfile", | ||||
|     "gitignore", | ||||
|   }, | ||||
|   -- auto install above language parsers | ||||
|   auto_install = true, | ||||
| }) | ||||
							
								
								
									
										18
									
								
								nvim/lua/config/autocmds.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								nvim/lua/config/autocmds.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| -- 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 | ||||
| 
 | ||||
| -- turn off paste mode when leaving insert | ||||
| vim.api.nvim_create_autocmd("InsertLeave", { | ||||
|   pattern = "*", | ||||
|   command = "set nopaste", | ||||
| }) | ||||
| 
 | ||||
| -- fix conceallevel for json files | ||||
| vim.api.nvim_create_autocmd("FileType", { | ||||
|   pattern = { "json", "jsonc" }, | ||||
|   callback = function() | ||||
|     vim.wo.spell = false | ||||
|     vim.wo.conceallevel = 0 | ||||
|   end, | ||||
| }) | ||||
							
								
								
									
										162
									
								
								nvim/lua/config/keymaps.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								nvim/lua/config/keymaps.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,162 @@ | |||
| -- 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 discipline = require("jeremydwayne.discipline") | ||||
| -- discipline.cowboy() | ||||
| 
 | ||||
| local keymap = vim.keymap | ||||
| local opts = { noremap = true, silent = true } | ||||
| 
 | ||||
| -- Increment/Decrement | ||||
| keymap.set("n", "+", "<C-a") | ||||
| keymap.set("n", "-", "<C-x") | ||||
| 
 | ||||
| -- delete word backwards | ||||
| keymap.set("n", "dw", "vb_d") | ||||
| 
 | ||||
| -- select all | ||||
| keymap.set("n", "<C-a>", "gg<S-v>G") | ||||
| 
 | ||||
| -- jumplist | ||||
| keymap.set("n", "<C-m>", "<C-i>", opts) | ||||
| 
 | ||||
| -- New Tab | ||||
| keymap.set("n", "te", ":tabedit<Return>", opts) | ||||
| -- keymap.set("n", "<tab>", ":tabnext<Return>", opts) | ||||
| -- keymap.set("n", "<s-tab>", ":tabprev<Return>", opts) | ||||
| -- keymap.set("n", "<leader>bd", ":bd<Return>", opts) | ||||
| 
 | ||||
| -- Split window | ||||
| keymap.set("n", "<leader>ss", ":split<Return>", opts) | ||||
| keymap.set("n", "<leader>sv", ":vsplit<Return>", opts) | ||||
| 
 | ||||
| -- Move window | ||||
| keymap.set("n", "<leader>sh", "<C-w>h") | ||||
| keymap.set("n", "<leader>sk", "<C-w>k") | ||||
| keymap.set("n", "<leader>sj", "<C-w>j") | ||||
| keymap.set("n", "<leader>sl", "<C-w>l") | ||||
| 
 | ||||
| -- Resize window | ||||
| keymap.set("n", "<C-w><left>", "<C-w><") | ||||
| keymap.set("n", "<C-w><right>", "<C-w>>") | ||||
| keymap.set("n", "<C-w><up>", "<C-w>+") | ||||
| keymap.set("n", "<C-w><down>", "<C-w>-") | ||||
| 
 | ||||
| -- Diagnostics | ||||
| keymap.set("n", "<C-j>", function() | ||||
|   vim.diagnostic.goto_next() | ||||
| end, opts) | ||||
| keymap.set("n", "<C-f>", function() | ||||
|   vim.diagnostic.goto_prev() | ||||
| end, opts) | ||||
| 
 | ||||
| keymap.set("n", ":W", vim.cmd.w) | ||||
| keymap.set("n", ":Wq", vim.cmd.wq) | ||||
| keymap.set("n", ":Q", vim.cmd.q) | ||||
| keymap.set("n", "<leader>so", vim.cmd.so) | ||||
| keymap.set("n", "<leader>pv", vim.cmd.Ex) | ||||
| 
 | ||||
| keymap.set("n", "<leader>bd", "<cmd>bd!<cr>") | ||||
| 
 | ||||
| -- option key movement on macos | ||||
| keymap.set("n", "∆", ":m .+1<CR>==") | ||||
| keymap.set("n", "˚", ":m .-2<CR>==") | ||||
| keymap.set("i", "∆", "<Esc>:m .+1<CR>==gi") | ||||
| keymap.set("i", "˚", "<Esc>:m .-2<CR>==gi") | ||||
| keymap.set("v", "∆", ":m '>+1<CR>gv=gv") | ||||
| keymap.set("v", "˚", ":m '<-2<CR>gv=gv") | ||||
| -- alt key movement | ||||
| keymap.set("n", "<A-j>", ":m .+1<CR>==") | ||||
| keymap.set("n", "<A-k>", ":m .-2<CR>==") | ||||
| keymap.set("i", "<A-j>", "<Esc>:m .+1<CR>==gi") | ||||
| keymap.set("i", "<A-k>", "<Esc>:m .-2<CR>==gi") | ||||
| keymap.set("v", "<A-j>", ":m '>+1<CR>gv=gv") | ||||
| keymap.set("v", "<A-k>", ":m '<-2<CR>gv=gv") | ||||
| 
 | ||||
| keymap.set("n", "J", "mzJ`z") | ||||
| keymap.set("n", "<C-d>", "<C-d>zz") | ||||
| keymap.set("n", "<C-u>", "<C-u>zz") | ||||
| keymap.set("n", "n", "nzzzv") | ||||
| keymap.set("n", "N", "Nzzzv") | ||||
| 
 | ||||
| -- system yank and paste | ||||
| keymap.set("x", "<leader>p", '"_dP') | ||||
| keymap.set("n", "<leader>y", '"+y') | ||||
| keymap.set("v", "<leader>y", '"+y') | ||||
| keymap.set("n", "<leader>Y", '"+Y') | ||||
| 
 | ||||
| keymap.set("n", "<leader>d", '"_d') | ||||
| keymap.set("v", "<leader>d", '"_d') | ||||
| 
 | ||||
| -- escape vertical edit mode gracefully | ||||
| keymap.set("i", "<C-c>", "<Esc>") | ||||
| 
 | ||||
| keymap.set("n", "Q", "<nop>") | ||||
| 
 | ||||
| -- search for word cursor is on | ||||
| keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>") | ||||
| 
 | ||||
| -- make current file executable (shell scripts) | ||||
| keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true }) | ||||
| 
 | ||||
| -- bufferline tabs | ||||
| keymap.set("n", "<S-l>", "<cmd>BufferLineCycleNext<CR>") | ||||
| keymap.set("n", "<S-h>", "<cmd>BufferLineCyclePrev<CR>") | ||||
| keymap.set("n", "<leader>bn", "<cmd>BufferLineMoveNext<CR>") | ||||
| keymap.set("n", "<leader>bp", "<cmd>BufferLineMovePrev<CR>") | ||||
| 
 | ||||
| keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle) | ||||
| 
 | ||||
| keymap.set("n", "<C-n>", "<cmd>Neotree toggle reveal<CR>") | ||||
| 
 | ||||
| -- nvim dap | ||||
| keymap.set("n", "<leader>db", "<cmd> DapToggleBreakpoint <CR>") | ||||
| keymap.set("n", "<leader>dus", function() | ||||
|   local widgets = require("dap.ui.widgets") | ||||
|   local sidebar = widgets.sidebar(widgets.scopes) | ||||
|   sidebar.open() | ||||
| end) | ||||
| -- dap-go | ||||
| keymap.set("n", "<leader>dgt", function() | ||||
|   require("dap-go").debug_test() | ||||
| end) | ||||
| keymap.set("n", "<leader>dgl", function() | ||||
|   require("dap-go").debug_last() | ||||
| end) | ||||
| 
 | ||||
| -- gopher | ||||
| keymap.set("n", "<leader>gsj", "<cmd> GoTagAdd json<CR>") | ||||
| keymap.set("n", "<leader>ger", "<cmd> GoIfErr<CR>") | ||||
| keymap.set("n", "<leader>gtg", "<cmd> GoTestsAll<CR>") | ||||
| 
 | ||||
| keymap.set("n", "<leader>rn", ":IncRename ") | ||||
| 
 | ||||
| -- Refactoring | ||||
| keymap.set("x", "<leader>re", function() | ||||
|   require("refactoring").refactor("Extract Function") | ||||
| end) | ||||
| keymap.set("x", "<leader>rf", function() | ||||
|   require("refactoring").refactor("Extract Function To File") | ||||
| end) | ||||
| -- Extract function supports only visual mode | ||||
| keymap.set("x", "<leader>rv", function() | ||||
|   require("refactoring").refactor("Extract Variable") | ||||
| end) | ||||
| -- Extract variable supports only visual mode | ||||
| keymap.set("n", "<leader>rI", function() | ||||
|   require("refactoring").refactor("Inline Function") | ||||
| end) | ||||
| -- Inline func supports only normal | ||||
| keymap.set({ "n", "x" }, "<leader>ri", function() | ||||
|   require("refactoring").refactor("Inline Variable") | ||||
| end) | ||||
| -- Inline var supports both normal and visual mode | ||||
| 
 | ||||
| keymap.set("n", "<leader>rb", function() | ||||
|   require("refactoring").refactor("Extract Block") | ||||
| end) | ||||
| keymap.set("n", "<leader>rbf", function() | ||||
|   require("refactoring").refactor("Extract Block To File") | ||||
| end) | ||||
| -- Extract block supports only normal mode | ||||
							
								
								
									
										64
									
								
								nvim/lua/config/lazy.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								nvim/lua/config/lazy.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | |||
| local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" | ||||
| if not vim.loop.fs_stat(lazypath) then | ||||
|   -- bootstrap lazy.nvim | ||||
|   -- stylua: ignore | ||||
|   vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) | ||||
| end | ||||
| vim.opt.rtp:prepend(vim.env.LAZY or lazypath) | ||||
| 
 | ||||
| require("lazy").setup({ | ||||
|   spec = { | ||||
|     -- add LazyVim and import its plugins | ||||
|     { | ||||
|       "LazyVim/LazyVim", | ||||
|       import = "lazyvim.plugins", | ||||
|       opts = { | ||||
|         colorscheme = "vscode", | ||||
|         news = { | ||||
|           lazyvim = true, | ||||
|           neovim = true, | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|     -- import any extras modules here | ||||
|     { import = "lazyvim.plugins.extras.linting.eslint" }, | ||||
|     { import = "lazyvim.plugins.extras.formatting.prettier" }, | ||||
|     { import = "lazyvim.plugins.extras.lang.typescript" }, | ||||
|     { import = "lazyvim.plugins.extras.lang.tailwind" }, | ||||
|     { import = "lazyvim.plugins.extras.lang.go" }, | ||||
|     { import = "lazyvim.plugins.extras.lang.ruby" }, | ||||
|     { import = "lazyvim.plugins.extras.lang.json" }, | ||||
|     { import = "lazyvim.plugins.extras.coding.copilot" }, | ||||
|     { import = "lazyvim.plugins.extras.util.mini-hipatterns" }, | ||||
|     -- { import = "lazyvim.plugins.extras.ui.mini-animate" }, | ||||
|     -- 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 }, -- automatically check for plugin updates | ||||
|   performance = { | ||||
|     rtp = { | ||||
|       -- disable some rtp plugins | ||||
|       disabled_plugins = { | ||||
|         "gzip", | ||||
|         -- "matchit", | ||||
|         -- "matchparen", | ||||
|         "netrwPlugin", | ||||
|         "rplugin", | ||||
|         "tarPlugin", | ||||
|         "tohtml", | ||||
|         "tutor", | ||||
|         "zipPlugin", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| }) | ||||
							
								
								
									
										7
									
								
								nvim/lua/config/options.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								nvim/lua/config/options.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| -- 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 | ||||
| 
 | ||||
| -- Undercurl | ||||
| vim.cmd([[let &t_Cs = "\e[4:3m"]]) | ||||
| vim.cmd([[let &t_Ce = "\e[4:0m"]]) | ||||
							
								
								
									
										25
									
								
								nvim/lua/plugins/cmp.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								nvim/lua/plugins/cmp.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| return { | ||||
|   "hrsh7th/nvim-cmp", | ||||
|   event = { "InsertEnter", "CmdlineEnter" }, | ||||
|   opts = function(_, opts) | ||||
|     local cmp = require("cmp") | ||||
| 
 | ||||
|     opts.mapping = vim.tbl_extend("force", opts.mapping, { | ||||
|       ["<C-Space>"] = cmp.mapping.confirm({ | ||||
|         behavior = cmp.ConfirmBehavior.Insert, | ||||
|         select = true, | ||||
|       }), | ||||
|       ["<CR>"] = cmp.mapping({ | ||||
|         i = function(fallback) | ||||
|           if cmp.visible() and cmp.get_active_entry() then | ||||
|             cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }) | ||||
|           else | ||||
|             fallback() | ||||
|           end | ||||
|         end, | ||||
|         s = cmp.mapping.confirm({ select = true }), | ||||
|         c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), | ||||
|       }), | ||||
|     }) | ||||
|   end, | ||||
| } | ||||
							
								
								
									
										5
									
								
								nvim/lua/plugins/coding.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								nvim/lua/plugins/coding.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| return { | ||||
|   "smjonas/inc-rename.nvim", | ||||
|   cmd = "IncRename", | ||||
|   config = true, | ||||
| } | ||||
							
								
								
									
										12
									
								
								nvim/lua/plugins/colorscheme.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								nvim/lua/plugins/colorscheme.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| return { | ||||
|   { | ||||
|     "Mofiqul/vscode.nvim", | ||||
|     lazy = true, | ||||
|     priority = 1000, | ||||
|     opts = function() | ||||
|       return { | ||||
|         transparent = true, | ||||
|       } | ||||
|     end, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										4
									
								
								nvim/lua/plugins/disabled.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								nvim/lua/plugins/disabled.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| return { | ||||
|   { "folke/flash.nvim", enabled = false }, | ||||
|   { "folke/which-key.nvim", enabled = false }, | ||||
| } | ||||
							
								
								
									
										142
									
								
								nvim/lua/plugins/editor.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								nvim/lua/plugins/editor.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,142 @@ | |||
| return { | ||||
|   "telescope.nvim", | ||||
|   dependencies = { "nvim-telescope/telescope-file-browser.nvim" }, | ||||
|   keys = { | ||||
|     { | ||||
|       "<leader>fP", | ||||
|       function() | ||||
|         require("telescope.builtin").find_files({ | ||||
|           cwd = require("lazy.core.config").options.root, | ||||
|         }) | ||||
|       end, | ||||
|       desc = "Find Plugin File", | ||||
|     }, | ||||
|     { | ||||
|       ";f", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.find_files({ | ||||
|           no_ignore = false, | ||||
|           hidden = true, | ||||
|         }) | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       ";r", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.live_grep() | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       "\\\\", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.buffers() | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       ";t", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.help_tags() | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       ";;", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.resume() | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       ";e", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.diagnostics() | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       ";s", | ||||
|       function() | ||||
|         local builtin = require("telescope.builtin") | ||||
|         builtin.treesitter() | ||||
|       end, | ||||
|     }, | ||||
|     { | ||||
|       "fb", | ||||
|       function() | ||||
|         local telescope = require("telescope") | ||||
|         local function telescope_buffer_dir() | ||||
|           return vim.fn.expand("%:p:h") | ||||
|         end | ||||
|         telescope.extensions.file_browser.file_browser({ | ||||
|           path = "%:p:h", | ||||
|           cwd = telescope_buffer_dir(), | ||||
|           respect_gitignore = false, | ||||
|           hidden = true, | ||||
|           grouped = true, | ||||
|           previewer = false, | ||||
|           initial_mode = "normal", | ||||
|           layout_config = { height = 40 }, | ||||
|         }) | ||||
|       end, | ||||
|     }, | ||||
|   }, | ||||
|   config = function(_, opts) | ||||
|     local telescope = require("telescope") | ||||
|     local actions = require("telescope.actions") | ||||
|     local fb_actions = require("telescope").extensions.file_browser.actions | ||||
| 
 | ||||
|     opts.defaults = vim.tbl_deep_extend("force", opts.defaults, { | ||||
|       wrap_results = true, | ||||
|       layout_strategy = "horizontal", | ||||
|       layout_config = { prompt_position = "top" }, | ||||
|       sorting_strategy = "ascending", | ||||
|       winblend = 0, | ||||
|       mappings = { | ||||
|         n = {}, | ||||
|       }, | ||||
|     }) | ||||
| 
 | ||||
|     opts.pickers = { | ||||
|       diagnostics = { | ||||
|         theme = "ivy", | ||||
|         initial_mode = "normal", | ||||
|         layout_config = { preview_cutoff = 9999 }, | ||||
|       }, | ||||
|     } | ||||
| 
 | ||||
|     opts.extensions = { | ||||
|       file_browser = { | ||||
|         theme = "dropdown", | ||||
|         hijack_netrw = true, | ||||
|         mappings = { | ||||
|           ["n"] = { | ||||
|             -- custom normal mode mappings | ||||
|             ["a"] = fb_actions.create, | ||||
|             ["h"] = fb_actions.goto_parent_dir, | ||||
|             ["/"] = function() | ||||
|               vim.cmd("startinsert") | ||||
|             end, | ||||
|             ["<C-u>"] = function(prompt_bufnr) | ||||
|               for i = 1, 10 do | ||||
|                 actions.move_selection_previous(prompt_bufnr) | ||||
|               end | ||||
|             end, | ||||
|             ["<C-d>"] = function(prompt_bufnr) | ||||
|               for i = 1, 10 do | ||||
|                 actions.move_selection_next(prompt_bufnr) | ||||
|               end | ||||
|             end, | ||||
|             ["<PageUp>"] = actions.preview_scrolling_up, | ||||
|             ["<PageDown>"] = actions.preview_scrolling_down, | ||||
|           }, | ||||
|         }, | ||||
|       }, | ||||
|     } | ||||
|     telescope.setup(opts) | ||||
|     require("telescope").load_extension("fzf") | ||||
|     require("telescope").load_extension("file_browser") | ||||
|   end, | ||||
| } | ||||
							
								
								
									
										276
									
								
								nvim/lua/plugins/example.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										276
									
								
								nvim/lua/plugins/example.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,276 @@ | |||
| -- since this is just an example spec, don't actually load anything here and return an empty spec | ||||
| -- stylua: ignore | ||||
| if true then return {} end | ||||
| 
 | ||||
| -- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim | ||||
| -- | ||||
| -- In your plugin files, you can: | ||||
| -- * add extra plugins | ||||
| -- * disable/enabled LazyVim plugins | ||||
| -- * override the configuration of LazyVim plugins | ||||
| return { | ||||
|   -- add gruvbox | ||||
|   { "ellisonleao/gruvbox.nvim" }, | ||||
| 
 | ||||
|   -- Configure LazyVim to load gruvbox | ||||
|   { | ||||
|     "LazyVim/LazyVim", | ||||
|     opts = { | ||||
|       colorscheme = "gruvbox", | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- change trouble config | ||||
|   { | ||||
|     "folke/trouble.nvim", | ||||
|     -- opts will be merged with the parent spec | ||||
|     opts = { use_diagnostic_signs = true }, | ||||
|   }, | ||||
| 
 | ||||
|   -- disable trouble | ||||
|   { "folke/trouble.nvim", enabled = false }, | ||||
| 
 | ||||
|   -- add symbols-outline | ||||
|   { | ||||
|     "simrat39/symbols-outline.nvim", | ||||
|     cmd = "SymbolsOutline", | ||||
|     keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } }, | ||||
|     config = true, | ||||
|   }, | ||||
| 
 | ||||
|   -- override nvim-cmp and add cmp-emoji | ||||
|   { | ||||
|     "hrsh7th/nvim-cmp", | ||||
|     dependencies = { "hrsh7th/cmp-emoji" }, | ||||
|     ---@param opts cmp.ConfigSchema | ||||
|     opts = function(_, opts) | ||||
|       table.insert(opts.sources, { name = "emoji" }) | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- change some telescope options and a keymap to browse plugin files | ||||
|   { | ||||
|     "nvim-telescope/telescope.nvim", | ||||
|     keys = { | ||||
|       -- add a keymap to browse plugin files | ||||
|       -- stylua: ignore | ||||
|       { | ||||
|         "<leader>fp", | ||||
|         function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, | ||||
|         desc = "Find Plugin File", | ||||
|       }, | ||||
|     }, | ||||
|     -- change some options | ||||
|     opts = { | ||||
|       defaults = { | ||||
|         layout_strategy = "horizontal", | ||||
|         layout_config = { prompt_position = "top" }, | ||||
|         sorting_strategy = "ascending", | ||||
|         winblend = 0, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- add telescope-fzf-native | ||||
|   { | ||||
|     "telescope.nvim", | ||||
|     dependencies = { | ||||
|       "nvim-telescope/telescope-fzf-native.nvim", | ||||
|       build = "make", | ||||
|       config = function() | ||||
|         require("telescope").load_extension("fzf") | ||||
|       end, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- add pyright to lspconfig | ||||
|   { | ||||
|     "neovim/nvim-lspconfig", | ||||
|     ---@class PluginLspOpts | ||||
|     opts = { | ||||
|       ---@type lspconfig.options | ||||
|       servers = { | ||||
|         -- pyright will be automatically installed with mason and loaded with lspconfig | ||||
|         pyright = {}, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- add tsserver and setup with typescript.nvim instead of lspconfig | ||||
|   { | ||||
|     "neovim/nvim-lspconfig", | ||||
|     dependencies = { | ||||
|       "jose-elias-alvarez/typescript.nvim", | ||||
|       init = function() | ||||
|         require("lazyvim.util").on_attach(function(_, buffer) | ||||
|           -- stylua: ignore | ||||
|           vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) | ||||
|           vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) | ||||
|         end) | ||||
|       end, | ||||
|     }, | ||||
|     ---@class PluginLspOpts | ||||
|     opts = { | ||||
|       ---@type lspconfig.options | ||||
|       servers = { | ||||
|         -- tsserver will be automatically installed with mason and loaded with lspconfig | ||||
|         tsserver = {}, | ||||
|       }, | ||||
|       -- you can do any additional lsp server setup here | ||||
|       -- return true if you don't want this server to be setup with lspconfig | ||||
|       ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?> | ||||
|       setup = { | ||||
|         -- example to setup with typescript.nvim | ||||
|         tsserver = function(_, opts) | ||||
|           require("typescript").setup({ server = opts }) | ||||
|           return true | ||||
|         end, | ||||
|         -- Specify * to use this function as a fallback for any server | ||||
|         -- ["*"] = function(server, opts) end, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, | ||||
|   -- treesitter, mason and typescript.nvim. So instead of the above, you can use: | ||||
|   { import = "lazyvim.plugins.extras.lang.typescript" }, | ||||
| 
 | ||||
|   -- add more treesitter parsers | ||||
|   { | ||||
|     "nvim-treesitter/nvim-treesitter", | ||||
|     opts = { | ||||
|       ensure_installed = { | ||||
|         "bash", | ||||
|         "html", | ||||
|         "javascript", | ||||
|         "json", | ||||
|         "lua", | ||||
|         "markdown", | ||||
|         "markdown_inline", | ||||
|         "python", | ||||
|         "query", | ||||
|         "regex", | ||||
|         "tsx", | ||||
|         "typescript", | ||||
|         "vim", | ||||
|         "yaml", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above | ||||
|   -- would overwrite `ensure_installed` with the new value. | ||||
|   -- If you'd rather extend the default config, use the code below instead: | ||||
|   { | ||||
|     "nvim-treesitter/nvim-treesitter", | ||||
|     opts = function(_, opts) | ||||
|       -- add tsx and treesitter | ||||
|       vim.list_extend(opts.ensure_installed, { | ||||
|         "tsx", | ||||
|         "typescript", | ||||
|       }) | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- the opts function can also be used to change the default opts: | ||||
|   { | ||||
|     "nvim-lualine/lualine.nvim", | ||||
|     event = "VeryLazy", | ||||
|     opts = function(_, opts) | ||||
|       table.insert(opts.sections.lualine_x, "😄") | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- or you can return new options to override all the defaults | ||||
|   { | ||||
|     "nvim-lualine/lualine.nvim", | ||||
|     event = "VeryLazy", | ||||
|     opts = function() | ||||
|       return { | ||||
|         --[[add your custom lualine config here]] | ||||
|       } | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- use mini.starter instead of alpha | ||||
|   { import = "lazyvim.plugins.extras.ui.mini-starter" }, | ||||
| 
 | ||||
|   -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc | ||||
|   { import = "lazyvim.plugins.extras.lang.json" }, | ||||
| 
 | ||||
|   -- add any tools you want to have installed below | ||||
|   { | ||||
|     "williamboman/mason.nvim", | ||||
|     opts = { | ||||
|       ensure_installed = { | ||||
|         "stylua", | ||||
|         "shellcheck", | ||||
|         "shfmt", | ||||
|         "flake8", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- Use <tab> for completion and snippets (supertab) | ||||
|   -- first: disable default <tab> and <s-tab> behavior in LuaSnip | ||||
|   { | ||||
|     "L3MON4D3/LuaSnip", | ||||
|     keys = function() | ||||
|       return {} | ||||
|     end, | ||||
|   }, | ||||
|   -- then: setup supertab in cmp | ||||
|   { | ||||
|     "hrsh7th/nvim-cmp", | ||||
|     dependencies = { | ||||
|       "hrsh7th/cmp-emoji", | ||||
|     }, | ||||
|     ---@param opts cmp.ConfigSchema | ||||
|     opts = function(_, opts) | ||||
|       local has_words_before = function() | ||||
|         unpack = unpack or table.unpack | ||||
|         local line, col = unpack(vim.api.nvim_win_get_cursor(0)) | ||||
|         return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil | ||||
|       end | ||||
| 
 | ||||
|       local luasnip = require("luasnip") | ||||
|       local cmp = require("cmp") | ||||
| 
 | ||||
|       opts.mapping = vim.tbl_extend("force", opts.mapping, { | ||||
|         ["<Tab>"] = cmp.mapping(function(fallback) | ||||
|           if cmp.visible() then | ||||
|             cmp.select_next_item() | ||||
|             -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() | ||||
|             -- this way you will only jump inside the snippet region | ||||
|           elseif luasnip.expand_or_jumpable() then | ||||
|             luasnip.expand_or_jump() | ||||
|           elseif has_words_before() then | ||||
|             cmp.complete() | ||||
|           else | ||||
|             fallback() | ||||
|           end | ||||
|         end, { "i", "s" }), | ||||
|         ["<S-Tab>"] = cmp.mapping(function(fallback) | ||||
|           if cmp.visible() then | ||||
|             cmp.select_prev_item() | ||||
|           elseif luasnip.jumpable(-1) then | ||||
|             luasnip.jump(-1) | ||||
|           else | ||||
|             fallback() | ||||
|           end | ||||
|         end, { "i", "s" }), | ||||
|         ["<CR>"] = cmp.mapping({ | ||||
|           i = function(fallback) | ||||
|             if cmp.visible() and cmp.get_active_entry() then | ||||
|               cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }) | ||||
|             else | ||||
|               fallback() | ||||
|             end | ||||
|           end, | ||||
|           s = cmp.mapping.confirm({ select = true }), | ||||
|           c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), | ||||
|         }), | ||||
|       }) | ||||
|     end, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										6
									
								
								nvim/lua/plugins/gitsigns.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								nvim/lua/plugins/gitsigns.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| return { | ||||
|   "lewis6991/gitsigns.nvim", | ||||
|   opts = { | ||||
|     _extmark_signs = false, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										19
									
								
								nvim/lua/plugins/lsp.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								nvim/lua/plugins/lsp.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| return { | ||||
|   { | ||||
|     "williamboman/mason.nvim", | ||||
|     opts = function(_, opts) | ||||
|       vim.list_extend(opts.ensure_installed, { | ||||
|         "stylua", | ||||
|         "selene", | ||||
|         "luacheck", | ||||
|         "shellcheck", | ||||
|         "shfmt", | ||||
|         "tailwindcss-language-server", | ||||
|         "typescript-language-server", | ||||
|         "css-lsp", | ||||
|         "solargraph", | ||||
|         "gopls", | ||||
|       }) | ||||
|     end, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										8
									
								
								nvim/lua/plugins/nvim-notify.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nvim/lua/plugins/nvim-notify.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| return { | ||||
|   "rcarriga/nvim-notify", | ||||
|   config = function(_, opts) | ||||
|     require("notify").setup(vim.tbl_extend("keep", { | ||||
|       background_colour = "#000000", | ||||
|     }, opts)) | ||||
|   end, | ||||
| } | ||||
							
								
								
									
										11
									
								
								nvim/lua/plugins/refactoring.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nvim/lua/plugins/refactoring.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| return { | ||||
|   "ThePrimeagen/refactoring.nvim", | ||||
|   lazy_load = true, | ||||
|   dependencies = { | ||||
|     "nvim-lua/plenary.nvim", | ||||
|     "nvim-treesitter/nvim-treesitter", | ||||
|   }, | ||||
|   config = function() | ||||
|     require("refactoring").setup() | ||||
|   end, | ||||
| } | ||||
							
								
								
									
										34
									
								
								nvim/lua/plugins/treesitter.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								nvim/lua/plugins/treesitter.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| return { | ||||
|   { | ||||
|     "nvim-treesitter/nvim-treesitter", | ||||
|     opts = { | ||||
|       ensure_installed = { | ||||
|         "astro", | ||||
|         "cmake", | ||||
|         "cpp", | ||||
|         "css", | ||||
|         "fish", | ||||
|         "gitignore", | ||||
|         "go", | ||||
|         "graphql", | ||||
|         "http", | ||||
|         "java", | ||||
|         "php", | ||||
|         "rust", | ||||
|         "scss", | ||||
|         "sql", | ||||
|         "svelte", | ||||
|       }, | ||||
|     }, | ||||
|     config = function(_, opts) | ||||
|       require("nvim-treesitter.configs").setup(opts) | ||||
| 
 | ||||
|       vim.filetype.add({ | ||||
|         extension = { | ||||
|           mdx = "markdown", | ||||
|         }, | ||||
|       }) | ||||
|       vim.treesitter.language.register("markdown", "mdx") | ||||
|     end, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										8
									
								
								nvim/lua/plugins/twilight.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nvim/lua/plugins/twilight.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| return { | ||||
|   "folke/twilight.nvim", | ||||
|   opts = { | ||||
|     -- your configuration comes here | ||||
|     -- or leave it empty to use the default settings | ||||
|     -- refer to the configuration section below | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										85
									
								
								nvim/lua/plugins/ui.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								nvim/lua/plugins/ui.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,85 @@ | |||
| return { | ||||
|   { | ||||
|     "folke/noice.nvim", | ||||
|     opts = function(_, opts) | ||||
|       table.insert(opts.routes, { | ||||
|         filter = { | ||||
|           event = "notify", | ||||
|           find = "No information available", | ||||
|         }, | ||||
|         skip = true, | ||||
|       }) | ||||
|       opts.presets.lsp_doc_border = true | ||||
|     end, | ||||
|   }, | ||||
|   -- animations | ||||
|   { | ||||
|     "echasnovski/mini.animate", | ||||
|     event = "VeryLazy", | ||||
|     opts = function(_, opts) | ||||
|       opts.scroll = { | ||||
|         enable = false, | ||||
|       } | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- statusline | ||||
|   { | ||||
|     "nvim-lualine/lualine.nvim", | ||||
|     event = "VeryLazy", | ||||
|     opts = { | ||||
|       options = { | ||||
|         -- globalstatus = false, | ||||
|         theme = "vscode", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- filename | ||||
|   { | ||||
|     "b0o/incline.nvim", | ||||
|     dependencies = { "craftzdog/solarized-osaka.nvim" }, | ||||
|     event = "BufReadPre", | ||||
|     priority = 1200, | ||||
|     config = function() | ||||
|       local colors = require("solarized-osaka.colors").setup() | ||||
|       require("incline").setup({ | ||||
|         highlight = { | ||||
|           groups = { | ||||
|             InclineNormal = { guibg = colors.violet700, guifg = colors.base04 }, | ||||
|             InclineNormalNC = { guifg = colors.violet500, guibg = colors.base03 }, | ||||
|           }, | ||||
|         }, | ||||
|         window = { margin = { vertical = 0, horizontal = 1 } }, | ||||
|         hide = { | ||||
|           cursorline = true, | ||||
|         }, | ||||
|         render = function(props) | ||||
|           local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ":t") | ||||
|           if vim.bo[props.buf].modified then | ||||
|             filename = "[+] " .. filename | ||||
|           end | ||||
| 
 | ||||
|           local icon, color = require("nvim-web-devicons").get_icon_color(filename) | ||||
|           return { { icon, guifg = color }, { " " }, { filename } } | ||||
|         end, | ||||
|       }) | ||||
|     end, | ||||
|   }, | ||||
|   { | ||||
|     "nvimdev/dashboard-nvim", | ||||
|     event = "VimEnter", | ||||
|     opts = function(_, opts) | ||||
|       local logo = [[ | ||||
| ██████╗ ██╗      █████╗ ██╗  ██╗███████╗    ██████╗ ██╗██████╗  ██████╗ ██╗    ██╗ █████╗ ██╗   ██╗     | ||||
| ██╔══██╗██║     ██╔══██╗██║ ██╔╝██╔════╝    ██╔══██╗██║██╔══██╗██╔════╝ ██║    ██║██╔══██╗╚██╗ ██╔╝     | ||||
| ██████╔╝██║     ███████║█████╔╝ █████╗      ██████╔╝██║██║  ██║██║  ███╗██║ █╗ ██║███████║ ╚████╔╝      | ||||
| ██╔══██╗██║     ██╔══██║██╔═██╗ ██╔══╝      ██╔══██╗██║██║  ██║██║   ██║██║███╗██║██╔══██║  ╚██╔╝       | ||||
| ██████╔╝███████╗██║  ██║██║  ██╗███████╗    ██║  ██║██║██████╔╝╚██████╔╝╚███╔███╔╝██║  ██║   ██║        | ||||
| ╚═════╝ ╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝    ╚═╝  ╚═╝╚═╝╚═════╝  ╚═════╝  ╚══╝╚══╝ ╚═╝  ╚═╝   ╚═╝        | ||||
| ]] | ||||
|       logo = string.rep("\n", 8) .. logo .. "\n\n" | ||||
|       opts.config.header = vim.split(logo, "\n") | ||||
|     end, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										8
									
								
								nvim/lua/plugins/zen.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nvim/lua/plugins/zen.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| return { | ||||
|   "folke/zen-mode.nvim", | ||||
|   opts = { | ||||
|     -- your configuration comes here | ||||
|     -- or leave it empty to use the default settings | ||||
|     -- refer to the configuration section below | ||||
|   }, | ||||
| } | ||||
|  | @ -1,266 +0,0 @@ | |||
| -- Automatically generated packer.nvim plugin loader code | ||||
| 
 | ||||
| if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then | ||||
|   vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') | ||||
|   return | ||||
| end | ||||
| 
 | ||||
| vim.api.nvim_command('packadd packer.nvim') | ||||
| 
 | ||||
| local no_errors, error_msg = pcall(function() | ||||
| 
 | ||||
| _G._packer = _G._packer or {} | ||||
| _G._packer.inside_compile = true | ||||
| 
 | ||||
| local time | ||||
| local profile_info | ||||
| local should_profile = false | ||||
| if should_profile then | ||||
|   local hrtime = vim.loop.hrtime | ||||
|   profile_info = {} | ||||
|   time = function(chunk, start) | ||||
|     if start then | ||||
|       profile_info[chunk] = hrtime() | ||||
|     else | ||||
|       profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 | ||||
|     end | ||||
|   end | ||||
| else | ||||
|   time = function(chunk, start) end | ||||
| end | ||||
| 
 | ||||
| local function save_profiles(threshold) | ||||
|   local sorted_times = {} | ||||
|   for chunk_name, time_taken in pairs(profile_info) do | ||||
|     sorted_times[#sorted_times + 1] = {chunk_name, time_taken} | ||||
|   end | ||||
|   table.sort(sorted_times, function(a, b) return a[2] > b[2] end) | ||||
|   local results = {} | ||||
|   for i, elem in ipairs(sorted_times) do | ||||
|     if not threshold or threshold and elem[2] > threshold then | ||||
|       results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' | ||||
|     end | ||||
|   end | ||||
|   if threshold then | ||||
|     table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') | ||||
|   end | ||||
| 
 | ||||
|   _G._packer.profile_output = results | ||||
| end | ||||
| 
 | ||||
| time([[Luarocks path setup]], true) | ||||
| local package_path_str = "/home/bridgway/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/bridgway/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/bridgway/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/bridgway/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" | ||||
| local install_cpath_pattern = "/home/bridgway/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" | ||||
| if not string.find(package.path, package_path_str, 1, true) then | ||||
|   package.path = package.path .. ';' .. package_path_str | ||||
| end | ||||
| 
 | ||||
| if not string.find(package.cpath, install_cpath_pattern, 1, true) then | ||||
|   package.cpath = package.cpath .. ';' .. install_cpath_pattern | ||||
| end | ||||
| 
 | ||||
| time([[Luarocks path setup]], false) | ||||
| time([[try_loadstring definition]], true) | ||||
| local function try_loadstring(s, component, name) | ||||
|   local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) | ||||
|   if not success then | ||||
|     vim.schedule(function() | ||||
|       vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) | ||||
|     end) | ||||
|   end | ||||
|   return result | ||||
| end | ||||
| 
 | ||||
| time([[try_loadstring definition]], false) | ||||
| time([[Defining packer_plugins]], true) | ||||
| _G.packer_plugins = { | ||||
|   ["Comment.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/Comment.nvim", | ||||
|     url = "https://github.com/numToStr/Comment.nvim" | ||||
|   }, | ||||
|   LuaSnip = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/LuaSnip", | ||||
|     url = "https://github.com/L3MON4D3/LuaSnip" | ||||
|   }, | ||||
|   ["cmp-buffer"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/cmp-buffer", | ||||
|     url = "https://github.com/hrsh7th/cmp-buffer" | ||||
|   }, | ||||
|   ["cmp-nvim-lsp"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", | ||||
|     url = "https://github.com/hrsh7th/cmp-nvim-lsp" | ||||
|   }, | ||||
|   ["cmp-path"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/cmp-path", | ||||
|     url = "https://github.com/hrsh7th/cmp-path" | ||||
|   }, | ||||
|   cmp_luasnip = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/cmp_luasnip", | ||||
|     url = "https://github.com/saadparwaiz1/cmp_luasnip" | ||||
|   }, | ||||
|   ["friendly-snippets"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/friendly-snippets", | ||||
|     url = "https://github.com/rafamadriz/friendly-snippets" | ||||
|   }, | ||||
|   ["gitsigns.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/gitsigns.nvim", | ||||
|     url = "https://github.com/lewis6991/gitsigns.nvim" | ||||
|   }, | ||||
|   ["lspkind.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/lspkind.nvim", | ||||
|     url = "https://github.com/onsails/lspkind.nvim" | ||||
|   }, | ||||
|   ["lspsaga.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/lspsaga.nvim", | ||||
|     url = "https://github.com/glepnir/lspsaga.nvim" | ||||
|   }, | ||||
|   ["lualine.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/lualine.nvim", | ||||
|     url = "https://github.com/nvim-lualine/lualine.nvim" | ||||
|   }, | ||||
|   ["mason-lspconfig.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim", | ||||
|     url = "https://github.com/williamboman/mason-lspconfig.nvim" | ||||
|   }, | ||||
|   ["mason-null-ls.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/mason-null-ls.nvim", | ||||
|     url = "https://github.com/jayp0521/mason-null-ls.nvim" | ||||
|   }, | ||||
|   ["mason.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/mason.nvim", | ||||
|     url = "https://github.com/williamboman/mason.nvim" | ||||
|   }, | ||||
|   ["null-ls.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/null-ls.nvim", | ||||
|     url = "https://github.com/jose-elias-alvarez/null-ls.nvim" | ||||
|   }, | ||||
|   ["nvim-autopairs"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/nvim-autopairs", | ||||
|     url = "https://github.com/windwp/nvim-autopairs" | ||||
|   }, | ||||
|   ["nvim-cmp"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/nvim-cmp", | ||||
|     url = "https://github.com/hrsh7th/nvim-cmp" | ||||
|   }, | ||||
|   ["nvim-lspconfig"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", | ||||
|     url = "https://github.com/neovim/nvim-lspconfig" | ||||
|   }, | ||||
|   ["nvim-tree.lua"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/nvim-tree.lua", | ||||
|     url = "https://github.com/nvim-tree/nvim-tree.lua" | ||||
|   }, | ||||
|   ["nvim-treesitter"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/nvim-treesitter", | ||||
|     url = "https://github.com/nvim-treesitter/nvim-treesitter" | ||||
|   }, | ||||
|   ["nvim-ts-autotag"] = { | ||||
|     load_after = {}, | ||||
|     loaded = true, | ||||
|     needs_bufread = false, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag", | ||||
|     url = "https://github.com/windwp/nvim-ts-autotag" | ||||
|   }, | ||||
|   ["nvim-web-devicons"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", | ||||
|     url = "https://github.com/nvim-tree/nvim-web-devicons" | ||||
|   }, | ||||
|   ["packer.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/packer.nvim", | ||||
|     url = "https://github.com/wbthomason/packer.nvim" | ||||
|   }, | ||||
|   ["plenary.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/plenary.nvim", | ||||
|     url = "https://github.com/nvim-lua/plenary.nvim" | ||||
|   }, | ||||
|   ["presence.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/presence.nvim", | ||||
|     url = "https://github.com/andweeb/presence.nvim" | ||||
|   }, | ||||
|   ["telescope-fzf-native.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim", | ||||
|     url = "https://github.com/nvim-telescope/telescope-fzf-native.nvim" | ||||
|   }, | ||||
|   ["telescope.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/telescope.nvim", | ||||
|     url = "https://github.com/nvim-telescope/telescope.nvim" | ||||
|   }, | ||||
|   ["typescript.nvim"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/typescript.nvim", | ||||
|     url = "https://github.com/jose-elias-alvarez/typescript.nvim" | ||||
|   }, | ||||
|   ["vim-ReplaceWithRegister"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/vim-ReplaceWithRegister", | ||||
|     url = "https://github.com/inkarkat/vim-ReplaceWithRegister" | ||||
|   }, | ||||
|   ["vim-maximizer"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/vim-maximizer", | ||||
|     url = "https://github.com/szw/vim-maximizer" | ||||
|   }, | ||||
|   ["vim-nightfly-guicolors"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/vim-nightfly-guicolors", | ||||
|     url = "https://github.com/bluz71/vim-nightfly-guicolors" | ||||
|   }, | ||||
|   ["vim-surround"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/vim-surround", | ||||
|     url = "https://github.com/tpope/vim-surround" | ||||
|   }, | ||||
|   ["vim-tmux-navigator"] = { | ||||
|     loaded = true, | ||||
|     path = "/home/bridgway/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator", | ||||
|     url = "https://github.com/christoomey/vim-tmux-navigator" | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| time([[Defining packer_plugins]], false) | ||||
| -- Load plugins in order defined by `after` | ||||
| time([[Sequenced loading]], true) | ||||
| vim.cmd [[ packadd nvim-treesitter ]] | ||||
| vim.cmd [[ packadd nvim-ts-autotag ]] | ||||
| time([[Sequenced loading]], false) | ||||
| 
 | ||||
| _G._packer.inside_compile = false | ||||
| if _G._packer.needs_bufread == true then | ||||
|   vim.cmd("doautocmd BufRead") | ||||
| end | ||||
| _G._packer.needs_bufread = false | ||||
| 
 | ||||
| if should_profile then save_profiles() end | ||||
| 
 | ||||
| end) | ||||
| 
 | ||||
| if not no_errors then | ||||
|   error_msg = error_msg:gsub('"', '\\"') | ||||
|   vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') | ||||
| end | ||||
							
								
								
									
										3
									
								
								nvim/stylua.toml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								nvim/stylua.toml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| indent_type = "Spaces" | ||||
| indent_width = 2 | ||||
| column_width = 120 | ||||
							
								
								
									
										24
									
								
								post_install
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								post_install
									
										
									
									
									
								
							|  | @ -24,9 +24,11 @@ PACKAGE_LIST=( | |||
|   git | ||||
|   golang | ||||
|   fd-find | ||||
|   kitty | ||||
|   java-openjdk | ||||
|   neofetch | ||||
|   neovim | ||||
|   protonup | ||||
|   python3 | ||||
|   python3-pip | ||||
|   ripgrep | ||||
|  | @ -41,6 +43,7 @@ FLATPAK_LIST=( | |||
|   com.bitwarden.desktop | ||||
|   com.discordapp.Discord | ||||
|   com.slack.Slack | ||||
|   net.davidotek.pupgui2 | ||||
|   md.obsidian.Obsidian | ||||
|   net.veloren.airshipper | ||||
| ) | ||||
|  | @ -49,7 +52,6 @@ echo ####################### | |||
| echo # Installing Packages # | ||||
| echo ####################### | ||||
| 
 | ||||
| # iterate through package and installs them | ||||
| for package_name in ${PACKAGE_LIST[@]}; do | ||||
|   if ! sudo dnf list --installed | grep -q "^\<$package_name\>"; then | ||||
|     echo "Installing $package_name..." | ||||
|  | @ -97,10 +99,8 @@ echo ##################### | |||
| echo # Install Nerd Font # | ||||
| echo ##################### | ||||
| 
 | ||||
| # Nerd Font install | ||||
| wget https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hack/Regular/HackNerdFont-Regular.ttf | ||||
| mkdir -p ~/.local/share/fonts  | ||||
| cp Hack\ Regular\ Nerd\ Font\ Complete.ttf ~/.local/share/fonts/ | ||||
| wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/Hack.zip && unzip Hack.zip -d Hack | ||||
| mkdir -p ~/.local/share/fonts && cp Hack/HackNerdFont-regular.ttf ~/.local/share/fonts | ||||
| fc-cache -f -v | ||||
| 
 | ||||
| echo ###################### | ||||
|  | @ -115,17 +115,11 @@ echo ################## | |||
| 
 | ||||
| curl -sS https://starship.rs/install.sh | sh | ||||
| 
 | ||||
| echo ######################## | ||||
| echo # Creating Config File # | ||||
| echo ######################## | ||||
| echo ############### | ||||
| echo # Config File # | ||||
| echo ############### | ||||
| 
 | ||||
| mkdir -p ~/.config && touch ~/.config/starship.toml | ||||
| 
 | ||||
| echo ################### | ||||
| echo # Enabling Config # | ||||
| echo ################### | ||||
| 
 | ||||
| starship preset nerd-font-symbols > ~/.config/starship.toml | ||||
| cp terminal/starship.toml ~/.config/starship.toml | ||||
| 
 | ||||
| echo ################### | ||||
| echo # Setting up nvim # | ||||
|  |  | |||
							
								
								
									
										64
									
								
								terminal/starship.toml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								terminal/starship.toml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | |||
| format = """ | ||||
| [](#a3aed2)\ | ||||
| [  ](bg:#a3aed2 fg:#090c0c)\ | ||||
| [](bg:#769ff0 fg:#a3aed2)\ | ||||
| $directory\ | ||||
| [](fg:#769ff0 bg:#394260)\ | ||||
| $git_branch\ | ||||
| $git_status\ | ||||
| [](fg:#394260 bg:#212736)\ | ||||
| $nodejs\ | ||||
| $rust\ | ||||
| $golang\ | ||||
| $php\ | ||||
| [](fg:#212736 bg:#1d2230)\ | ||||
| $time\ | ||||
| [ ](fg:#1d2230)\ | ||||
| \n$character""" | ||||
| 
 | ||||
| [directory] | ||||
| style = "fg:#e3e5e5 bg:#769ff0" | ||||
| format = "[ $path ]($style)" | ||||
| truncation_length = 3 | ||||
| truncation_symbol = "…/" | ||||
| 
 | ||||
| [directory.substitutions] | ||||
| "Documents" = " " | ||||
| "Downloads" = " " | ||||
| "Music" = " " | ||||
| "Pictures" = " " | ||||
| 
 | ||||
| [git_branch] | ||||
| symbol = "" | ||||
| style = "bg:#394260" | ||||
| format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)' | ||||
| 
 | ||||
| [git_status] | ||||
| style = "bg:#394260" | ||||
| format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)' | ||||
| 
 | ||||
| [nodejs] | ||||
| symbol = "" | ||||
| style = "bg:#212736" | ||||
| format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' | ||||
| 
 | ||||
| [rust] | ||||
| symbol = "" | ||||
| style = "bg:#212736" | ||||
| format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' | ||||
| 
 | ||||
| [golang] | ||||
| symbol = "" | ||||
| style = "bg:#212736" | ||||
| format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' | ||||
| 
 | ||||
| [php] | ||||
| symbol = "" | ||||
| style = "bg:#212736" | ||||
| format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' | ||||
| 
 | ||||
| [time] | ||||
| disabled = false | ||||
| time_format = "%R" # Hour:Minute Format | ||||
| style = "bg:#1d2230" | ||||
| format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)' | ||||
							
								
								
									
										2
									
								
								vim/vim
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								vim/vim
									
										
									
									
									
								
							|  | @ -1 +1 @@ | |||
| /home/bridgway/dotfiles/vim | ||||
| /home/blake/dotfiles/vim | ||||
							
								
								
									
										2
									
								
								zsh/zsh
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								zsh/zsh
									
										
									
									
									
								
							|  | @ -1 +1 @@ | |||
| /home/bridgway/dotfiles/zsh | ||||
| /home/blake/dotfiles/zsh | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Blake Ridgway
						Blake Ridgway