mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 20:25:30 +00:00
feat: add Dotbot
This commit is contained in:
8
config/nvim/.gitignore
vendored
Normal file
8
config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
15
config/nvim/.neoconf.json
Normal file
15
config/nvim/.neoconf.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"sumneko_lua": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
202
config/nvim/LICENSE
Normal file
202
config/nvim/LICENSE
Normal file
@@ -0,0 +1,202 @@
|
||||
Apache License
|
||||
Test
|
||||
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
config/nvim/README.md
Normal file
4
config/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.
|
||||
532285
config/nvim/dictionary/de_neu.txt
Normal file
532285
config/nvim/dictionary/de_neu.txt
Normal file
File diff suppressed because it is too large
Load Diff
2
config/nvim/dictionary/de_user.txt
Normal file
2
config/nvim/dictionary/de_user.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
kogakure
|
||||
Imhoff
|
||||
118619
config/nvim/dictionary/en_us.txt
Normal file
118619
config/nvim/dictionary/en_us.txt
Normal file
File diff suppressed because it is too large
Load Diff
8
config/nvim/init.lua
Normal file
8
config/nvim/init.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
|
||||
-- Custom Highlight
|
||||
vim.api.nvim_set_hl(0, "WinSeparator", { fg = "#1F2334" })
|
||||
vim.api.nvim_set_hl(0, "DashboardHeader", { fg = "#A8CD76" })
|
||||
vim.api.nvim_set_hl(0, "DashboardFooter", { fg = "#A8CD76" })
|
||||
vim.api.nvim_set_hl(0, "DashboardIcon", { fg = "#A8CD76" })
|
||||
156
config/nvim/lazy-lock.json
Normal file
156
config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"ChatGPT.nvim": { "branch": "main", "commit": "f081338f07216a46d3915ce46c1fcb083bcb5016" },
|
||||
"CopilotChat.nvim": { "branch": "canary", "commit": "cfdf371cec954fccf5410315884e110d214d38fa" },
|
||||
"LazyVim": { "branch": "main", "commit": "12818a6cb499456f4903c5d8e68af43753ebc869" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "6ba091a30616aadeda531c7f27dfad263303f55d" },
|
||||
"aerial.nvim": { "branch": "master", "commit": "e75a3df2c20b3a98c786f5e61587d74a7a6b61d6" },
|
||||
"auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" },
|
||||
"baleia.nvim": { "branch": "main", "commit": "1b25eac3ac03659c3d3af75c7455e179e5f197f7" },
|
||||
"barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" },
|
||||
"base16-vim": { "branch": "master", "commit": "3be3cd82cd31acfcab9a41bad853d9c68d30478d" },
|
||||
"blamer.nvim": { "branch": "master", "commit": "e0d43c11697300eb68f00d69df8b87deb0bf52dc" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" },
|
||||
"catppuccin": { "branch": "main", "commit": "548b2a25415bb60e05c536b7658aa8ffbfeb3e45" },
|
||||
"chafa.nvim": { "branch": "main", "commit": "792c8f4f0e86b5e27c3602be4614f886f3a12a5a" },
|
||||
"cheatsheet.nvim": { "branch": "master", "commit": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-npm": { "branch": "main", "commit": "2337f109f51a09297596dd6b538b70ccba92b4e4" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"codeium.nvim": { "branch": "main", "commit": "f6a2ef32a9e923cb0104a19d3e426b0e40e49505" },
|
||||
"codewindow.nvim": { "branch": "master", "commit": "dd7017617962943eb1d152fc58940f11c6775a4a" },
|
||||
"committia.vim": { "branch": "master", "commit": "a187b8633694027ab5ef8a834527d33093282f95" },
|
||||
"conform.nvim": { "branch": "master", "commit": "0f4f299dfea09d2adfd7a1da05149a0844ac8eee" },
|
||||
"copilot-cmp": { "branch": "master", "commit": "b6e5286b3d74b04256d0a7e3bd2908eabec34b44" },
|
||||
"copilot.lua": { "branch": "master", "commit": "86537b286f18783f8b67bccd78a4ef4345679625" },
|
||||
"dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" },
|
||||
"dial.nvim": { "branch": "master", "commit": "ed4d6a5bbd5e479b4c4a3019d148561a2e6c1490" },
|
||||
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
|
||||
"editorconfig-vim": { "branch": "master", "commit": "8b7da79e9daee7a3f3a8d4fe29886b9756305aff" },
|
||||
"emmet-vim": { "branch": "master", "commit": "3fb2f63799e1922f7647ed9ff3b32154031a76ee" },
|
||||
"export-to-vscode.nvim": { "branch": "main", "commit": "7746bb67d03f6a6891cdedc8c760c95a5714fe8c" },
|
||||
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
|
||||
"fm-nvim": { "branch": "master", "commit": "8e6a77049330e7c797eb9e63affd75eb796fe75e" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||
"fzf": { "branch": "master", "commit": "c423c496a15b96cfc3c3fbd09135bcdc0c8e6b6e" },
|
||||
"fzf-lua": { "branch": "main", "commit": "2c4f76ac810de3b1ef91f06371ebc3cff55b1b3c" },
|
||||
"fzf.vim": { "branch": "master", "commit": "6f28c8c7bb551161a0315a76488522204f39c1f4" },
|
||||
"gen.nvim": { "branch": "main", "commit": "5c153aae3e3f2c39fe424b992127aa43cf1a0293" },
|
||||
"gh.nvim": { "branch": "main", "commit": "ebbaac254ef7dd6f85b439825fbce82d0dc84515" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "562dc47189ad3c8696dbf460d38603a74d544849" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "22f1571d2c60883b3fbf05e90f04cabde056fe3e" },
|
||||
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
|
||||
"harpoon-lualine": { "branch": "master", "commit": "d1b873c19b701fd80d60a67d086dbb3bcc4eb00e" },
|
||||
"highlight-undo.nvim": { "branch": "main", "commit": "1ea1c79372d7d93c88fd97543880927b7635e3d2" },
|
||||
"inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "dddb5d21811c319eb6e51a993d8fb44b193aae3f" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
|
||||
"lazygit.nvim": { "branch": "main", "commit": "dc56df433bfbf107fee0139e187eb9750878fa84" },
|
||||
"legendary.nvim": { "branch": "master", "commit": "c89be94fe96dc5eaba67ad9371263bc1eac75044" },
|
||||
"lf.nvim": { "branch": "master", "commit": "69ab1efcffee6928bf68ac9bd0c016464d9b2c8b" },
|
||||
"litee.nvim": { "branch": "main", "commit": "4efaf373322d9e71eaff31164abb393417cc6f6a" },
|
||||
"lsp-progress.nvim": { "branch": "main", "commit": "d5f4d28efe75ce636bfbe271eb45f39689765aab" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
|
||||
"lush.nvim": { "branch": "main", "commit": "6a254139d077ad53be7e4f3602c8da0c84447fd9" },
|
||||
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"mini.ai": { "branch": "main", "commit": "a9b992b13d22a8db8df6beac25afa59a10b5584d" },
|
||||
"mini.animate": { "branch": "main", "commit": "320fb35460238c436407cd779f63abad98e84870" },
|
||||
"mini.icons": { "branch": "main", "commit": "fe63fe080e76d80713557e5f0c65bc15b14b152d" },
|
||||
"mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
|
||||
"mini.surround": { "branch": "main", "commit": "57caca9525cec0ea771a67326b0ee637d056078a" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" },
|
||||
"neogit": { "branch": "master", "commit": "2b74a777b963dfdeeabfabf84d5ba611666adab4" },
|
||||
"neotest": { "branch": "master", "commit": "32ff2ac21135a372a42b38ae131e531e64833bd3" },
|
||||
"neotest-golang": { "branch": "main", "commit": "58a174e5526b0edd2cf0829a6cf98efe3d49f209" },
|
||||
"neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" },
|
||||
"neotest-rspec": { "branch": "main", "commit": "53fc108a06ae43d7f873d42ee5189c2301e33623" },
|
||||
"neotest-vitest": { "branch": "main", "commit": "353364aa05b94b09409cbef21b79c97c5564e2ce" },
|
||||
"night-owl.nvim": { "branch": "main", "commit": "87486a7157d49bc9ed43aab89432672deaf03110" },
|
||||
"noctis.nvim": { "branch": "main", "commit": "0b9336e39c686a7e58de06e4dd38c2bd862a7b33" },
|
||||
"noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" },
|
||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "194ec600488f7c7229668d0e80bd197f3a2b84ff" },
|
||||
"nvim-cursorline": { "branch": "main", "commit": "804f0023692653b2b2368462d67d2a87056947f9" },
|
||||
"nvim-dap": { "branch": "master", "commit": "9b81479813c5b1e79d2c7e2df6dc99aa1580bc19" },
|
||||
"nvim-dap-go": { "branch": "main", "commit": "5511788255c92bdd845f8d9690f88e2e0f0ff9f2" },
|
||||
"nvim-dap-ruby": { "branch": "main", "commit": "4176405d186a93ebec38a6344df124b1689cfcfd" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "484995d573c0f0563f6a66ebdd6c67b649489615" },
|
||||
"nvim-lint": { "branch": "master", "commit": "906cd0012be2acbf98de87a3c25154abe7da0478" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "652386deae739e38fa1bcf2f06e3e7de9b3436ba" },
|
||||
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
|
||||
"nvim-silicon": { "branch": "main", "commit": "feb882f04c992b797daa118101a239fb3bedfc04" },
|
||||
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
|
||||
"nvim-transparent": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "3d1f5e7df8d9981ec0bcf4aa635c0cc0a7ee89d9" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ca93cb2c34b67ab22d01976fc90bc95627a3317f" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "7dcb8fea3e7b3ccdb50f2c3ae7c248cdf6fe1ae1" },
|
||||
"nvim-various-textobjs": { "branch": "main", "commit": "52343c70e2487095cafd4a5000d0465a2b992b03" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
|
||||
"oatmeal.nvim": { "branch": "master", "commit": "c8cdd0a182cf77f88ea5fa4703229ddb3f47c1f7" },
|
||||
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
|
||||
"oil.nvim": { "branch": "master", "commit": "fcca212c2e966fc3dec1d4baf888e670631d25d1" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
|
||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
||||
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
|
||||
"rainbow_csv": { "branch": "master", "commit": "3dbbfd7d17536aebfb80f571255548495574c32b" },
|
||||
"remote-nvim.nvim": { "branch": "main", "commit": "66fc20fd259401c7bb6ac5189ecb6283c2eb65d2" },
|
||||
"smart-open.nvim": { "branch": "0.2.x", "commit": "87626ee8748b9bba22093adec7bb58c63e7214f0" },
|
||||
"smart-splits.nvim": { "branch": "master", "commit": "dbd4d7212d6e9d180ab4197a52cee2ba31b2b749" },
|
||||
"sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" },
|
||||
"symbols-outline.nvim": { "branch": "master", "commit": "564ee65dfc9024bdde73a6621820866987cbb256" },
|
||||
"tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" },
|
||||
"tailwind-sorter.nvim": { "branch": "main", "commit": "1b60096635a1a1bef6b36b6c88a61ff437df5a15" },
|
||||
"tailwind-tools.nvim": { "branch": "master", "commit": "72f01ba654ffaf382c1df996b77cc53ec7860f70" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
|
||||
"telescope-file-browser.nvim": { "branch": "master", "commit": "a46780830b576049c675680650f773bedfa8677a" },
|
||||
"telescope-frecency.nvim": { "branch": "master", "commit": "25d01edae8a2d74bcaa706c003b2712bce1e3301" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
|
||||
"telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" },
|
||||
"telescope-github.nvim": { "branch": "master", "commit": "ee95c509901c3357679e9f2f9eaac3561c811736" },
|
||||
"telescope-heading.nvim": { "branch": "main", "commit": "e85c0f69cb64048f56e76548dcb2f10277576df9" },
|
||||
"telescope-import.nvim": { "branch": "main", "commit": "baa2d50be46c769a1cc942a9d5be049f314f4206" },
|
||||
"telescope-live-grep-args.nvim": { "branch": "master", "commit": "649b662a8f476fd2c0289570764459e95ebaa3f3" },
|
||||
"telescope-node-modules.nvim": { "branch": "main", "commit": "b846d33ff5763176dc14fc74c30941a2067c82fd" },
|
||||
"telescope-undo.nvim": { "branch": "main", "commit": "51be9ae7c42fc27c0b05505e3a0162e0f05fbb6a" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "3b1600d0fd5172ad9fae00987362ca0ef3d8895d" },
|
||||
"tmux-awesome-manager.nvim": { "branch": "master", "commit": "f266ba588249965a16df77bca3f8e9a241156d37" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" },
|
||||
"twilight.nvim": { "branch": "main", "commit": "1584c0b0a979b71fd86b18d302ba84e9aba85b1b" },
|
||||
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
|
||||
"vim-astro": { "branch": "main", "commit": "9b4674ecfe1dd84b5fb9b4de1653975de6e8e2e1" },
|
||||
"vim-bookmarks": { "branch": "master", "commit": "9cc5fa7ecc23b052bd524d07c85356c64b92aeef" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" },
|
||||
"vim-gh-line": { "branch": "master", "commit": "731751fdfa4f64a061dbc7088cb7b2f12e0828ad" },
|
||||
"vim-grammarous": { "branch": "master", "commit": "db46357465ce587d5325e816235b5e92415f8c05" },
|
||||
"vim-markdown": { "branch": "master", "commit": "a657e697376909c41475a686eeef7fc7a4972d94" },
|
||||
"vim-mundo": { "branch": "master", "commit": "2ceda8c65f7b3f9066820729fc02003a09df91f9" },
|
||||
"vim-nix": { "branch": "master", "commit": "e25cd0f2e5922f1f4d3cd969f92e35a9a327ffb0" },
|
||||
"vim-table-mode": { "branch": "master", "commit": "e4365bde024f73e205eefa2fb78e3029ddb92ea9" },
|
||||
"vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" },
|
||||
"vim-visincr": { "branch": "master", "commit": "57cd943a31b0b5ec36a884b5b5b8758843c74c1a" },
|
||||
"vim-visual-multi": { "branch": "master", "commit": "38b0e8d94a5499ccc17d6159763d32c79f53417b" },
|
||||
"vim-wakatime": { "branch": "master", "commit": "53bba6bb8342de9cbdafc82142a9b5e82008d858" },
|
||||
"vim-xtract": { "branch": "master", "commit": "65e47be935080f112f219b5f0bc1bf411c783f27" },
|
||||
"vimux": { "branch": "master", "commit": "c4ffa0b992798f3362b27642088dccb251aaef1e" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
|
||||
"worktrees.nvim": { "branch": "main", "commit": "9b705e702b29297009702e492c28c0277a5bb8fa" },
|
||||
"wrapping.nvim": { "branch": "master", "commit": "3a823200c297885b70515fa8d974e1763c578e26" },
|
||||
"zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" }
|
||||
}
|
||||
15
config/nvim/lazyvim.json
Normal file
15
config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.copilot",
|
||||
"lazyvim.plugins.extras.dap.core",
|
||||
"lazyvim.plugins.extras.editor.aerial",
|
||||
"lazyvim.plugins.extras.formatting.prettier",
|
||||
"lazyvim.plugins.extras.lang.go",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.yaml"
|
||||
],
|
||||
"news": {
|
||||
"NEWS.md": "6520"
|
||||
},
|
||||
"version": 6
|
||||
}
|
||||
55
config/nvim/lua/config/autocmds.lua
Normal file
55
config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
-- 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
|
||||
|
||||
-- Reload tmux config on save
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = { "*tmux.conf" },
|
||||
command = "execute 'silent !tmux source <afile> --silent'",
|
||||
})
|
||||
|
||||
-- Reload gitmux config on save
|
||||
vim.api.nvim_create_autocmd({ "BufRead" }, {
|
||||
pattern = { "gitmux.conf" },
|
||||
callback = function()
|
||||
vim.cmd([[set filetype=sh]])
|
||||
end,
|
||||
})
|
||||
|
||||
-- Restart yabai on config save
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = { ".yabairc" },
|
||||
command = "!yabai --restart-service",
|
||||
})
|
||||
|
||||
-- Add specific settings for Markdown files
|
||||
vim.api.nvim_create_autocmd({ "BufNewFile", "BufFilePre", "BufRead" }, {
|
||||
pattern = { "*.mdx", "*.md" },
|
||||
callback = function()
|
||||
vim.cmd([[set wrap linebreak nolist]])
|
||||
vim.cmd([[SoftWrapMode]])
|
||||
end,
|
||||
})
|
||||
|
||||
-- Evenly resize windows after resizing
|
||||
vim.api.nvim_create_autocmd({ "VimResized" }, {
|
||||
pattern = { "*" },
|
||||
callback = function()
|
||||
vim.cmd([[tabdo wincmd =]])
|
||||
end,
|
||||
})
|
||||
|
||||
-- Turn off paste mode when leaving insert mode
|
||||
vim.api.nvim_create_autocmd("InsertLeave", {
|
||||
pattern = { "*" },
|
||||
command = "set nopaste",
|
||||
})
|
||||
|
||||
-- Change conceallevel for JSON files
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "json", "jsonc" },
|
||||
callback = function()
|
||||
vim.wo.spell = false
|
||||
vim.wo.conceallevel = 0
|
||||
end,
|
||||
})
|
||||
51
config/nvim/lua/config/keymaps.lua
Normal file
51
config/nvim/lua/config/keymaps.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
-- 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
|
||||
rawset(_G, "vim", vim or {})
|
||||
|
||||
vim.keymap.set("n", "<leader>j", ":b#<CR>", { desc = "Toggle between buffers", noremap = true, silent = true })
|
||||
vim.keymap.set("n", ";;", "A;<ESC>", { desc = "Add semicolon to the end of the line", noremap = true, silent = true })
|
||||
vim.keymap.set("n", ",,", "A,<ESC>", { desc = "Add comma to the end of the line", noremap = true, silent = true })
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("v", "y", "myy`y", { desc = "Maintain the cursor position when yanking a visual selection", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "+", "<C-a>", { desc = "Increment", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "-", "<C-x>", { desc = "Decrement", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader>bx", ":bufdo bdelete<CR>", { desc = "Delete all buffers", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader>bsd", "<cmd>%bd|e#|bd#<cr>|'<cr>", { desc = "Delete surrounding buffers" })
|
||||
vim.keymap.set("n", "<leader>ut", ":set list!<CR>", { desc = "Toggle list", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "Y", "yg$", { desc = "Copy to the end of the line", noremap = true, silent = true })
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "n", "nzzzv", { desc = "Keep the window centered (next search result)", noremap = true, silent = true })
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "N", "Nzzzv", { desc = "Keep the window centered (previous search result)", noremap = true, silent = true })
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "<expr> j", "(v:count == 0 ? 'gj' : 'j')", { desc = "Move by rows in wrapped mode (down)", noremap = true, silent = true })
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "<expr> k", "(v:count == 0 ? 'gk' : 'k')", { desc = "Move by rows in wrapped mode (up)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "gP", "`[v`]", { desc = "Visually select of just pasted content", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "gy", "`[v`]y", { desc = "Visually select of just pasted content", noremap = true, silent = true })
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "<leader>wi", ":silent !open -a iA\\ Writer.app '%:p'<CR>", { desc = "Open in iA Writer", noremap = true, silent = true })
|
||||
|
||||
vim.keymap.set("n", "-", "<CMD>foldclose<CR>", { desc = "Close code fold" })
|
||||
vim.keymap.set("n", "+", "<CMD>foldopen<CR>", { desc = "Open code fold" })
|
||||
|
||||
vim.keymap.set("n", "<C-h>", function()
|
||||
require("smart-splits").move_cursor_left()
|
||||
end)
|
||||
vim.keymap.set("n", "<C-j>", function()
|
||||
require("smart-splits").move_cursor_down()
|
||||
end)
|
||||
vim.keymap.set("n", "<C-k>", function()
|
||||
require("smart-splits").move_cursor_up()
|
||||
end)
|
||||
vim.keymap.set("n", "<C-l>", function()
|
||||
require("smart-splits").move_cursor_right()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
|
||||
vim.keymap.set("n", "]b", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
||||
|
||||
-- Visual Mode
|
||||
vim.keymap.set("v", "<", "<gv", { desc = "Stay in indent mode (left)", noremap = true, silent = true })
|
||||
vim.keymap.set("v", ">", ">gv", { desc = "Stay in indent mode (right)", noremap = true, silent = true })
|
||||
67
config/nvim/lua/config/lazy.lua
Normal file
67
config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
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)
|
||||
vim.cmd([[command! -nargs=0 GoToFile :Telescope find_files]])
|
||||
vim.cmd([[command! -nargs=0 GoToCommand :Telescope commands]])
|
||||
vim.cmd([[command! -nargs=0 Grep :Telescope live_grep]])
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import any extras modules here
|
||||
{ import = "lazyvim.plugins.extras.coding.codeium" },
|
||||
{ import = "lazyvim.plugins.extras.coding.copilot" },
|
||||
{ import = "lazyvim.plugins.extras.coding.mini-surround" },
|
||||
{ import = "lazyvim.plugins.extras.dap.core" },
|
||||
{ import = "lazyvim.plugins.extras.editor.aerial" },
|
||||
{ import = "lazyvim.plugins.extras.editor.harpoon2" },
|
||||
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
||||
{ import = "lazyvim.plugins.extras.lang.go" },
|
||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||
{ import = "lazyvim.plugins.extras.lang.ruby" },
|
||||
{ import = "lazyvim.plugins.extras.lang.tailwind" },
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
||||
{ import = "lazyvim.plugins.extras.linting.eslint" },
|
||||
{ import = "lazyvim.plugins.extras.test.core" },
|
||||
{ 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,
|
||||
notify = false,
|
||||
frequency = 86400,
|
||||
},
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
48
config/nvim/lua/config/options.lua
Normal file
48
config/nvim/lua/config/options.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
-- 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
|
||||
vim.opt.autowrite = true
|
||||
vim.opt.backspace = { "indent", "eol", "start" } -- Intuitive backspacing
|
||||
vim.opt.copyindent = true
|
||||
vim.opt.foldlevel = 2
|
||||
vim.opt.fillchars = "fold: "
|
||||
vim.opt.cursorline = false
|
||||
vim.opt.foldlevelstart = 99
|
||||
vim.opt.foldmethod = "indent"
|
||||
vim.opt.foldnestmax = 10
|
||||
vim.opt.grepprg = "rg --vimgrep --no-heading --smart-case"
|
||||
vim.opt.listchars = { tab = "↦ ", trail = "·", nbsp = ".", extends = "❯", precedes = "❮" }
|
||||
vim.opt.showbreak = "↪"
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.title = true
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.virtualedit = "block,insert"
|
||||
vim.opt.conceallevel = 2
|
||||
|
||||
vim.opt.iskeyword:append("-") -- Add dashes to words
|
||||
vim.opt.wildignore:append({ "*/node_modules/*" }) -- Wildignore
|
||||
vim.opt.complete:append({ "i", "k", "s", "kspell" })
|
||||
|
||||
-- Only the project root should be the root
|
||||
vim.g.root_spec = { ".git" }
|
||||
|
||||
-- Undercurl
|
||||
vim.cmd([[let &t_Cs = "\e[4:3m"]])
|
||||
vim.cmd([[let &t_Ce = "\e[4:0m"]])
|
||||
|
||||
-- FIXME: When using "vim.opt.spellfile:append("~/.config/…) the file is not writable"
|
||||
vim.cmd([[
|
||||
" Spell Checker
|
||||
set spellfile+=~/.config/nvim/spell/en.utf-8.add
|
||||
|
||||
" Custom Dictionaries (<C-x> <C-k>)
|
||||
set dictionary+=~/.config/nvim/dictionary/de_user.txt
|
||||
set dictionary+=~/.config/nvim/dictionary/de_neu.txt
|
||||
set dictionary+=~/.config/nvim/dictionary/en_us.txt
|
||||
|
||||
" Custom Thesauri (Synonyms) (<C-x> <C-t>)
|
||||
set thesaurus+=~/.config/nvim/thesaurus/de_user.txt
|
||||
set thesaurus+=~/.config/nvim/thesaurus/de_openthesaurus.txt
|
||||
]])
|
||||
177
config/nvim/lua/lualine/themes/custom.lua
Normal file
177
config/nvim/lua/lualine/themes/custom.lua
Normal file
@@ -0,0 +1,177 @@
|
||||
-- Copyright (c) 2020-2021 shadmansaleh
|
||||
-- MIT license, see LICENSE for more details.
|
||||
local utils = require("lualine.utils.utils")
|
||||
local loader = require("lualine.utils.loader")
|
||||
|
||||
local custom = {
|
||||
A = "#1F2335",
|
||||
B = "#24283B",
|
||||
}
|
||||
|
||||
local color_name = vim.g.colors_name
|
||||
if color_name then
|
||||
-- All base16 colorschemes share the same theme
|
||||
if "base16" == color_name:sub(1, 6) then
|
||||
color_name = "base16"
|
||||
end
|
||||
|
||||
-- Check if there's a theme for current colorscheme
|
||||
-- If there is load that instead of generating a new one
|
||||
local ok, theme = pcall(loader.load_theme, color_name)
|
||||
if ok and theme then
|
||||
return theme
|
||||
end
|
||||
end
|
||||
|
||||
---------------
|
||||
-- Constants --
|
||||
---------------
|
||||
-- fg and bg must have this much contrast range 0 < contrast_threshold < 0.5
|
||||
local contrast_threshold = 0.3
|
||||
-- how much brightness is changed in percentage for light and dark themes
|
||||
local brightness_modifier_parameter = 10
|
||||
|
||||
-- Turns #rrggbb -> { red, green, blue }
|
||||
local function rgb_str2num(rgb_color_str)
|
||||
if rgb_color_str:find("#") == 1 then
|
||||
rgb_color_str = rgb_color_str:sub(2, #rgb_color_str)
|
||||
end
|
||||
local red = tonumber(rgb_color_str:sub(1, 2), 16)
|
||||
local green = tonumber(rgb_color_str:sub(3, 4), 16)
|
||||
local blue = tonumber(rgb_color_str:sub(5, 6), 16)
|
||||
return { red = red, green = green, blue = blue }
|
||||
end
|
||||
|
||||
-- Turns { red, green, blue } -> #rrggbb
|
||||
local function rgb_num2str(rgb_color_num)
|
||||
local rgb_color_str = string.format("#%02x%02x%02x", rgb_color_num.red, rgb_color_num.green, rgb_color_num.blue)
|
||||
return rgb_color_str
|
||||
end
|
||||
|
||||
-- Returns brightness level of color in range 0 to 1
|
||||
-- arbitrary value it's basically an weighted average
|
||||
local function get_color_brightness(rgb_color)
|
||||
local color = rgb_str2num(rgb_color)
|
||||
local brightness = (color.red * 2 + color.green * 3 + color.blue) / 6
|
||||
return brightness / 256
|
||||
end
|
||||
|
||||
-- returns average of colors in range 0 to 1
|
||||
-- used to determine contrast level
|
||||
local function get_color_avg(rgb_color)
|
||||
local color = rgb_str2num(rgb_color)
|
||||
return (color.red + color.green + color.blue) / 3 / 256
|
||||
end
|
||||
|
||||
-- Clamps the val between left and right
|
||||
local function clamp(val, left, right)
|
||||
if val > right then
|
||||
return right
|
||||
end
|
||||
if val < left then
|
||||
return left
|
||||
end
|
||||
return val
|
||||
end
|
||||
|
||||
-- Changes brightness of rgb_color by percentage
|
||||
local function brightness_modifier(rgb_color, parcentage)
|
||||
local color = rgb_str2num(rgb_color)
|
||||
color.red = clamp(color.red + (color.red * parcentage / 100), 0, 255)
|
||||
color.green = clamp(color.green + (color.green * parcentage / 100), 0, 255)
|
||||
color.blue = clamp(color.blue + (color.blue * parcentage / 100), 0, 255)
|
||||
return rgb_num2str(color)
|
||||
end
|
||||
|
||||
-- Changes contrast of rgb_color by amount
|
||||
local function contrast_modifier(rgb_color, amount)
|
||||
local color = rgb_str2num(rgb_color)
|
||||
color.red = clamp(color.red + amount, 0, 255)
|
||||
color.green = clamp(color.green + amount, 0, 255)
|
||||
color.blue = clamp(color.blue + amount, 0, 255)
|
||||
return rgb_num2str(color)
|
||||
end
|
||||
|
||||
-- Changes brightness of foreground color to achieve contrast
|
||||
-- without changing the color
|
||||
local function apply_contrast(highlight)
|
||||
local hightlight_bg_avg = get_color_avg(highlight.bg)
|
||||
local contrast_threshold_config = clamp(contrast_threshold, 0, 0.5)
|
||||
local contranst_change_step = 5
|
||||
if hightlight_bg_avg > 0.5 then
|
||||
contranst_change_step = -contranst_change_step
|
||||
end
|
||||
|
||||
-- Don't waste too much time here max 25 iteration should be more than enough
|
||||
local iteration_count = 1
|
||||
while math.abs(get_color_avg(highlight.fg) - hightlight_bg_avg) < contrast_threshold_config and iteration_count < 25 do
|
||||
highlight.fg = contrast_modifier(highlight.fg, contranst_change_step)
|
||||
iteration_count = iteration_count + 1
|
||||
end
|
||||
end
|
||||
|
||||
-- Get the colors to create theme
|
||||
-- stylua: ignore
|
||||
local colors = {
|
||||
normal = utils.extract_color_from_hllist('bg', { 'PmenuSel', 'PmenuThumb', 'TabLineSel' }, '#000000'),
|
||||
insert = utils.extract_color_from_hllist('fg', { 'String', 'MoreMsg' }, '#000000'),
|
||||
replace = utils.extract_color_from_hllist('fg', { 'Number', 'Type' }, '#000000'),
|
||||
visual = utils.extract_color_from_hllist('fg', { 'Special', 'Boolean', 'Constant' }, '#000000'),
|
||||
command = utils.extract_color_from_hllist('fg', { 'Identifier' }, '#000000'),
|
||||
back1 = utils.extract_color_from_hllist('bg', { 'Normal', 'StatusLineNC' }, '#000000'),
|
||||
fore = utils.extract_color_from_hllist('fg', { 'Normal', 'StatusLine' }, '#000000'),
|
||||
back2 = utils.extract_color_from_hllist('bg', { 'StatusLine' }, '#000000'),
|
||||
}
|
||||
|
||||
-- Change brightness of colors
|
||||
-- Darken if light theme (or) Lighten if dark theme
|
||||
local normal_color = utils.extract_highlight_colors("Normal", "bg")
|
||||
if normal_color ~= nil then
|
||||
if get_color_brightness(normal_color) > 0.5 then
|
||||
brightness_modifier_parameter = -brightness_modifier_parameter
|
||||
end
|
||||
for name, color in pairs(colors) do
|
||||
colors[name] = brightness_modifier(color, brightness_modifier_parameter)
|
||||
end
|
||||
end
|
||||
|
||||
-- Basic theme definition
|
||||
local M = {
|
||||
normal = {
|
||||
a = { bg = colors.normal, fg = colors.back1, gui = "bold" },
|
||||
b = { bg = custom.B, fg = colors.normal },
|
||||
c = { bg = custom.A, fg = colors.fore },
|
||||
},
|
||||
insert = {
|
||||
a = { bg = colors.insert, fg = colors.back1, gui = "bold" },
|
||||
b = { bg = custom.B, fg = colors.insert },
|
||||
c = { bg = colors.back2, fg = colors.fore },
|
||||
},
|
||||
replace = {
|
||||
a = { bg = colors.replace, fg = colors.back1, gui = "bold" },
|
||||
b = { bg = custom.B, fg = colors.replace },
|
||||
c = { bg = colors.back2, fg = colors.fore },
|
||||
},
|
||||
visual = {
|
||||
a = { bg = colors.visual, fg = colors.back1, gui = "bold" },
|
||||
b = { bg = custom.B, fg = colors.visual },
|
||||
c = { bg = colors.back2, fg = colors.fore },
|
||||
},
|
||||
command = {
|
||||
a = { bg = colors.command, fg = colors.back1, gui = "bold" },
|
||||
b = { bg = custom.B, fg = colors.command },
|
||||
c = { bg = colors.back2, fg = colors.fore },
|
||||
},
|
||||
}
|
||||
|
||||
M.terminal = M.command
|
||||
M.inactive = M.normal
|
||||
|
||||
-- Apply proper contrast so text is readable
|
||||
for _, section in pairs(M) do
|
||||
for _, highlight in pairs(section) do
|
||||
apply_contrast(highlight)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
42
config/nvim/lua/lualine/themes/transparent.lua
Normal file
42
config/nvim/lua/lualine/themes/transparent.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
local colors = {
|
||||
white = "#ffffff",
|
||||
blue = "#88A1BB",
|
||||
green = "#b7d670",
|
||||
magenta = "#a889d2",
|
||||
orange = "#fd9f4d",
|
||||
yellow = "#f3fa9b",
|
||||
transparent = "None",
|
||||
}
|
||||
|
||||
return {
|
||||
normal = {
|
||||
a = { bg = colors.transparent, fg = colors.blue, gui = "bold" },
|
||||
b = { bg = colors.transparent, fg = colors.white },
|
||||
c = { bg = colors.transparent, fg = colors.white },
|
||||
},
|
||||
insert = {
|
||||
a = { bg = colors.transparent, fg = colors.green, gui = "bold" },
|
||||
b = { bg = colors.transparent, fg = colors.white },
|
||||
c = { bg = colors.transparent, fg = colors.white },
|
||||
},
|
||||
visual = {
|
||||
a = { bg = colors.transparent, fg = colors.magenta, gui = "bold" },
|
||||
b = { bg = colors.transparent, fg = colors.white },
|
||||
c = { bg = colors.transparent, fg = colors.white },
|
||||
},
|
||||
replace = {
|
||||
a = { bg = colors.transparent, fg = colors.orange, gui = "bold" },
|
||||
b = { bg = colors.transparent, fg = colors.white },
|
||||
c = { bg = colors.transparent, fg = colors.white },
|
||||
},
|
||||
command = {
|
||||
a = { bg = colors.transparent, fg = colors.yellow, gui = "bold" },
|
||||
b = { bg = colors.transparent, fg = colors.white },
|
||||
c = { bg = colors.transparent, fg = colors.white },
|
||||
},
|
||||
inactive = {
|
||||
a = { bg = colors.transparent, fg = colors.white, gui = "bold" },
|
||||
b = { bg = colors.transparent, fg = colors.white },
|
||||
c = { bg = colors.transparent, fg = colors.white },
|
||||
},
|
||||
}
|
||||
9
config/nvim/lua/plugins/abolish.lua
Normal file
9
config/nvim/lua/plugins/abolish.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Automatically fix spelling mistakes
|
||||
-- https://github.com/tpope/vim-abolish
|
||||
return {
|
||||
"tpope/vim-abolish",
|
||||
config = function()
|
||||
vim.api.nvim_command("Abolish teh the")
|
||||
vim.api.nvim_command("Abolish {despa,sepe}rat{e,es,ed,ing,ely,ion,ions,or} {despe,sepa}rat{}")
|
||||
end,
|
||||
}
|
||||
22
config/nvim/lua/plugins/aerial.lua
Normal file
22
config/nvim/lua/plugins/aerial.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
-- aerical.nvim
|
||||
-- https://github.com/stevearc/aerial.nvim
|
||||
return {
|
||||
"stevearc/aerial.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
config = function()
|
||||
require("aerial").setup({
|
||||
on_attach = function(bufnr)
|
||||
-- Jump forwards/backwards with '{' and '}'
|
||||
vim.keymap.set("n", "{", "<cmd>AerialPrev<CR>", { buffer = bufnr })
|
||||
vim.keymap.set("n", "}", "<cmd>AerialNext<CR>", { buffer = bufnr })
|
||||
end,
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{ "<leader>A", "<cmd>AerialToggle!<CR>", desc = "Aerial" },
|
||||
},
|
||||
}
|
||||
8
config/nvim/lua/plugins/astro.lua
Normal file
8
config/nvim/lua/plugins/astro.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Astro support
|
||||
-- https://github.com/wuelnerdotexe/vim-astro
|
||||
return {
|
||||
"wuelnerdotexe/vim-astro",
|
||||
config = function()
|
||||
vim.g.astro_typescript = "enable"
|
||||
end,
|
||||
}
|
||||
8
config/nvim/lua/plugins/auto-save.lua
Normal file
8
config/nvim/lua/plugins/auto-save.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- 🧶 Automatically save your changes in NeoVim
|
||||
-- https://github.com/pocco81/auto-save.nvim
|
||||
return {
|
||||
"Pocco81/auto-save.nvim",
|
||||
keys = {
|
||||
{ "<leader>as", "<Cmd>ASToggle<CR>", desc = "Autosave Toggle" },
|
||||
},
|
||||
}
|
||||
10
config/nvim/lua/plugins/autotag.lua
Normal file
10
config/nvim/lua/plugins/autotag.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Use treesitter to auto close and auto rename HTML tags
|
||||
-- https://github.com/windwp/nvim-ts-autotag
|
||||
return {
|
||||
"windwp/nvim-ts-autotag",
|
||||
config = function()
|
||||
require("nvim-ts-autotag").setup({
|
||||
disable_filetype = { "TelescopePrompt", "vim" },
|
||||
})
|
||||
end,
|
||||
}
|
||||
15
config/nvim/lua/plugins/barbecue.lua
Normal file
15
config/nvim/lua/plugins/barbecue.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
-- barbecue.nvim
|
||||
-- https://github.com/utilyre/barbecue.nvim
|
||||
return {
|
||||
"utilyre/barbecue.nvim",
|
||||
name = "barbecue",
|
||||
version = "*",
|
||||
dependencies = {
|
||||
"SmiteshP/nvim-navic",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
config = function()
|
||||
require("barbecue").setup()
|
||||
require("barbecue.ui").toggle(true)
|
||||
end,
|
||||
}
|
||||
4
config/nvim/lua/plugins/base16.lua
Normal file
4
config/nvim/lua/plugins/base16.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
-- https://github.com/chriskempson/base16-vim
|
||||
return {
|
||||
"chriskempson/base16-vim",
|
||||
}
|
||||
14
config/nvim/lua/plugins/blamer.lua
Normal file
14
config/nvim/lua/plugins/blamer.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
-- Show Git blame inline
|
||||
-- https://github.com/APZelos/blamer.nvim
|
||||
return {
|
||||
"APZelos/blamer.nvim",
|
||||
keys = {
|
||||
-- stylua: ignore
|
||||
{ "<leader>gB", "<cmd>BlamerToggle<cr>", desc = "Git Blame" },
|
||||
},
|
||||
config = function()
|
||||
vim.g.blamer_enabled = 0
|
||||
vim.g.blamer_relative_time = 1
|
||||
vim.g.blamer_delay = 200
|
||||
end,
|
||||
}
|
||||
5
config/nvim/lua/plugins/bookmark.lua
Normal file
5
config/nvim/lua/plugins/bookmark.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Vim bookmark plugin
|
||||
-- https://github.com/MattesGroeger/vim-bookmarks
|
||||
return {
|
||||
"MattesGroeger/vim-bookmarks",
|
||||
}
|
||||
17
config/nvim/lua/plugins/bufferline.lua
Normal file
17
config/nvim/lua/plugins/bufferline.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
-- A snazzy bufferline for Neovim
|
||||
-- https://github.com/akinsho/bufferline.nvim
|
||||
return {
|
||||
"akinsho/bufferline.nvim",
|
||||
dependencies = "nvim-tree/nvim-web-devicons",
|
||||
keys = {
|
||||
{ "<Tab>", "<Cmd>BufferLineCycleNext<CR>", desc = "Next tab" },
|
||||
{ "<S-Tab>", "<Cmd>BufferLineCyclePrev<CR>", desc = "Prev tab" },
|
||||
},
|
||||
opts = {
|
||||
options = {
|
||||
mode = "tabs",
|
||||
show_buffer_close_icons = false,
|
||||
show_close_icon = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
7
config/nvim/lua/plugins/catppuccin.lua
Normal file
7
config/nvim/lua/plugins/catppuccin.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
-- https://github.com/catppuccin/nvim
|
||||
return {
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
},
|
||||
}
|
||||
20
config/nvim/lua/plugins/chafa.lua
Normal file
20
config/nvim/lua/plugins/chafa.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
-- View images in Neovim
|
||||
-- https://github.com/princejoogie/chafa.nvim
|
||||
return {
|
||||
"princejoogie/chafa.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"m00qek/baleia.nvim",
|
||||
},
|
||||
config = function()
|
||||
require("chafa").setup({
|
||||
render = {
|
||||
min_padding = 5,
|
||||
show_label = true,
|
||||
},
|
||||
events = {
|
||||
update_on_nvim_resize = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
29
config/nvim/lua/plugins/chatgpg.lua
Normal file
29
config/nvim/lua/plugins/chatgpg.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
-- ChatGPT Neovim Plugin
|
||||
-- https://github.com/jackMort/ChatGPT.nvim
|
||||
return {
|
||||
"jackMort/ChatGPT.nvim",
|
||||
event = "VeryLazy",
|
||||
keys = {
|
||||
{
|
||||
mode = "v",
|
||||
"<leader>e",
|
||||
function()
|
||||
require("chatgpt").edit_with_instructions()
|
||||
end,
|
||||
desc = "Edit with instructions",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local home = vim.fn.expand("$HOME")
|
||||
local file_path = home .. "/.config/nvim/lua/plugins/chatgpg.txt.gpg"
|
||||
require("chatgpt").setup({
|
||||
api_key_cmd = "gpg --decrypt --use-agent " .. file_path,
|
||||
})
|
||||
end,
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"folke/trouble.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
}
|
||||
BIN
config/nvim/lua/plugins/chatgpg.txt.gpg
Normal file
BIN
config/nvim/lua/plugins/chatgpg.txt.gpg
Normal file
Binary file not shown.
16
config/nvim/lua/plugins/cheatsheet.lua
Normal file
16
config/nvim/lua/plugins/cheatsheet.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Searchable Cheatsheet
|
||||
-- https://github.com/sudormrfbin/cheatsheet.nvim
|
||||
return {
|
||||
"sudormrfbin/cheatsheet.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-lua/popup.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>C", "<cmd>Cheatsheet<cr>", desc = "Cheatsheet" },
|
||||
},
|
||||
config = function()
|
||||
require("cheatsheet").setup()
|
||||
end,
|
||||
}
|
||||
47
config/nvim/lua/plugins/cmp.lua
Normal file
47
config/nvim/lua/plugins/cmp.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
{ "roobert/tailwindcss-colorizer-cmp.nvim", config = true },
|
||||
"zbirenbaum/copilot-cmp",
|
||||
"David-Kunz/cmp-npm",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
local cmp = require("cmp")
|
||||
opts.sources = cmp.config.sources(vim.list_extend(opts.sources, {
|
||||
{ name = "copilot" },
|
||||
{ name = "npm", keyword_length = 4 },
|
||||
}))
|
||||
|
||||
opts.formatting = {
|
||||
fields = { "kind", "abbr", "menu" },
|
||||
format = function(_, item)
|
||||
local icons = require("lazyvim.config").icons.kinds
|
||||
if icons[item.kind] then
|
||||
item.kind = icons[item.kind]
|
||||
end
|
||||
return item
|
||||
end,
|
||||
}
|
||||
|
||||
opts.window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
}
|
||||
|
||||
vim.api.nvim_set_hl(0, "CmpItemKindCopilot", { fg = "#6CC644" })
|
||||
vim.api.nvim_set_hl(0, "CmpItemAbbrMatch", { fg = "NONE", bg = "#000000" })
|
||||
|
||||
vim.cmd([[highlight! link CmpItemAbbrMatchFuzzy CmpItemAbbrMatch]])
|
||||
vim.cmd([[highlight! CmpItemAbbrDeprecated guibg=NONE gui=strikethrough guifg=#808080]])
|
||||
vim.cmd([[highlight! CmpItemAbbrMatch guibg=NONE guifg=#569CD6]])
|
||||
vim.cmd([[highlight! link CmpItemAbbrMatchFuzzy CmpItemAbbrMatch]])
|
||||
vim.cmd([[highlight! CmpItemKindVariable guibg=NONE guifg=#9CDCFE]])
|
||||
vim.cmd([[highlight! link CmpItemKindInterface CmpItemKindVariable]])
|
||||
vim.cmd([[highlight! link CmpItemKindText CmpItemKindVariable]])
|
||||
vim.cmd([[highlight! CmpItemKindFunction guibg=NONE guifg=#C586C0]])
|
||||
vim.cmd([[highlight! link CmpItemKindMethod CmpItemKindFunction]])
|
||||
vim.cmd([[highlight! CmpItemKindKeyword guibg=NONE guifg=#D4D4D4]])
|
||||
vim.cmd([[highlight! link CmpItemKindProperty CmpItemKindKeyword]])
|
||||
vim.cmd([[highlight! link CmpItemKindUnit CmpItemKindKeyword]])
|
||||
end,
|
||||
}
|
||||
12
config/nvim/lua/plugins/codewindow.lua
Normal file
12
config/nvim/lua/plugins/codewindow.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
-- Minimap
|
||||
-- https://github.com/gorbit99/codewindow.nvim
|
||||
return {
|
||||
"gorbit99/codewindow.nvim",
|
||||
config = function()
|
||||
local codewindow = require("codewindow")
|
||||
codewindow.setup({
|
||||
window_border = "none",
|
||||
})
|
||||
codewindow.apply_default_keybinds()
|
||||
end,
|
||||
}
|
||||
29
config/nvim/lua/plugins/colorizer.lua
Normal file
29
config/nvim/lua/plugins/colorizer.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
-- The fastest Neovim colorizer
|
||||
-- https://github.com/NvChad/nvim-colorizer.lua
|
||||
return {
|
||||
"NvChad/nvim-colorizer.lua",
|
||||
opts = {
|
||||
filetypes = {
|
||||
"css",
|
||||
"html",
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"yaml",
|
||||
"conf",
|
||||
"lua",
|
||||
},
|
||||
user_default_options = {
|
||||
RGB = true,
|
||||
RRGGBB = true,
|
||||
names = true,
|
||||
RRGGBBAA = true,
|
||||
rgb_fn = true,
|
||||
hsl_fn = true,
|
||||
css = true,
|
||||
css_fn = true,
|
||||
mode = "background",
|
||||
},
|
||||
},
|
||||
}
|
||||
7
config/nvim/lua/plugins/colorscheme-catppuccin.lua
Normal file
7
config/nvim/lua/plugins/colorscheme-catppuccin.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
-- https://github.com/catppuccin/nvim
|
||||
return {
|
||||
"catppuccin/nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
name = "catppuccin",
|
||||
}
|
||||
10
config/nvim/lua/plugins/colorscheme-night-owl.lua
Normal file
10
config/nvim/lua/plugins/colorscheme-night-owl.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- 🦉 🌌 Night Owl colorscheme implementation for Neovim with support for Treesitter and semantic tokens
|
||||
-- https://github.com/oxfist/night-owl.nvim
|
||||
return {
|
||||
"oxfist/night-owl.nvim",
|
||||
lazy = true,
|
||||
config = function()
|
||||
require("night-owl").setup()
|
||||
vim.cmd.colorscheme("night-owl")
|
||||
end,
|
||||
}
|
||||
6
config/nvim/lua/plugins/colorscheme-tokyonight.lua
Normal file
6
config/nvim/lua/plugins/colorscheme-tokyonight.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
-- https://github.com/folke/tokyonight.nvim
|
||||
return {
|
||||
"folke/tokyonight.nvim",
|
||||
lazy = true,
|
||||
opts = { style = "night" },
|
||||
}
|
||||
9
config/nvim/lua/plugins/colorschemes.lua
Normal file
9
config/nvim/lua/plugins/colorschemes.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Configure LazyVim to load colorscheme
|
||||
return {
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin",
|
||||
},
|
||||
},
|
||||
}
|
||||
5
config/nvim/lua/plugins/committia.lua
Normal file
5
config/nvim/lua/plugins/committia.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- More pleasant editing on commit messages
|
||||
-- https://github.com/rhysd/committia.vim
|
||||
return {
|
||||
"rhysd/committia.vim",
|
||||
}
|
||||
13
config/nvim/lua/plugins/copilot-chat.lua
Normal file
13
config/nvim/lua/plugins/copilot-chat.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
-- Chat with GitHub Copilot in Neovim
|
||||
-- https://github.com/CopilotC-Nvim/CopilotChat.nvim
|
||||
return {
|
||||
{
|
||||
"CopilotC-Nvim/CopilotChat.nvim",
|
||||
branch = "canary",
|
||||
dependencies = {
|
||||
{ "zbirenbaum/copilot.lua" }, -- or github/copilot.vim
|
||||
{ "nvim-lua/plenary.nvim" }, -- for curl, log wrapper
|
||||
},
|
||||
opts = {},
|
||||
},
|
||||
}
|
||||
10
config/nvim/lua/plugins/copilot.lua
Normal file
10
config/nvim/lua/plugins/copilot.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Copilot replacement
|
||||
-- https://github.com/zbirenbaum/copilot.lua
|
||||
-- https://github.com/zbirenbaum/copilot-cmp
|
||||
return {
|
||||
"zbirenbaum/copilot-cmp",
|
||||
dependencies = "zbirenbaum/copilot.lua",
|
||||
opts = function()
|
||||
require("copilot").setup()
|
||||
end,
|
||||
}
|
||||
19
config/nvim/lua/plugins/cursorline.lua
Normal file
19
config/nvim/lua/plugins/cursorline.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Highlight cursor words and lines
|
||||
-- https://github.com/yamatsum/nvim-cursorline
|
||||
return {
|
||||
"yamatsum/nvim-cursorline",
|
||||
config = function()
|
||||
require("nvim-cursorline").setup({
|
||||
cursorline = {
|
||||
enable = false,
|
||||
timeout = 1000,
|
||||
number = false,
|
||||
},
|
||||
cursorword = {
|
||||
enable = true,
|
||||
min_length = 3,
|
||||
hl = { underline = true },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
110
config/nvim/lua/plugins/dashboard.lua
Normal file
110
config/nvim/lua/plugins/dashboard.lua
Normal file
@@ -0,0 +1,110 @@
|
||||
return {
|
||||
"nvimdev/dashboard-nvim",
|
||||
event = "VimEnter",
|
||||
opts = function()
|
||||
local logo = "\n"
|
||||
.. " ▖\n"
|
||||
.. "┌─╮╭─╮╭─╮▖ ▖▖▄▄▗▄ \n"
|
||||
.. "│ │├─┘│ │▝▖▞ ▌▌ ▌ ▌\n"
|
||||
.. "╵ ╵╰─╯╰─╯ ▝ ▘▘ ▘ ▘\n"
|
||||
.. "\n"
|
||||
|
||||
logo = string.rep("\n", 5) .. logo .. "\n\n"
|
||||
|
||||
local opts = {
|
||||
theme = "doom",
|
||||
hide = {
|
||||
statusline = false,
|
||||
},
|
||||
config = {
|
||||
header = vim.split(logo, "\n"),
|
||||
center = {
|
||||
{
|
||||
action = "Telescope find_files",
|
||||
desc = " Find file",
|
||||
icon = " ",
|
||||
key = "f",
|
||||
},
|
||||
{
|
||||
action = "ene | startinsert",
|
||||
desc = " New file",
|
||||
icon = " ",
|
||||
key = "n",
|
||||
},
|
||||
{
|
||||
action = "Telescope oldfiles",
|
||||
desc = " Recent files",
|
||||
icon = " ",
|
||||
key = "r",
|
||||
},
|
||||
{
|
||||
action = "Telescope live_grep",
|
||||
desc = " Find text",
|
||||
icon = " ",
|
||||
key = "g",
|
||||
},
|
||||
{
|
||||
action = "Telescope projects",
|
||||
desc = " Find project",
|
||||
icon = " ",
|
||||
key = "p",
|
||||
},
|
||||
{
|
||||
action = 'lua require("persistence").load()',
|
||||
desc = " Restore Session",
|
||||
icon = " ",
|
||||
key = "s",
|
||||
},
|
||||
{
|
||||
action = "LazyExtras",
|
||||
desc = " Lazy Extras",
|
||||
icon = " ",
|
||||
key = "e",
|
||||
},
|
||||
{
|
||||
action = "Lazy",
|
||||
desc = " Lazy",
|
||||
icon = " ",
|
||||
key = "l",
|
||||
},
|
||||
{
|
||||
action = "Mason",
|
||||
desc = " Mason",
|
||||
icon = " ",
|
||||
key = "m",
|
||||
},
|
||||
{
|
||||
action = "qa",
|
||||
desc = " Quit",
|
||||
icon = " ",
|
||||
key = "q",
|
||||
},
|
||||
},
|
||||
footer = function()
|
||||
local stats = require("lazy").stats()
|
||||
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
|
||||
return {
|
||||
"⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms",
|
||||
}
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
for _, button in ipairs(opts.config.center) do
|
||||
button.desc = button.desc .. string.rep(" ", 43 - #button.desc)
|
||||
end
|
||||
|
||||
-- close Lazy and re-open when the dashboard is ready
|
||||
if vim.o.filetype == "lazy" then
|
||||
vim.cmd.close()
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "DashboardLoaded",
|
||||
callback = function()
|
||||
require("lazy").show()
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
return opts
|
||||
end,
|
||||
}
|
||||
32
config/nvim/lua/plugins/dial.lua
Normal file
32
config/nvim/lua/plugins/dial.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Enhanced increment/decrement
|
||||
-- https://github.com/monaqa/dial.nvim
|
||||
return {
|
||||
"monaqa/dial.nvim",
|
||||
config = function()
|
||||
local augend = require("dial.augend")
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
require("dial.config").augends:register_group({
|
||||
default = {
|
||||
augend.constant.alias.bool,
|
||||
augend.constant.alias.de_weekday,
|
||||
augend.constant.alias.de_weekday_full,
|
||||
augend.constant.new({ elements = { "before", "after" } }),
|
||||
augend.constant.new({ elements = { "left", "right" } }),
|
||||
augend.constant.new({ elements = { "let", "const" } }),
|
||||
augend.constant.new({ elements = { "start", "end" } }),
|
||||
augend.date.alias["%d.%m.%Y"],
|
||||
augend.hexcolor.new({ case = "lower" }),
|
||||
augend.integer.alias.decimal_int,
|
||||
augend.semver.alias.semver,
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<C-a>", require("dial.map").inc_normal(), opts)
|
||||
vim.keymap.set("n", "<C-x>", require("dial.map").dec_normal(), opts)
|
||||
vim.keymap.set("v", "<C-a>", require("dial.map").inc_visual(), opts)
|
||||
vim.keymap.set("v", "<C-x>", require("dial.map").dec_visual(), opts)
|
||||
vim.keymap.set("v", "g<C-a>", require("dial.map").inc_gvisual(), opts)
|
||||
vim.keymap.set("v", "g<C-x>", require("dial.map").dec_gvisual(), opts)
|
||||
end,
|
||||
}
|
||||
20
config/nvim/lua/plugins/diffview.lua
Normal file
20
config/nvim/lua/plugins/diffview.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Easily cycle through diffs
|
||||
-- https://github.com/sindrets/diffview.nvim
|
||||
return {
|
||||
"sindrets/diffview.nvim",
|
||||
lazy = false,
|
||||
dependencies = "nvim-lua/plenary.nvim",
|
||||
keys = {
|
||||
{ "<leader>gd", "<cmd>DiffviewOpen<cr>", desc = "Diffview Open" },
|
||||
{ "<leader>gD", "<cmd>DiffviewClose<cr>", desc = "Diffview Close" },
|
||||
},
|
||||
opts = {
|
||||
view = {
|
||||
use_icons = true,
|
||||
default = {
|
||||
layout = "diff2_horizontal",
|
||||
winbar_info = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
5
config/nvim/lua/plugins/editorconfig.lua
Normal file
5
config/nvim/lua/plugins/editorconfig.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Editorconfig
|
||||
-- https://github.com/editorconfig/editorconfig-vim
|
||||
return {
|
||||
"editorconfig/editorconfig-vim",
|
||||
}
|
||||
6
config/nvim/lua/plugins/emmet.lua
Normal file
6
config/nvim/lua/plugins/emmet.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
-- Emmet
|
||||
-- https://github.com/mattn/emmet-vim
|
||||
-- <c-y>, to extend
|
||||
return {
|
||||
"mattn/emmet-vim",
|
||||
}
|
||||
267
config/nvim/lua/plugins/example.lua
Normal file
267
config/nvim/lua/plugins/example.lua
Normal file
@@ -0,0 +1,267 @@
|
||||
-- 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 config.plugins 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)
|
||||
local cmp = require("cmp")
|
||||
opts.sources = cmp.config.sources(vim.list_extend(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").lsp.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",
|
||||
"help",
|
||||
"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 ans 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()
|
||||
-- they 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" }),
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
9
config/nvim/lua/plugins/export-to-vscode.lua
Normal file
9
config/nvim/lua/plugins/export-to-vscode.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Export active buffers to VS Code
|
||||
-- https://github.com/elijahmanor/export-to-vscode.nvim
|
||||
return {
|
||||
"elijahmanor/export-to-vscode.nvim",
|
||||
keys = {
|
||||
-- stylua: ignore
|
||||
{ "<leader>code", function() require("export-to-vscode").launch() end, desc = "Export to VS Code" },
|
||||
},
|
||||
}
|
||||
33
config/nvim/lua/plugins/flash.lua
Normal file
33
config/nvim/lua/plugins/flash.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
-- flash.nvim
|
||||
-- https://github.com/folke/flash.nvim
|
||||
return {
|
||||
"folke/flash.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {},
|
||||
keys = {
|
||||
{
|
||||
"s",
|
||||
mode = { "n", "x", "o" },
|
||||
function()
|
||||
require("flash").jump()
|
||||
end,
|
||||
desc = "Flash",
|
||||
},
|
||||
{
|
||||
"S",
|
||||
mode = { "n", "o", "x" },
|
||||
function()
|
||||
require("flash").treesitter()
|
||||
end,
|
||||
desc = "Flash Treesitter",
|
||||
},
|
||||
{
|
||||
"r",
|
||||
mode = "o",
|
||||
function()
|
||||
require("flash").remote()
|
||||
end,
|
||||
desc = "Remote Flash",
|
||||
},
|
||||
},
|
||||
}
|
||||
60
config/nvim/lua/plugins/fm.lua
Normal file
60
config/nvim/lua/plugins/fm.lua
Normal file
@@ -0,0 +1,60 @@
|
||||
-- Use favorite terminal file managers in Neovim
|
||||
-- https://github.com/is0n/fm-nvim
|
||||
return {
|
||||
"is0n/fm-nvim",
|
||||
keys = {
|
||||
{ "<M-g>", "<cmd>Lazygit<cr>", desc = "Lazygit" },
|
||||
{ "<M-l>", "<cmd>Lf<cr>", desc = "Lf" },
|
||||
},
|
||||
opts = {
|
||||
edit_cmd = "edit",
|
||||
on_close = {},
|
||||
on_open = {},
|
||||
ui = {
|
||||
default = "float",
|
||||
float = {
|
||||
border = "rounded",
|
||||
float_hl = "Normal",
|
||||
border_hl = "FloatBorder",
|
||||
blend = 0,
|
||||
height = 0.9,
|
||||
width = 0.9,
|
||||
x = 0.5,
|
||||
y = 0.5,
|
||||
},
|
||||
split = {
|
||||
direction = "topleft",
|
||||
size = 24,
|
||||
},
|
||||
},
|
||||
cmds = {
|
||||
lf_cmd = "lf",
|
||||
fm_cmd = "fm",
|
||||
nnn_cmd = "nnn",
|
||||
fff_cmd = "fff",
|
||||
twf_cmd = "twf",
|
||||
fzf_cmd = "fzf",
|
||||
fzy_cmd = "find . | fzy",
|
||||
xplr_cmd = "xplr",
|
||||
vifm_cmd = "vifm",
|
||||
skim_cmd = "sk",
|
||||
broot_cmd = "broot",
|
||||
gitui_cmd = "gitui",
|
||||
ranger_cmd = "ranger",
|
||||
joshuto_cmd = "joshuto",
|
||||
lazygit_cmd = "lazygit",
|
||||
neomutt_cmd = "neomutt",
|
||||
taskwarrior_cmd = "taskwarrior-tui",
|
||||
},
|
||||
mappings = {
|
||||
vert_split = "<C-v>",
|
||||
horz_split = "<C-h>",
|
||||
tabedit = "<C-t>",
|
||||
edit = "<C-e>",
|
||||
ESC = "<ESC>",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("fm-nvim").setup()
|
||||
end,
|
||||
}
|
||||
56
config/nvim/lua/plugins/formatting.lua
Normal file
56
config/nvim/lua/plugins/formatting.lua
Normal file
@@ -0,0 +1,56 @@
|
||||
-- Lightweight yet powerful formatter plugin for Neovim
|
||||
-- https://github.com/stevearc/conform.nvim
|
||||
return {
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufWritePre", "BufNewFile" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>mp",
|
||||
mode = { "n", "v" },
|
||||
function()
|
||||
require("conform").format({
|
||||
lsp_fallback = true,
|
||||
async = false,
|
||||
timeout_ms = 500,
|
||||
})
|
||||
end,
|
||||
desc = "Format file or range (in visual mode)",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
formatters = {
|
||||
eslint_d = {
|
||||
command = "eslint_d",
|
||||
args = { "--fix-to-stdout", "--stdin", "--stdin-filename", "$FILENAME" },
|
||||
stdin = true,
|
||||
},
|
||||
nixpkgs_fmt = {
|
||||
command = "nixpkgs-fmt",
|
||||
},
|
||||
},
|
||||
formatters_by_ft = {
|
||||
-- ["*"] = { "codespell" },
|
||||
["_"] = { "trim_whitespace" },
|
||||
astro = { { "prettierd", "prettier" } },
|
||||
css = { { "prettierd", "prettier" }, "stylelint" },
|
||||
fish = { "fish_indent" },
|
||||
go = { "goimports", "gofumpt" },
|
||||
graphql = { { "prettierd", "prettier" } },
|
||||
html = { { "prettierd", "prettier" } },
|
||||
javascript = { { "prettierd", "prettier" }, "eslint_d" },
|
||||
javascriptreact = { { "prettierd", "prettier" }, "eslint_d" },
|
||||
json = { { "prettierd", "prettier" } },
|
||||
lua = { "stylua" },
|
||||
markdown = { { "prettierd", "prettier" } },
|
||||
mdx = { { "prettierd", "prettier" } },
|
||||
nix = { "nixpkgs_fmt" },
|
||||
python = { "isort", "black" },
|
||||
ruby = { "rubyfmt", "rubocop" },
|
||||
eruby = { "htmlbeautifier" },
|
||||
svelte = { { "prettierd", "prettier" } },
|
||||
typescript = { { "prettierd", "prettier" }, "eslint_d" },
|
||||
typescriptreact = { { "prettierd", "prettier" }, "eslint_d" },
|
||||
yaml = { { "prettierd", "prettier" } },
|
||||
},
|
||||
},
|
||||
}
|
||||
5
config/nvim/lua/plugins/fugitive.lua
Normal file
5
config/nvim/lua/plugins/fugitive.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- fugitive.vim: A Git wrapper so awesome, it should be illegal
|
||||
-- https://github.com/tpope/vim-fugitive
|
||||
return {
|
||||
"tpope/vim-fugitive",
|
||||
}
|
||||
9
config/nvim/lua/plugins/gh-line.lua
Normal file
9
config/nvim/lua/plugins/gh-line.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Open the link of current line on GitHub
|
||||
-- https://github.com/ruanyl/vim-gh-line
|
||||
-- <leader>gh (line) or <leader>gb (blame)
|
||||
return {
|
||||
"ruanyl/vim-gh-line",
|
||||
config = function()
|
||||
vim.g.gh_github_domain = "source.xing.com"
|
||||
end,
|
||||
}
|
||||
28
config/nvim/lua/plugins/gh.lua
Normal file
28
config/nvim/lua/plugins/gh.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
-- A fully featured GitHub integration for performing code reviews
|
||||
-- https://github.com/ldelossa/gh.nvim
|
||||
return {
|
||||
"ldelossa/gh.nvim",
|
||||
dependencies = { "ldelossa/litee.nvim" },
|
||||
config = function()
|
||||
require("litee.lib").setup()
|
||||
require("litee.gh").setup({
|
||||
jump_mode = "invoking",
|
||||
map_resize_keys = false,
|
||||
disable_keymaps = false,
|
||||
icon_set = "default",
|
||||
icon_set_custom = nil,
|
||||
git_buffer_completion = true,
|
||||
keymaps = {
|
||||
open = "<CR>",
|
||||
expand = "zo",
|
||||
collapse = "zc",
|
||||
goto_issue = "gd",
|
||||
details = "d",
|
||||
submit_comment = "<C-s>",
|
||||
actions = "<C-a>",
|
||||
resolve_thread = "<C-r>",
|
||||
goto_web = "gx",
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
5
config/nvim/lua/plugins/grammarous.lua
Normal file
5
config/nvim/lua/plugins/grammarous.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- A powerful grammar checker using LanguageTool
|
||||
-- https://github.com/rhysd/vim-grammarous
|
||||
return {
|
||||
"rhysd/vim-grammarous",
|
||||
}
|
||||
11
config/nvim/lua/plugins/harpoon-lualine.lua
Normal file
11
config/nvim/lua/plugins/harpoon-lualine.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
-- Harpoon2 for lualine
|
||||
-- https://github.com/letieu/harpoon-lualine
|
||||
return {
|
||||
"letieu/harpoon-lualine",
|
||||
dependencies = {
|
||||
{
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
},
|
||||
},
|
||||
}
|
||||
63
config/nvim/lua/plugins/harpoon.lua
Normal file
63
config/nvim/lua/plugins/harpoon.lua
Normal file
@@ -0,0 +1,63 @@
|
||||
-- Getting you where you want with the fewest keystrokes
|
||||
-- https://github.com/ThePrimeagen/harpoon
|
||||
return {
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
keys = {
|
||||
{
|
||||
"<leader>a",
|
||||
function()
|
||||
require("harpoon"):list():add()
|
||||
end,
|
||||
desc = "Harpoon Add File",
|
||||
},
|
||||
{
|
||||
"<leader>;",
|
||||
function()
|
||||
local harpoon = require("harpoon")
|
||||
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||
end,
|
||||
desc = "Harpoon Quickmenu",
|
||||
},
|
||||
{
|
||||
"<leader>1",
|
||||
function()
|
||||
require("harpoon"):list():select(1)
|
||||
end,
|
||||
desc = "Harpoon Buffer 1",
|
||||
},
|
||||
{
|
||||
"<leader>2",
|
||||
function()
|
||||
require("harpoon"):list():select(2)
|
||||
end,
|
||||
desc = "Harpoon Buffer 2",
|
||||
},
|
||||
{
|
||||
"<leader>3",
|
||||
function()
|
||||
require("harpoon"):list():select(3)
|
||||
end,
|
||||
desc = "Harpoon Buffer 3",
|
||||
},
|
||||
{
|
||||
"<leader>4",
|
||||
function()
|
||||
require("harpoon"):list():select(4)
|
||||
end,
|
||||
desc = "Harpoon Buffer 4",
|
||||
},
|
||||
{
|
||||
"<leader>5",
|
||||
function()
|
||||
require("harpoon"):list():select(5)
|
||||
end,
|
||||
desc = "Harpoon Buffer 5",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
menu = {
|
||||
width = vim.api.nvim_win_get_width(0) - 4,
|
||||
},
|
||||
},
|
||||
}
|
||||
15
config/nvim/lua/plugins/highlight-undo.lua
Normal file
15
config/nvim/lua/plugins/highlight-undo.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
-- highlight-undo.nvim
|
||||
-- https://github.com/tzachar/highlight-undo.nvim
|
||||
return {
|
||||
"tzachar/highlight-undo.nvim",
|
||||
config = function()
|
||||
require("highlight-undo").setup({
|
||||
hlgroup = "HighlightUndo",
|
||||
duration = 300,
|
||||
keymaps = {
|
||||
{ "n", "u", "undo", {} },
|
||||
{ "n", "<C-r>", "redo", {} },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
7
config/nvim/lua/plugins/inc-rename.lua
Normal file
7
config/nvim/lua/plugins/inc-rename.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Incremental LSP renaming based on Neovim's command-preview feature.
|
||||
-- https://github.com/smjonas/inc-rename.nvim
|
||||
return {
|
||||
"smjonas/inc-rename.nvim",
|
||||
cmd = "IncRename",
|
||||
config = true,
|
||||
}
|
||||
18
config/nvim/lua/plugins/lazygit.lua
Normal file
18
config/nvim/lua/plugins/lazygit.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Plugin for calling lazygit from within neovim.
|
||||
-- https://github.com/kdheepak/lazygit.nvim
|
||||
return {
|
||||
"kdheepak/lazygit.nvim",
|
||||
cmd = {
|
||||
"LazyGit",
|
||||
"LazyGitConfig",
|
||||
"LazyGitCurrentFile",
|
||||
"LazyGitFilter",
|
||||
"LazyGitFilterCurrentFile",
|
||||
},
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" },
|
||||
},
|
||||
}
|
||||
17
config/nvim/lua/plugins/legendary.lua
Normal file
17
config/nvim/lua/plugins/legendary.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
-- A legend for your keymaps, commands, and autocmds
|
||||
-- https://github.com/mrjones2014/legendary.nvim
|
||||
return {
|
||||
"mrjones2014/legendary.nvim",
|
||||
dependencies = {
|
||||
"kkharji/sqlite.lua",
|
||||
},
|
||||
keys = {
|
||||
-- stylua: ignore
|
||||
-- { "<leader>L", "<cmd>Legendary<cr>", desc = "Legendary" },
|
||||
},
|
||||
config = function()
|
||||
require("legendary").setup({
|
||||
which_key = { auto_register = true },
|
||||
})
|
||||
end,
|
||||
}
|
||||
19
config/nvim/lua/plugins/lf.lua
Normal file
19
config/nvim/lua/plugins/lf.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Lf file manager for Neovim
|
||||
-- https://github.com/lmburns/lf.nvim
|
||||
return {
|
||||
"lmburns/lf.nvim",
|
||||
cmd = "Lf",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"akinsho/toggleterm.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>fl", "<cmd>Lf<cr>", desc = "Lf File Manager" },
|
||||
},
|
||||
opts = {
|
||||
winblend = 0,
|
||||
highlights = { NormalFloat = { guibg = "NONE" } },
|
||||
border = "curved",
|
||||
escape_quit = true,
|
||||
},
|
||||
}
|
||||
34
config/nvim/lua/plugins/linting.lua
Normal file
34
config/nvim/lua/plugins/linting.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
-- Linting
|
||||
-- https://github.com/mfussenegger/nvim-lint
|
||||
return {
|
||||
"mfussenegger/nvim-lint",
|
||||
event = {
|
||||
"BufWritePre",
|
||||
"BufNewFile",
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>L",
|
||||
mode = { "n" },
|
||||
function()
|
||||
require("lint").try_lint()
|
||||
end,
|
||||
desc = "Trigger linting for current file",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
events = { "BufEnter", "BufWritePost", "BufReadPost", "InsertLeave" },
|
||||
linters_by_ft = {
|
||||
["*"] = { "codespell" },
|
||||
astro = { "eslint_d", "cspell" },
|
||||
fish = { "fish" },
|
||||
javascript = { "eslint_d", "cspell" },
|
||||
javascriptreact = { "eslint_d", "cspell" },
|
||||
python = { "pylint" },
|
||||
ruby = { "rubocop" },
|
||||
svelte = { "eslint_d" },
|
||||
typescript = { "eslint_d", "cspell" },
|
||||
typescriptreact = { "eslint_d", "cspell" },
|
||||
},
|
||||
},
|
||||
}
|
||||
7
config/nvim/lua/plugins/lsp-progress.lua
Normal file
7
config/nvim/lua/plugins/lsp-progress.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
"linrongbin16/lsp-progress.nvim",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
config = function()
|
||||
require("lsp-progress").setup()
|
||||
end,
|
||||
}
|
||||
52
config/nvim/lua/plugins/lspconfig.lua
Normal file
52
config/nvim/lua/plugins/lspconfig.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
-- Quickstart configs for Nvim LSP
|
||||
-- https://github.com/neovim/nvim-lspconfig
|
||||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
init = function()
|
||||
require("lazyvim.util").lsp.on_attach(function(_, buffer)
|
||||
-- stylua: ignore
|
||||
vim.keymap.set("n", "g0", "<cmd>Telescope lsp_document_symbols<cr>", { buffer = buffer, desc = "Document Symbols" })
|
||||
vim.keymap.set("n", "cc", "<cmd>lua vim.lsp.buf.code_action()<cr>", { buffer = buffer, desc = "Code Action" })
|
||||
end)
|
||||
end,
|
||||
opts = {
|
||||
inlay_hints = { enabled = false },
|
||||
servers = {
|
||||
astro = {},
|
||||
cssls = {},
|
||||
cssmodules_ls = {},
|
||||
diagnosticls = {},
|
||||
emmet_ls = {},
|
||||
graphql = {},
|
||||
html = {},
|
||||
jsonls = {},
|
||||
lua_ls = {},
|
||||
nixd = {},
|
||||
svelte = {},
|
||||
tsserver = {},
|
||||
yamlls = {},
|
||||
},
|
||||
},
|
||||
setup = function()
|
||||
local nvim_lsp = require("lspconfig")
|
||||
nvim_lsp.nixd.setup({
|
||||
cmd = { "nixd" },
|
||||
setttings = {
|
||||
nixd = {
|
||||
expr = "import <nixpkgs> { }",
|
||||
},
|
||||
formattting = {
|
||||
command = { "nixpkgs-fmt" },
|
||||
},
|
||||
options = {
|
||||
nixos = {
|
||||
expr = '(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.k-on.options',
|
||||
},
|
||||
home_manager = {
|
||||
expr = '(builtins.getFlake ("git+file://" + toString ./.)).homeConfigurations."ruixi@k-on".options',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
105
config/nvim/lua/plugins/lualine.lua
Normal file
105
config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,105 @@
|
||||
-- A blazing fast and easy to configure neovim statusline plugin written in pure lua.
|
||||
-- https://github.com/nvim-lualine/lualine.nvim
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"linrongbin16/lsp-progress.nvim",
|
||||
},
|
||||
opts = function()
|
||||
local icons = require("lazyvim.config").icons
|
||||
|
||||
local function fg(name)
|
||||
return function()
|
||||
---@type {foreground?:number}?
|
||||
local hl = vim.api.nvim_get_hl_by_name(name, true)
|
||||
return hl and hl.foreground and { fg = string.format("#%06x", hl.foreground) }
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = "transparent",
|
||||
component_separators = { left = "", right = "" },
|
||||
section_separators = { left = "", right = "" },
|
||||
disabled_filetypes = { "alpha", "dashboard", "lazy " },
|
||||
always_divide_middle = true,
|
||||
globalstatus = true,
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { "mode" },
|
||||
lualine_b = { "branch" },
|
||||
lualine_c = {
|
||||
{
|
||||
"diagnostics",
|
||||
symbols = {
|
||||
error = icons.diagnostics.Error,
|
||||
warn = icons.diagnostics.Warn,
|
||||
info = icons.diagnostics.Info,
|
||||
hint = icons.diagnostics.Hint,
|
||||
},
|
||||
},
|
||||
{ "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },
|
||||
{ "filename", path = 3, symbols = { modified = " ", readonly = "", unnamed = "" } },
|
||||
{
|
||||
"harpoon2",
|
||||
indicators = { "1", "2", "3", "4", "5" },
|
||||
active_indicators = { "[1]", "[2]", "[3]", "[4]", "[5]" },
|
||||
separator = " ",
|
||||
},
|
||||
},
|
||||
lualine_x = {
|
||||
{ require("lsp-progress").progress },
|
||||
{
|
||||
function()
|
||||
return require("noice").api.status.command.get()
|
||||
end,
|
||||
cond = function()
|
||||
return package.loaded["noice"] and require("noice").api.status.command.has()
|
||||
end,
|
||||
color = fg("Statement"),
|
||||
},
|
||||
{
|
||||
function()
|
||||
return require("noice").api.status.mode.get()
|
||||
end,
|
||||
cond = function()
|
||||
return package.loaded["noice"] and require("noice").api.status.mode.has()
|
||||
end,
|
||||
color = fg("Constant"),
|
||||
},
|
||||
{ require("lazy.status").updates, cond = require("lazy.status").has_updates, color = fg("Special") },
|
||||
{
|
||||
"diff",
|
||||
symbols = {
|
||||
added = icons.git.added,
|
||||
modified = icons.git.modified,
|
||||
removed = icons.git.removed,
|
||||
},
|
||||
},
|
||||
},
|
||||
lualine_y = {
|
||||
{ "progress", separator = "", padding = { left = 1, right = 0 } },
|
||||
{ "location", padding = { left = 0, right = 1 } },
|
||||
},
|
||||
lualine_z = {
|
||||
function()
|
||||
return " " .. os.date("%R")
|
||||
end,
|
||||
},
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = { "filename" },
|
||||
lualine_x = { "location" },
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
},
|
||||
tabline = {},
|
||||
extensions = { "neo-tree" },
|
||||
}
|
||||
end,
|
||||
}
|
||||
10
config/nvim/lua/plugins/markdown-preview.lua
Normal file
10
config/nvim/lua/plugins/markdown-preview.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Markdown Preview
|
||||
-- https://github.com/iamcco/markdown-preview.nvim
|
||||
return {
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
ft = { "markdown" },
|
||||
build = function()
|
||||
vim.fn["mkdp#util#install"]()
|
||||
end,
|
||||
}
|
||||
53
config/nvim/lua/plugins/mason.lua
Normal file
53
config/nvim/lua/plugins/mason.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
-- Package manager for LSP servers, DAP servers, linters, and formatters
|
||||
-- https://github.com/williamboman/mason.nvim
|
||||
return {
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"astro-language-server",
|
||||
"black",
|
||||
"codespell",
|
||||
"cspell",
|
||||
"css-lsp",
|
||||
"cssmodules-language-server",
|
||||
"delve",
|
||||
"diagnostic-languageserver",
|
||||
"emmet-ls",
|
||||
"eslint-lsp",
|
||||
"eslint_d",
|
||||
"gofumpt",
|
||||
"goimports",
|
||||
"gomodifytags",
|
||||
"html-lsp",
|
||||
"htmlbeautifier",
|
||||
"impl",
|
||||
"isort",
|
||||
"json-lsp",
|
||||
"lua-language-server",
|
||||
"markdown-oxide",
|
||||
"nixpkgs-fmt",
|
||||
"prettier",
|
||||
"prettierd",
|
||||
"pyright",
|
||||
"rubocop",
|
||||
"rubyfmt",
|
||||
"shellcheck",
|
||||
"stylua",
|
||||
"svelte-language-server",
|
||||
"tailwindcss-language-server",
|
||||
"typescript-language-server",
|
||||
"typos-lsp",
|
||||
"vale",
|
||||
"yaml-language-server",
|
||||
"yamlfmt",
|
||||
},
|
||||
ui = {
|
||||
border = "rounded",
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
5
config/nvim/lua/plugins/mundo.lua
Normal file
5
config/nvim/lua/plugins/mundo.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Vim undo tree visualizer
|
||||
-- https://github.com/simnalamburt/vim-mundo
|
||||
return {
|
||||
"simnalamburt/vim-mundo",
|
||||
}
|
||||
20
config/nvim/lua/plugins/neogit.lua
Normal file
20
config/nvim/lua/plugins/neogit.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
-- An interactive and powerful Git interface for Neovim
|
||||
-- https://github.com/NeogitOrg/neogit
|
||||
return {
|
||||
"NeogitOrg/neogit",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"sindrets/diffview.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>gn",
|
||||
function()
|
||||
require("neogit").open()
|
||||
end,
|
||||
desc = "Neogit",
|
||||
},
|
||||
},
|
||||
config = true,
|
||||
}
|
||||
56
config/nvim/lua/plugins/neotest.lua
Normal file
56
config/nvim/lua/plugins/neotest.lua
Normal file
@@ -0,0 +1,56 @@
|
||||
-- Neotest
|
||||
-- https://github.com/nvim-neotest/neotest
|
||||
return {
|
||||
{
|
||||
"nvim-neotest/neotest",
|
||||
dependencies = {
|
||||
"haydenmeade/neotest-jest",
|
||||
"marilari88/neotest-vitest",
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>tl",
|
||||
function()
|
||||
require("neotest").run.run_last()
|
||||
end,
|
||||
desc = "Run Last Test",
|
||||
},
|
||||
{
|
||||
"<leader>tL",
|
||||
function()
|
||||
require("neotest").run.run_last({
|
||||
strategy = "dap",
|
||||
})
|
||||
end,
|
||||
desc = "Debug Last Test",
|
||||
},
|
||||
{
|
||||
"<leader>tw",
|
||||
"<cmd>lua require('neotest').run.run({ jestCommand = 'jest --watch ' })<cr>",
|
||||
desc = "Run Watch",
|
||||
},
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(
|
||||
opts.adapters,
|
||||
require("neotest-jest")({
|
||||
jestCommand = "npm test --",
|
||||
jestConfigFile = "custom.jest.config.ts",
|
||||
env = {
|
||||
CI = true,
|
||||
},
|
||||
cwd = function()
|
||||
return vim.fn.getcwd()
|
||||
end,
|
||||
})
|
||||
)
|
||||
table.insert(opts.adapters, require("neotest-vitest"))
|
||||
table.insert(
|
||||
opts.adapters,
|
||||
require("neotest-go")({
|
||||
recursive_run = true,
|
||||
})
|
||||
)
|
||||
end,
|
||||
},
|
||||
}
|
||||
7
config/nvim/lua/plugins/noctis.lua
Normal file
7
config/nvim/lua/plugins/noctis.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
-- https://github.com/kartikp10/noctis.nvim
|
||||
return {
|
||||
{
|
||||
"kartikp10/noctis.nvim",
|
||||
dependencies = "rktjmp/lush.nvim",
|
||||
}, -- Noctis color scheme
|
||||
}
|
||||
25
config/nvim/lua/plugins/noice.lua
Normal file
25
config/nvim/lua/plugins/noice.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
-- Experimental UI plugin
|
||||
-- https://github.com/folke/noice.nvim
|
||||
return {
|
||||
"folke/noice.nvim",
|
||||
opts = {
|
||||
lsp = {
|
||||
progress = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
routes = {
|
||||
{
|
||||
filter = {
|
||||
event = "notify",
|
||||
find = "No information available",
|
||||
},
|
||||
opts = { skip = true },
|
||||
},
|
||||
},
|
||||
presets = {
|
||||
inc_rename = true,
|
||||
lsp_doc_border = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
10
config/nvim/lua/plugins/notify.lua
Normal file
10
config/nvim/lua/plugins/notify.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- A fancy, configurable notification manager
|
||||
-- https://github.com/rcarriga/nvim-notify
|
||||
return {
|
||||
"rcarriga/nvim-notify",
|
||||
opts = {
|
||||
render = "minimal",
|
||||
stages = "static",
|
||||
timeout = 2000,
|
||||
},
|
||||
}
|
||||
11
config/nvim/lua/plugins/oatmeal.lua
Normal file
11
config/nvim/lua/plugins/oatmeal.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
"dustinblackman/oatmeal.nvim",
|
||||
cmd = { "Oatmeal" },
|
||||
keys = {
|
||||
{ "<leader>om", mode = "n", desc = "Start Oatmeal session" },
|
||||
},
|
||||
opts = {
|
||||
backend = "ollama",
|
||||
model = "codellama:latest",
|
||||
},
|
||||
}
|
||||
71
config/nvim/lua/plugins/obsidian.lua
Normal file
71
config/nvim/lua/plugins/obsidian.lua
Normal file
@@ -0,0 +1,71 @@
|
||||
-- Obsidian
|
||||
-- https://github.com/epwalsh/obsidian.nvim
|
||||
return {
|
||||
"epwalsh/obsidian.nvim",
|
||||
version = "*",
|
||||
lazy = true,
|
||||
ft = "markdown",
|
||||
dependencies = {
|
||||
-- required
|
||||
"nvim-lua/plenary.nvim",
|
||||
-- optional
|
||||
"hrsh7th/nvim-cmp",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"ibhagwan/fzf-lua",
|
||||
"junegunn/fzf",
|
||||
"junegunn/fzf.vim",
|
||||
"godlygeek/tabular",
|
||||
"preservim/vim-markdown",
|
||||
},
|
||||
opts = {
|
||||
workspaces = {
|
||||
{
|
||||
name = "zettelkasten",
|
||||
path = "~/Code/GitHub/obsidian/zettelkasten",
|
||||
overrides = {
|
||||
notes_subdir = "pages",
|
||||
},
|
||||
},
|
||||
{
|
||||
name = "highlights",
|
||||
path = "~/Code/GitHub/obsidian/highlights",
|
||||
},
|
||||
},
|
||||
completion = {
|
||||
nvim_cmp = true,
|
||||
min_chars = 2,
|
||||
use_path_only = false,
|
||||
},
|
||||
mappings = {
|
||||
-- Overrides the 'gf' mapping to work on markdown/wiki links within your vault.
|
||||
["gf"] = {
|
||||
action = function()
|
||||
return require("obsidian").util.gf_passthrough()
|
||||
end,
|
||||
opts = { noremap = false, expr = true, buffer = true },
|
||||
},
|
||||
-- Toggle check-boxes.
|
||||
["<leader>ch"] = {
|
||||
action = function()
|
||||
return require("obsidian").util.toggle_checkbox()
|
||||
end,
|
||||
opts = { buffer = true },
|
||||
},
|
||||
},
|
||||
disable_frontmatter = true,
|
||||
note_id_func = function(title)
|
||||
local suffix = ""
|
||||
if title ~= nil and title ~= "" then
|
||||
suffix = title
|
||||
else
|
||||
suffix = tostring(os.date("%Y%m%d%H%M"))
|
||||
end
|
||||
return suffix
|
||||
end,
|
||||
templates = {
|
||||
subdir = "templates",
|
||||
date_format = "%Y-%m-%d",
|
||||
time_format = "%H:%M",
|
||||
},
|
||||
},
|
||||
}
|
||||
11
config/nvim/lua/plugins/oil.lua
Normal file
11
config/nvim/lua/plugins/oil.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
"stevearc/oil.nvim",
|
||||
opts = {},
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
keys = {
|
||||
{ "<leader>-", "<CMD>lua require('oil').open()<CR>", desc = "Oil" },
|
||||
},
|
||||
config = function()
|
||||
require("oil").setup()
|
||||
end,
|
||||
}
|
||||
12
config/nvim/lua/plugins/ollama.lua
Normal file
12
config/nvim/lua/plugins/ollama.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
-- Generate text using LLMs with customizable prompts
|
||||
-- https://github.com/David-Kunz/gen.nvim
|
||||
return {
|
||||
"David-Kunz/gen.nvim",
|
||||
opts = {
|
||||
model = "codellama", -- The default model to use.
|
||||
display_mode = "split", -- The display mode. Can be "float" or "split".
|
||||
show_prompt = true, -- Shows the Prompt submitted to Ollama.
|
||||
show_model = true, -- Displays which model you are using at the beginning of your chat session.
|
||||
no_auto_close = false, -- Never closes the window automatically.
|
||||
},
|
||||
}
|
||||
24
config/nvim/lua/plugins/project.lua
Normal file
24
config/nvim/lua/plugins/project.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
-- The superior project management solution for neovim
|
||||
-- https://github.com/ahmedkhalf/project.nvim
|
||||
return {
|
||||
"ahmedkhalf/project.nvim",
|
||||
lazy = false,
|
||||
keys = {
|
||||
-- stylua: ignore
|
||||
{ "<leader>p", ":Telescope projects<cr>", desc = "Search Projects" },
|
||||
},
|
||||
config = function()
|
||||
require("project_nvim").setup({
|
||||
active = true,
|
||||
on_config_done = nil,
|
||||
manual_mode = false,
|
||||
detection_methods = { "pattern" },
|
||||
patterns = { ".git", "Makefile", ".gitignore", "package.json", "!node_modules" },
|
||||
show_hidden = false,
|
||||
silent_chdir = true,
|
||||
ignore_lsp = {},
|
||||
datapath = vim.fn.stdpath("data"),
|
||||
})
|
||||
require("telescope").load_extension("projects")
|
||||
end,
|
||||
}
|
||||
5
config/nvim/lua/plugins/rainbow-csv.lua
Normal file
5
config/nvim/lua/plugins/rainbow-csv.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Highlight columns in CSV files
|
||||
-- https://github.com/mechatroner/rainbow_csv
|
||||
return {
|
||||
"mechatroner/rainbow_csv",
|
||||
}
|
||||
12
config/nvim/lua/plugins/remote-nvim.lua
Normal file
12
config/nvim/lua/plugins/remote-nvim.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
-- Remote development in Neovim 🔥
|
||||
-- https://github.com/amitds1997/remote-nvim.nvim?tab=readme-ov-file
|
||||
return {
|
||||
"amitds1997/remote-nvim.nvim",
|
||||
version = "*", -- Pin to GitHub releases
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim", -- For standard functions
|
||||
"MunifTanjim/nui.nvim", -- To build the plugin UI
|
||||
"nvim-telescope/telescope.nvim", -- For picking b/w different remote methods
|
||||
},
|
||||
config = true,
|
||||
}
|
||||
33
config/nvim/lua/plugins/screenshots.lua
Normal file
33
config/nvim/lua/plugins/screenshots.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
-- Create code images using the external silicon tool
|
||||
-- https://github.com/michaelrommel/nvim-silicon
|
||||
return {
|
||||
"michaelrommel/nvim-silicon",
|
||||
lazy = true,
|
||||
cmd = "Silicon",
|
||||
config = function()
|
||||
require("silicon").setup({
|
||||
font = "Fira Code=34;Noto Emoji=34",
|
||||
theme = "Catppuccin-mocha",
|
||||
background = "#68677b",
|
||||
pad_horiz = 100,
|
||||
pad_vert = 80,
|
||||
no_round_corner = false,
|
||||
no_window_controls = false,
|
||||
no_line_number = false,
|
||||
line_pad = 0,
|
||||
tab_width = 2,
|
||||
language = function()
|
||||
return vim.bo.filetype
|
||||
end,
|
||||
shadow_blur_radius = 16,
|
||||
shadow_offset_x = 8,
|
||||
shadow_offset_y = 8,
|
||||
shadow_color = "#100808",
|
||||
gobble = true,
|
||||
to_clipboard = true,
|
||||
window_title = function()
|
||||
return vim.fn.fnamemodify(vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), ":t")
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
36
config/nvim/lua/plugins/smart-splits.lua
Normal file
36
config/nvim/lua/plugins/smart-splits.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
return {
|
||||
"mrjones2014/smart-splits.nvim",
|
||||
enabled = true,
|
||||
event = "VeryLazy",
|
||||
keys = {
|
||||
{ "<leader>wr", "<cmd>SmartResizeMode<cr>", desc = "Toggle Smart Resize Mode" },
|
||||
},
|
||||
config = function()
|
||||
require("smart-splits").setup({
|
||||
ignored_filetypes = {
|
||||
"nofile",
|
||||
"quickfix",
|
||||
"prompt",
|
||||
},
|
||||
ignored_buftypes = { "NvimTree" },
|
||||
default_amount = 3,
|
||||
at_edge = "wrap",
|
||||
move_cursor_same_row = false,
|
||||
resize_mode = {
|
||||
quit_key = "<ESC>",
|
||||
resize_keys = { "h", "j", "k", "l" },
|
||||
silent = false,
|
||||
hooks = {
|
||||
on_enter = nil,
|
||||
on_leave = nil,
|
||||
},
|
||||
},
|
||||
ignored_events = {
|
||||
"BufEnter",
|
||||
"WinEnter",
|
||||
},
|
||||
multiplexer_integration = "tmux",
|
||||
disable_multiplexer_nav_when_zoomed = true,
|
||||
})
|
||||
end,
|
||||
}
|
||||
10
config/nvim/lua/plugins/symbols-outline.lua
Normal file
10
config/nvim/lua/plugins/symbols-outline.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- A tree view for symbols
|
||||
-- https://github.com/simrat39/symbols-outline.nvim
|
||||
return {
|
||||
"simrat39/symbols-outline.nvim",
|
||||
config = function()
|
||||
require("symbols-outline").setup({
|
||||
width = 25,
|
||||
})
|
||||
end,
|
||||
}
|
||||
5
config/nvim/lua/plugins/table-mode.lua
Normal file
5
config/nvim/lua/plugins/table-mode.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Table Mode for instant table creation
|
||||
-- https://github.com/dhruvasagar/vim-table-mode
|
||||
return {
|
||||
"dhruvasagar/vim-table-mode",
|
||||
}
|
||||
48
config/nvim/lua/plugins/tailwindcss.lua
Normal file
48
config/nvim/lua/plugins/tailwindcss.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
-- Tailwind CSS
|
||||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
tailwindcss = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"NvChad/nvim-colorizer.lua",
|
||||
opts = {
|
||||
user_default_options = {
|
||||
tailwind = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
{ "roobert/tailwindcss-colorizer-cmp.nvim", config = true },
|
||||
},
|
||||
opts = function(_, opts)
|
||||
-- original LazyVim kind icon formatter
|
||||
local format_kinds = opts.formatting.format
|
||||
opts.formatting.format = function(entry, item)
|
||||
format_kinds(entry, item) -- add icons
|
||||
return require("tailwindcss-colorizer-cmp").formatter(entry, item)
|
||||
end
|
||||
end,
|
||||
},
|
||||
"laytan/tailwind-sorter.nvim",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
build = "cd formatter && npm i && npm run build",
|
||||
config = {
|
||||
on_save_enabled = true,
|
||||
on_save_pattern = { "*.html", "*.jsx", "*.tsx", "*.astro", "*.svelte" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"luckasRanarison/tailwind-tools.nvim",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {},
|
||||
},
|
||||
}
|
||||
21
config/nvim/lua/plugins/telecope-heading.lua
Normal file
21
config/nvim/lua/plugins/telecope-heading.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
-- Telescope extention to switch between Headlines
|
||||
-- https://github.com/crispgm/telescope-heading.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"crispgm/telescope-heading.nvim",
|
||||
keys = {
|
||||
{ ";h", "<cmd>Telescope heading<cr>", desc = "Headlines" },
|
||||
},
|
||||
opts = {
|
||||
extensions = {
|
||||
heading = {
|
||||
treesitter = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("heading")
|
||||
end,
|
||||
},
|
||||
}
|
||||
26
config/nvim/lua/plugins/telescope-file-browser.lua
Normal file
26
config/nvim/lua/plugins/telescope-file-browser.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Telescope extension for a File Browser
|
||||
-- https://github.com/nvim-telescope/telescope-file-browser.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-file-browser.nvim",
|
||||
keys = {
|
||||
{
|
||||
";t",
|
||||
"<cmd>Telescope file_browser respect_gitignore=false hidden=true grouped=true<cr>",
|
||||
desc = "File Browser",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
extensions = {
|
||||
file_browser = {
|
||||
theme = "ivy",
|
||||
hijack_netrw = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("file_browser")
|
||||
end,
|
||||
},
|
||||
}
|
||||
27
config/nvim/lua/plugins/telescope-frecency.lua
Normal file
27
config/nvim/lua/plugins/telescope-frecency.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
-- Telescope extensionn that offers intelligent priorization
|
||||
-- https://github.com/nvim-telescope/telescope-frecency.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-frecency.nvim",
|
||||
dependencies = {
|
||||
"kkharji/sqlite.lua",
|
||||
},
|
||||
keys = {
|
||||
{ ";mr", "<cmd>Telescope frecency<cr>", desc = "Most recently used files" },
|
||||
},
|
||||
opts = {
|
||||
extensions = {
|
||||
frecency = {
|
||||
show_scores = false,
|
||||
show_unindexed = true,
|
||||
ignore_patterns = { "*.git/*", "*/tmp/*" },
|
||||
disable_devicons = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("frecency")
|
||||
end,
|
||||
},
|
||||
}
|
||||
21
config/nvim/lua/plugins/telescope-fzy-native.lua
Normal file
21
config/nvim/lua/plugins/telescope-fzy-native.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
-- Telescope extension for a FZY style sorter that is compiled
|
||||
-- https://github.com/nvim-telescope/telescope-fzy-native.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-fzy-native.nvim",
|
||||
opts = {
|
||||
extensions = {
|
||||
fzy_native = {
|
||||
fuzzy = true,
|
||||
override_generic_sorter = true,
|
||||
override_file_sorter = true,
|
||||
case_mode = "smart_case",
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("fzy_native")
|
||||
end,
|
||||
},
|
||||
}
|
||||
15
config/nvim/lua/plugins/telescope-github.lua
Normal file
15
config/nvim/lua/plugins/telescope-github.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
-- Telescope extension to integrate with GitHub CLI
|
||||
-- https://github.com/nvim-telescope/telescope-github.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope-github.nvim",
|
||||
keys = {
|
||||
{ ";p", "<cmd>Telescope gh pull_request<cr>", desc = "GitHub Pull Requests" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("gh")
|
||||
end,
|
||||
},
|
||||
}
|
||||
12
config/nvim/lua/plugins/telescope-import.lua
Normal file
12
config/nvim/lua/plugins/telescope-import.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
-- Import modules with ease
|
||||
-- https://github.com/piersolenski/telescope-import.nvim
|
||||
return {
|
||||
"piersolenski/telescope-import.nvim",
|
||||
dependencies = "nvim-telescope/telescope.nvim",
|
||||
keys = {
|
||||
{ ";i", "<cmd>Telescope import<cr>", desc = "Import Modules" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("import")
|
||||
end,
|
||||
}
|
||||
21
config/nvim/lua/plugins/telescope-live-grep-args.lua
Normal file
21
config/nvim/lua/plugins/telescope-live-grep-args.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
-- Telescope extension to search with arguments
|
||||
-- https://github.com/nvim-telescope/telescope-live-grep-args.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-live-grep-args.nvim",
|
||||
opts = {
|
||||
extensions = {
|
||||
live_grep_args = {
|
||||
auto_quoting = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ ";s", "<cmd>Telescope live_grep_args<cr>", desc = "Live Grep" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("live_grep_args")
|
||||
end,
|
||||
},
|
||||
}
|
||||
14
config/nvim/lua/plugins/telescope-node-modules.lua
Normal file
14
config/nvim/lua/plugins/telescope-node-modules.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
-- Telescope plugin to search the node_modules directory
|
||||
-- https://github.com/nvim-telescope/telescope-node-modules.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-node-modules.nvim",
|
||||
keys = {
|
||||
{ ";N", "<cmd>Telescope node_modules list<cr>", desc = "Node Modules" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("node_modules")
|
||||
end,
|
||||
},
|
||||
}
|
||||
16
config/nvim/lua/plugins/telescope-smart-open.lua
Normal file
16
config/nvim/lua/plugins/telescope-smart-open.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Neovim plugin for fast file-finding
|
||||
-- https://github.com/danielfalk/smart-open.nvim
|
||||
return {
|
||||
"danielfalk/smart-open.nvim",
|
||||
branch = "0.2.x",
|
||||
keys = {
|
||||
{ ";o", "<cmd>Telescope smart_open<cr>", desc = "Smart Open" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("smart_open")
|
||||
end,
|
||||
dependencies = {
|
||||
"kkharji/sqlite.lua",
|
||||
{ "nvim-telescope/telescope-fzy-native.nvim" },
|
||||
},
|
||||
}
|
||||
26
config/nvim/lua/plugins/telescope-undo.lua
Normal file
26
config/nvim/lua/plugins/telescope-undo.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Telescope extension to view and search the undo tree
|
||||
-- https://github.com/debugloop/telescope-undo.nvim
|
||||
return {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"debugloop/telescope-undo.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ ";u", "<cmd>Telescope undo<cr>", desc = "Undo Tree" },
|
||||
},
|
||||
opts = {
|
||||
extensions = {
|
||||
undo = {
|
||||
side_by_side = true,
|
||||
layout_strategy = "vertical",
|
||||
layout_config = {
|
||||
preview_height = 0.8,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("undo")
|
||||
end,
|
||||
}
|
||||
19
config/nvim/lua/plugins/telescope.lua
Normal file
19
config/nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Find, Filter, Preview, Pick
|
||||
-- https://github.com/nvim-telescope/telescope.nvim
|
||||
return {
|
||||
"telescope.nvim",
|
||||
keys = {
|
||||
{ ";a", "<cmd>Telescope find_files hidden=true<cr>", desc = "Find Files (hidden)" },
|
||||
{ ";b", "<cmd>Telescope buffers previewer=false shorten_path=true theme=dropdown<cr>", desc = "Buffers" },
|
||||
{ ";cs", "<cmd>Telescope spell_suggest<cr>", desc = "Spell Suggest" },
|
||||
{ ";d", "<cmd>Telescope diagnostics<cr>", desc = "Diagnostics" },
|
||||
{ ";f", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
|
||||
{ ";n", "<cmd>Telescope notify<cr>", desc = "Notify" },
|
||||
{ ";r", "<cmd>Telescope resume<cr>", desc = "Resume" },
|
||||
{ "<C-p>", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
|
||||
{ "<C-t>", "<cmd>Telescope<cr>", desc = "Telescope" },
|
||||
{ "<M-b>", "<cmd>Telescope buffers previewer=false shorten_path=true theme=dropdown<cr>", desc = "Buffers" },
|
||||
{ "<M-p>", "<cmd>Telescope find_files hidden=true<cr>", desc = "Find Files (hidden)" },
|
||||
{ "\\\\", "<cmd>Telescope buffers previewer=false shorten_path=true theme=dropdown<cr>", desc = "Buffers" },
|
||||
},
|
||||
}
|
||||
28
config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua
Normal file
28
config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
-- TMUX commands manager
|
||||
-- https://github.com/otavioschwanck/tmux-awesome-manager.nvim
|
||||
return {
|
||||
"otavioschwanck/tmux-awesome-manager.nvim",
|
||||
keys = {
|
||||
-- stylua: ignore
|
||||
{ "<leader>sT", function() vim.cmd(":Telescope tmux-awesome-manager list_terms") end, desc = "TMUX Awesome Manager" },
|
||||
},
|
||||
config = function()
|
||||
local tmux = require("tmux-awesome-manager")
|
||||
|
||||
tmux.setup({
|
||||
per_project_commands = {
|
||||
astro = { { cmd = "pnpm dev", name = "Astro Dev" } },
|
||||
},
|
||||
session_name = "Neovim Terminals",
|
||||
project_open_as = "window",
|
||||
default_size = "30%",
|
||||
open_new_as = "window",
|
||||
})
|
||||
|
||||
tmux.run_wk({ cmd = "pnpm dev", name = "Astro Development Server" })
|
||||
|
||||
tmux.run_wk({ cmd = "yarn develop", name = "Brewery Server" })
|
||||
tmux.run_wk({ cmd = "MD=${PWD}/packages/xdl/ yarn dev", name = "Brewery Fast Server" })
|
||||
tmux.run_wk({ cmd = "yarn test:unit -u", name = "Brewery Unit Tests" })
|
||||
end,
|
||||
}
|
||||
6
config/nvim/lua/plugins/tmux-navigator.lua
Normal file
6
config/nvim/lua/plugins/tmux-navigator.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
-- Seamless navigation between tmux panes and vim splits
|
||||
-- https://github.com/christoomey/vim-tmux-navigator
|
||||
return {
|
||||
"christoomey/vim-tmux-navigator",
|
||||
event = "VeryLazy",
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user