mirror of
https://github.com/Dichgrem/DCGOS.git
synced 2025-12-16 19:22:00 -05:00
remove:nixvim
This commit is contained in:
15
dotfiles/.config/nvim/.neoconf.json
vendored
Normal file
15
dotfiles/.config/nvim/.neoconf.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
201
dotfiles/.config/nvim/LICENSE
vendored
Normal file
201
dotfiles/.config/nvim/LICENSE
vendored
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
18
dotfiles/.config/nvim/README.md
vendored
Normal file
18
dotfiles/.config/nvim/README.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# 💤 LazyVim
|
||||||
|
|
||||||
|
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||||
|
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
|
||||||
|
- Markdown support: using Markdown-priview.nvim ## Fix Markdown Code-box display
|
||||||
|
- Clipboard support: using nvim-osc52
|
||||||
|
- Git UI support: using lazygit.nvim
|
||||||
|
- Dashboard support: using snacks.nvim
|
||||||
|
|
||||||
|
## Keymaps
|
||||||
|
|
||||||
|
- Add Ctrl+W to quit buffer;
|
||||||
|
- Add Ctrl+Tab to switch buffer;
|
||||||
|
- Add Ctrl+Shift+5 to start a new terminal;
|
||||||
|
- Add Ctrl+/h/j/k/l to switch between terminals;
|
||||||
9
dotfiles/.config/nvim/init.lua
vendored
Normal file
9
dotfiles/.config/nvim/init.lua
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||||
|
require("config.lazy")
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = "markdown",
|
||||||
|
callback = function()
|
||||||
|
vim.opt_local.conceallevel = 0
|
||||||
|
end,
|
||||||
|
})
|
||||||
46
dotfiles/.config/nvim/lazy-lock.json
vendored
Normal file
46
dotfiles/.config/nvim/lazy-lock.json
vendored
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" },
|
||||||
|
"SchemaStore.nvim": { "branch": "main", "commit": "a9ba109549de51e3b4594d39a1c07f14b9d0cfa5" },
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "56a9dfd1e05868cf3189369aad87242941396563" },
|
||||||
|
"clangd_extensions.nvim": { "branch": "main", "commit": "db28f29be928d18cbfb86fbfb9f83f584f658feb" },
|
||||||
|
"cmake-tools.nvim": { "branch": "master", "commit": "591ae37fc5494677e929118f0a182d2b61fe1af1" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "6feb2f28f9a9385e401857b21eeac3c1b66dd628" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "8b729e489f1475615dc6c9737da917b3bc163605" },
|
||||||
|
"grug-far.nvim": { "branch": "main", "commit": "f24022147ca4a0fe1d424a520a9437accbeba193" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
|
||||||
|
"lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
|
||||||
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||||
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||||
|
"mini.ai": { "branch": "main", "commit": "7f1fe86277f0e977642cf8fe15f004229f61e61a" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
||||||
|
"mini.pairs": { "branch": "main", "commit": "69864a2efb36c030877421634487fd90db1e4298" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" },
|
||||||
|
"nvim-dap": { "branch": "master", "commit": "b0f983507e3702f073bfe1516846e58b56d4e42f" },
|
||||||
|
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
|
||||||
|
"nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
|
||||||
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||||
|
"nvim-lint": { "branch": "master", "commit": "b47cbb249351873e3a571751c3fb66ed6369852f" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "b8e7957bde4cbb3cb25a13a62548f7c273b026e9" },
|
||||||
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
|
"nvim-osc52": { "branch": "main", "commit": "04cfaba1865ae5c53b6f887c3ca7304973824fb2" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
||||||
|
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
|
||||||
|
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
|
||||||
|
}
|
||||||
15
dotfiles/.config/nvim/lazyvim.json
vendored
Normal file
15
dotfiles/.config/nvim/lazyvim.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"extras": [
|
||||||
|
"lazyvim.plugins.extras.dap.core",
|
||||||
|
"lazyvim.plugins.extras.lang.clangd",
|
||||||
|
"lazyvim.plugins.extras.lang.cmake",
|
||||||
|
"lazyvim.plugins.extras.lang.docker",
|
||||||
|
"lazyvim.plugins.extras.lang.go",
|
||||||
|
"lazyvim.plugins.extras.lang.yaml"
|
||||||
|
],
|
||||||
|
"install_version": 8,
|
||||||
|
"news": {
|
||||||
|
"NEWS.md": "10960"
|
||||||
|
},
|
||||||
|
"version": 8
|
||||||
|
}
|
||||||
8
dotfiles/.config/nvim/lua/config/autocmds.lua
vendored
Normal file
8
dotfiles/.config/nvim/lua/config/autocmds.lua
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- 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
|
||||||
|
-- with `vim.api.nvim_create_autocmd`
|
||||||
|
--
|
||||||
|
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||||
|
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||||
31
dotfiles/.config/nvim/lua/config/keymaps.lua
vendored
Normal file
31
dotfiles/.config/nvim/lua/config/keymaps.lua
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
|
|
||||||
|
local map = vim.keymap.set
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
|
||||||
|
-- === VSCode-like buffer/tab navigation ===
|
||||||
|
map("n", "<C-Tab>", "<cmd>bnext<CR>", { desc = "Next buffer (like VSCode)" })
|
||||||
|
map("n", "<C-S-Tab>", "<cmd>bprevious<CR>", { desc = "Previous buffer (like VSCode)" })
|
||||||
|
|
||||||
|
-- === Close buffer like Ctrl + W in VSCode ===
|
||||||
|
vim.keymap.set("n", "<C-w>", "<cmd>BufferLinePickClose<CR>", { desc = "Close buffer (BufferLine)" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<C-S-5>", function()
|
||||||
|
if vim.bo.buftype == "terminal" then
|
||||||
|
vim.cmd("vsplit | terminal")
|
||||||
|
else
|
||||||
|
vim.cmd("botright split | terminal")
|
||||||
|
end
|
||||||
|
end, { desc = "Split terminal" })
|
||||||
|
|
||||||
|
-- 在终端模式下的快捷键
|
||||||
|
vim.keymap.set("t", "<C-h>", "<C-\\><C-n><C-w>h", { desc = "Go to left window" })
|
||||||
|
vim.keymap.set("t", "<C-j>", "<C-\\><C-n><C-w>j", { desc = "Go to lower window" })
|
||||||
|
vim.keymap.set("t", "<C-k>", "<C-\\><C-n><C-w>k", { desc = "Go to upper window" })
|
||||||
|
vim.keymap.set("t", "<C-l>", "<C-\\><C-n><C-w>l", { desc = "Go to right window" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>xo", function()
|
||||||
|
vim.fn.jobstart({ "xdg-open", vim.fn.expand("%:p") }, { detach = true })
|
||||||
|
end, { desc = "使用系统默认应用程序打开当前文件" })
|
||||||
53
dotfiles/.config/nvim/lua/config/lazy.lua
vendored
Normal file
53
dotfiles/.config/nvim/lua/config/lazy.lua
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- add LazyVim and import its plugins
|
||||||
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
|
-- import/override with your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||||
|
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||||
|
lazy = false,
|
||||||
|
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||||
|
-- have outdated releases, which may break your Neovim install.
|
||||||
|
version = false, -- always use the latest git commit
|
||||||
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||||
|
checker = {
|
||||||
|
enabled = true, -- check for plugin updates periodically
|
||||||
|
notify = false, -- notify on update
|
||||||
|
}, -- automatically check for plugin updates
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
-- disable some rtp plugins
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
-- "matchparen",
|
||||||
|
-- "netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
3
dotfiles/.config/nvim/lua/config/options.lua
vendored
Normal file
3
dotfiles/.config/nvim/lua/config/options.lua
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
18
dotfiles/.config/nvim/lua/plugins/dashboard.lua
vendored
Normal file
18
dotfiles/.config/nvim/lua/plugins/dashboard.lua
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-- ~/.config/nvim/lua/plugins/dashboard.lua
|
||||||
|
return {
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
opts = {
|
||||||
|
dashboard = {
|
||||||
|
preset = {
|
||||||
|
header = [[
|
||||||
|
███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗
|
||||||
|
████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║
|
||||||
|
██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║
|
||||||
|
██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║
|
||||||
|
██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║
|
||||||
|
╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
|
||||||
|
]],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
197
dotfiles/.config/nvim/lua/plugins/example.lua
vendored
Normal file
197
dotfiles/.config/nvim/lua/plugins/example.lua
vendored
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
||||||
|
-- stylua: ignore
|
||||||
|
if true then return {} end
|
||||||
|
|
||||||
|
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||||
|
--
|
||||||
|
-- In your plugin files, you can:
|
||||||
|
-- * add extra plugins
|
||||||
|
-- * disable/enabled LazyVim plugins
|
||||||
|
-- * override the configuration of LazyVim plugins
|
||||||
|
return {
|
||||||
|
-- add gruvbox
|
||||||
|
{ "ellisonleao/gruvbox.nvim" },
|
||||||
|
|
||||||
|
-- Configure LazyVim to load gruvbox
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "gruvbox",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- change trouble config
|
||||||
|
{
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
-- opts will be merged with the parent spec
|
||||||
|
opts = { use_diagnostic_signs = true },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- disable trouble
|
||||||
|
{ "folke/trouble.nvim", enabled = false },
|
||||||
|
|
||||||
|
-- override nvim-cmp and add cmp-emoji
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = { "hrsh7th/cmp-emoji" },
|
||||||
|
---@param opts cmp.ConfigSchema
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.sources, { name = "emoji" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- change some telescope options and a keymap to browse plugin files
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
keys = {
|
||||||
|
-- add a keymap to browse plugin files
|
||||||
|
-- stylua: ignore
|
||||||
|
{
|
||||||
|
"<leader>fp",
|
||||||
|
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
||||||
|
desc = "Find Plugin File",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- change some options
|
||||||
|
opts = {
|
||||||
|
defaults = {
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = { prompt_position = "top" },
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- add 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",
|
||||||
|
"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, {
|
||||||
|
function()
|
||||||
|
return "😄"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- or you can return new options to override all the defaults
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = function()
|
||||||
|
return {
|
||||||
|
--[[add your custom lualine config here]]
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- use mini.starter instead of alpha
|
||||||
|
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
||||||
|
|
||||||
|
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||||
|
|
||||||
|
-- add any tools you want to have installed below
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"stylua",
|
||||||
|
"shellcheck",
|
||||||
|
"shfmt",
|
||||||
|
"flake8",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
16
dotfiles/.config/nvim/lua/plugins/lazygit.lua
vendored
Normal file
16
dotfiles/.config/nvim/lua/plugins/lazygit.lua
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
return {
|
||||||
|
"kdheepak/lazygit.nvim",
|
||||||
|
cmd = {
|
||||||
|
"LazyGit",
|
||||||
|
"LazyGitConfig",
|
||||||
|
"LazyGitCurrentFile",
|
||||||
|
"LazyGitFilter",
|
||||||
|
"LazyGitFilterCurrentFile",
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>gg", "<cmd>LazyGit<cr>", desc = "Open LazyGit" },
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
},
|
||||||
|
}
|
||||||
9
dotfiles/.config/nvim/lua/plugins/markdown.lua
vendored
Normal file
9
dotfiles/.config/nvim/lua/plugins/markdown.lua
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"iamcco/markdown-preview.nvim",
|
||||||
|
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||||
|
ft = { "markdown" },
|
||||||
|
build = ':call mkdp#util#install()'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
18
dotfiles/.config/nvim/lua/plugins/osc52.lua
vendored
Normal file
18
dotfiles/.config/nvim/lua/plugins/osc52.lua
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
return {
|
||||||
|
"ojroques/nvim-osc52",
|
||||||
|
config = function()
|
||||||
|
require("osc52").setup {
|
||||||
|
max_length = 0, -- 不限制长度
|
||||||
|
silent = false,
|
||||||
|
trim = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
local function copy()
|
||||||
|
if vim.v.event.operator == "y" and vim.v.event.regname == "" then
|
||||||
|
require("osc52").copy_register("")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("TextYankPost", { callback = copy })
|
||||||
|
end,
|
||||||
|
}
|
||||||
3
dotfiles/.config/nvim/stylua.toml
vendored
Normal file
3
dotfiles/.config/nvim/stylua.toml
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
column_width = 120
|
||||||
@@ -1,225 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraConfigLua = ''
|
|
||||||
function ToggleLineNumber()
|
|
||||||
if vim.wo.number then
|
|
||||||
vim.wo.number = false
|
|
||||||
else
|
|
||||||
vim.wo.number = true
|
|
||||||
vim.wo.relativenumber = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function ToggleRelativeLineNumber()
|
|
||||||
if vim.wo.relativenumber then
|
|
||||||
vim.wo.relativenumber = false
|
|
||||||
else
|
|
||||||
vim.wo.relativenumber = true
|
|
||||||
vim.wo.number = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function ToggleWrap()
|
|
||||||
vim.wo.wrap = not vim.wo.wrap
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.lsp.inlay_hint then
|
|
||||||
vim.keymap.set('n', '<leader>uh', function()
|
|
||||||
vim.lsp.inlay_hint(0, nil)
|
|
||||||
end, { desc = 'Toggle Inlay Hints' })
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
action = "<cmd> norm! ggVG<cr>";
|
|
||||||
key = "<C-a>";
|
|
||||||
mode = "i";
|
|
||||||
options.desc = "Select all lines in buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-W>c";
|
|
||||||
key = "<leader>wd";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Delete window";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-W>s";
|
|
||||||
key = "<leader>-";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Split window below";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-W>v";
|
|
||||||
key = "<leader>|";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Split window right";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>m .+1<cr>==";
|
|
||||||
key = "<A-Down>";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Move line down";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>m .-2<cr>==";
|
|
||||||
key = "<A-Up>";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Move line up";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>quitall<cr><esc>";
|
|
||||||
key = "<leader>qq";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Quit all";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>w<cr><esc>";
|
|
||||||
key = "<C-s>";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Save file";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-w>j";
|
|
||||||
key = "<C-Down>";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Move To Window Down";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-w>h";
|
|
||||||
key = "<C-Left>";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Move To Window Left";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-w>l";
|
|
||||||
key = "<C-Right>";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Move To Window Right";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<C-w>k";
|
|
||||||
key = "<C-Up>";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Move To Window Up";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "\"_d";
|
|
||||||
key = "<leader>D";
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"v"
|
|
||||||
];
|
|
||||||
options.desc = "Delete to void register";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>noh<cr><esc>";
|
|
||||||
key = "<esc>";
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"i"
|
|
||||||
];
|
|
||||||
options = {
|
|
||||||
desc = "Escape and clear hlsearch";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":lua ToggleLineNumber()<cr>";
|
|
||||||
key = "<leader>ul";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Toggle Line Numbers";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":lua ToggleRelativeLineNumber()<cr>";
|
|
||||||
key = "<leader>uL";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Toggle Relative Line Numbers";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":lua ToggleWrap()<cr>";
|
|
||||||
key = "<leader>uw";
|
|
||||||
mode = "n";
|
|
||||||
options = {
|
|
||||||
desc = "Toggle Line Wrap";
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "\"+y";
|
|
||||||
key = "<leader>y";
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"v"
|
|
||||||
];
|
|
||||||
options.desc = "Copy to system clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":m '>+1<cr>gv=gv";
|
|
||||||
key = "<A-Down>";
|
|
||||||
mode = "v";
|
|
||||||
options.desc = "Move line Down";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ":m '<-2<cr>gv=gv";
|
|
||||||
key = "<A-Up>";
|
|
||||||
mode = "v";
|
|
||||||
options.desc = "Move line up";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<gv";
|
|
||||||
key = "<";
|
|
||||||
mode = "v";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = ">gv";
|
|
||||||
key = ">";
|
|
||||||
mode = "v";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "\"_dP";
|
|
||||||
key = "p";
|
|
||||||
mode = "x";
|
|
||||||
options.desc = "Deletes to void register and paste over";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "mzJ`z";
|
|
||||||
key = "J";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Allow cursor to stay in the same place after appending to current line ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "Nzzzv";
|
|
||||||
key = "N";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Allow search terms to stay in the middle";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "nzzzv";
|
|
||||||
key = "n";
|
|
||||||
mode = "n";
|
|
||||||
options.desc = "Allow search terms to stay in the middle";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
{inputs, ...}: {
|
|
||||||
imports = [inputs.nixvim.homeManagerModules.nixvim];
|
|
||||||
programs.nixvim = {
|
|
||||||
colorschemes = {
|
|
||||||
catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background = {
|
|
||||||
dark = "mocha";
|
|
||||||
light = "macchiato";
|
|
||||||
};
|
|
||||||
flavour = "mocha";
|
|
||||||
integrations = {
|
|
||||||
cmp = true;
|
|
||||||
fidget = true;
|
|
||||||
lsp_trouble = true;
|
|
||||||
mini.enabled = true;
|
|
||||||
native_lsp = {
|
|
||||||
enabled = true;
|
|
||||||
inlay_hints = {
|
|
||||||
background = true;
|
|
||||||
};
|
|
||||||
underlines = {
|
|
||||||
errors = ["underline"];
|
|
||||||
hints = ["underline"];
|
|
||||||
information = ["underline"];
|
|
||||||
warnings = ["underline"];
|
|
||||||
};
|
|
||||||
virtual_text = {
|
|
||||||
errors = ["italic"];
|
|
||||||
hints = ["italic"];
|
|
||||||
information = ["italic"];
|
|
||||||
ok = ["italic"];
|
|
||||||
warnings = ["italic"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
neotree = true;
|
|
||||||
noice = true;
|
|
||||||
notify = true;
|
|
||||||
telescope.enabled = true;
|
|
||||||
treesitter = true;
|
|
||||||
treesitter_context = true;
|
|
||||||
which_key = true;
|
|
||||||
};
|
|
||||||
transparent_background = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
defaultEditor = true;
|
|
||||||
enable = true;
|
|
||||||
enableMan = false;
|
|
||||||
globals = {
|
|
||||||
have_nerd_font = true;
|
|
||||||
mapleader = " ";
|
|
||||||
maplocalleader = " ";
|
|
||||||
};
|
|
||||||
performance = {
|
|
||||||
combinePlugins.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
programs.nixvim = {
|
|
||||||
opts = {
|
|
||||||
breakindent = true;
|
|
||||||
clipboard = {
|
|
||||||
providers = {
|
|
||||||
wl-copy = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.wl-clipboard-rs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
register = "unnamedplus";
|
|
||||||
};
|
|
||||||
cmdheight = 2;
|
|
||||||
cursorline = true;
|
|
||||||
encoding = "utf-8";
|
|
||||||
expandtab = true;
|
|
||||||
fileencoding = "utf-8";
|
|
||||||
grepformat = "%f:%l:%c:%m";
|
|
||||||
grepprg = "rg --vimgrep";
|
|
||||||
hlsearch = true;
|
|
||||||
ignorecase = true;
|
|
||||||
inccommand = "split";
|
|
||||||
list = true;
|
|
||||||
listchars.__raw = "{ tab = '» ', trail = '·', nbsp = '␣' }";
|
|
||||||
mouse = "a";
|
|
||||||
number = true;
|
|
||||||
pumheight = 0;
|
|
||||||
scrolloff = 8;
|
|
||||||
shiftwidth = 2;
|
|
||||||
showmode = false;
|
|
||||||
signcolumn = "yes";
|
|
||||||
smartcase = true;
|
|
||||||
softtabstop = 2;
|
|
||||||
splitbelow = true;
|
|
||||||
splitright = true;
|
|
||||||
tabstop = 2;
|
|
||||||
termguicolors = true;
|
|
||||||
timeoutlen = 250;
|
|
||||||
undofile = true;
|
|
||||||
updatetime = 50;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.nvim-autopairs = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
extraConfigLua = ''
|
|
||||||
require('cmp').event:on('confirm_done', require('nvim-autopairs.completion.cmp').on_confirm_done())
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,175 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins = {
|
|
||||||
bufferline = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
highlights = {
|
|
||||||
background = {
|
|
||||||
bg = "#252434";
|
|
||||||
fg = "#605f6f";
|
|
||||||
};
|
|
||||||
|
|
||||||
buffer_selected = {
|
|
||||||
bg = "#1E1D2D";
|
|
||||||
fg = "#D9E0EE";
|
|
||||||
};
|
|
||||||
buffer_visible = {
|
|
||||||
fg = "#605f6f";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
|
|
||||||
close_button = {
|
|
||||||
fg = "#605f6f";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
close_button_visible = {
|
|
||||||
fg = "#605f6f";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
|
|
||||||
duplicate = {
|
|
||||||
fg = "NONE";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
duplicate_selected = {
|
|
||||||
fg = "#F38BA8";
|
|
||||||
bg = "#1E1D2D";
|
|
||||||
};
|
|
||||||
duplicate_visible = {
|
|
||||||
fg = "#89B4FA";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
|
|
||||||
error = {
|
|
||||||
fg = "#605f6f";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
error_diagnostic = {
|
|
||||||
fg = "#605f6f";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
|
|
||||||
fill = {
|
|
||||||
bg = "#1E1D2D";
|
|
||||||
fg = "#605f6f";
|
|
||||||
};
|
|
||||||
indicator_selected = {
|
|
||||||
bg = "#1E1D2D";
|
|
||||||
fg = "#1E1D2D";
|
|
||||||
};
|
|
||||||
|
|
||||||
modified = {
|
|
||||||
fg = "#F38BA8";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
modified_visible = {
|
|
||||||
fg = "#F38BA8";
|
|
||||||
bg = "#252434";
|
|
||||||
};
|
|
||||||
modified_selected = {
|
|
||||||
fg = "#ABE9B3";
|
|
||||||
bg = "#1E1D2D";
|
|
||||||
};
|
|
||||||
|
|
||||||
separator = {
|
|
||||||
bg = "#252434";
|
|
||||||
fg = "#252434";
|
|
||||||
};
|
|
||||||
separator_visible = {
|
|
||||||
bg = "#252434";
|
|
||||||
fg = "#252434";
|
|
||||||
};
|
|
||||||
separator_selected = {
|
|
||||||
bg = "#252434";
|
|
||||||
fg = "#252434";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
options.offsets = [
|
|
||||||
{
|
|
||||||
filetype = "neo-tree";
|
|
||||||
text = "Neo-tree";
|
|
||||||
highlight = "Directory";
|
|
||||||
text_align = "left";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-Tab>";
|
|
||||||
action = "<cmd>BufferLineCycleNext<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Cycle to next buffer";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-S-Tab>";
|
|
||||||
action = "<cmd>BufferLineCyclePrev<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Cycle to previous buffer";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-x>";
|
|
||||||
action = "<cmd>:bp | bd #<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Delete buffer";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>br";
|
|
||||||
action = "<cmd>BufferLineCloseRight<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Delete buffers to the right";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bl";
|
|
||||||
action = "<cmd>BufferLineCloseLeft<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Delete buffers to the left";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bo";
|
|
||||||
action = "<cmd>BufferLineCloseOthers<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Delete other buffers";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bp";
|
|
||||||
action = "<cmd>BufferLineTogglePin<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "Toggle pin";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bP";
|
|
||||||
action = "<Cmd>BufferLineGroupClose ungrouped<CR>";
|
|
||||||
options = {
|
|
||||||
desc = "Delete non-pinned buffers";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
stylua
|
|
||||||
];
|
|
||||||
|
|
||||||
plugins.conform-nvim = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
notify_on_error = false;
|
|
||||||
format_on_save = ''
|
|
||||||
function(bufnr)
|
|
||||||
-- Disable "format_on_save lsp_fallback" for lanuages that don't
|
|
||||||
-- have a well standardized coding style. You can add additional
|
|
||||||
-- lanuages here or re-enable it for the disabled ones.
|
|
||||||
local disable_filetypes = { c = true, cpp = true }
|
|
||||||
return {
|
|
||||||
timeout_ms = 500,
|
|
||||||
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype]
|
|
||||||
}
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
formatters_by_ft = {
|
|
||||||
lua = ["stylua"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
mode = "";
|
|
||||||
key = "<leader>f";
|
|
||||||
action.__raw = ''
|
|
||||||
function()
|
|
||||||
require('conform').format { async = true, lsp_fallback = true }
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
options = {
|
|
||||||
desc = "[F]ormat buffer";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.edgy = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.indent-blankline = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.lint = {
|
|
||||||
autoCmd = {
|
|
||||||
callback.__raw = ''
|
|
||||||
function()
|
|
||||||
require('lint').try_lint()
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
group = "lint";
|
|
||||||
event = [
|
|
||||||
"BufEnter"
|
|
||||||
"BufWritePost"
|
|
||||||
"InsertLeave"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
lintersByFt = {
|
|
||||||
nix = ["nix"];
|
|
||||||
markdown = [
|
|
||||||
"markdownlint"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
autoGroups = {
|
|
||||||
lint = {
|
|
||||||
clear = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
autoGroups = {
|
|
||||||
"kickstart-lsp-attach" = {
|
|
||||||
clear = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins = {
|
|
||||||
cmp-nvim-lsp.enable = true;
|
|
||||||
fidget.enable = true;
|
|
||||||
|
|
||||||
lsp = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
keymaps = {
|
|
||||||
diagnostic = {
|
|
||||||
"<leader>q" = {
|
|
||||||
action = "setloclist";
|
|
||||||
desc = "Open diagnostic [Q]uickfix list";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
extra = [
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "gd";
|
|
||||||
action.__raw = "require('telescope.builtin').lsp_definitions";
|
|
||||||
options = {
|
|
||||||
desc = "LSP: [G]oto [D]efinition";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "gr";
|
|
||||||
action.__raw = "require('telescope.builtin').lsp_references";
|
|
||||||
options = {
|
|
||||||
desc = "LSP: [G]oto [R]eferences";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "gI";
|
|
||||||
action.__raw = "require('telescope.builtin').lsp_implementations";
|
|
||||||
options = {
|
|
||||||
desc = "LSP: [G]oto [I]mplementation";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>D";
|
|
||||||
action.__raw = "require('telescope.builtin').lsp_type_definitions";
|
|
||||||
options = {
|
|
||||||
desc = "LSP: Type [D]efinition";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ds";
|
|
||||||
action.__raw = "require('telescope.builtin').lsp_document_symbols";
|
|
||||||
options = {
|
|
||||||
desc = "LSP: [D]ocument [S]ymbols";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ws";
|
|
||||||
action.__raw = "require('telescope.builtin').lsp_dynamic_workspace_symbols";
|
|
||||||
options = {
|
|
||||||
desc = "LSP: [W]orkspace [S]ymbols";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
lspBuf = {
|
|
||||||
"<leader>rn" = {
|
|
||||||
action = "rename";
|
|
||||||
desc = "LSP: [R]e[n]ame";
|
|
||||||
};
|
|
||||||
"<leader>ca" = {
|
|
||||||
action = "code_action";
|
|
||||||
desc = "LSP: [C]ode [A]ction";
|
|
||||||
};
|
|
||||||
"gD" = {
|
|
||||||
action = "declaration";
|
|
||||||
desc = "LSP: [G]oto [D]eclaration";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
servers = {
|
|
||||||
# clangd = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
# lua_ls = {
|
|
||||||
# enable = true;
|
|
||||||
# settings = {
|
|
||||||
# completion = {
|
|
||||||
# callSnippet = "Replace";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# gopls = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
# pyright = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
# rust_analyzer = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
# ...etc. See `https://nix-community.github.io/nixvim/plugins/lsp` for a list of pre-configured LSPs
|
|
||||||
|
|
||||||
# Some languages (like typscript) have entire language plugins that can be useful:
|
|
||||||
# `https://nix-community.github.io/nixvim/plugins/typescript-tools/index.html?highlight=typescript-tools#pluginstypescript-toolspackage`
|
|
||||||
|
|
||||||
# But for many setups the LSP (`ts_ls`) will work just fine
|
|
||||||
ts_ls = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.mini = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
ai = {
|
|
||||||
n_lines = 500;
|
|
||||||
};
|
|
||||||
statusline = {
|
|
||||||
use_icons.__raw = "vim.g.have_nerd_font";
|
|
||||||
};
|
|
||||||
surround = {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraConfigLua = ''
|
|
||||||
require('mini.statusline').section_location = function()
|
|
||||||
return '%2l:%-2v'
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.cmp = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
completion = {
|
|
||||||
completeopt = "menu,menuone,noinsert";
|
|
||||||
};
|
|
||||||
|
|
||||||
mapping = {
|
|
||||||
"<C-n>" = "cmp.mapping.select_next_item()";
|
|
||||||
"<C-p>" = "cmp.mapping.select_prev_item()";
|
|
||||||
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
|
||||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
|
||||||
"<C-y>" = "cmp.mapping.confirm { select = true }";
|
|
||||||
"<C-Space>" = "cmp.mapping.complete {}";
|
|
||||||
"<C-l>" = ''
|
|
||||||
cmp.mapping(function()
|
|
||||||
if luasnip.expand_or_locally_jumpable() then
|
|
||||||
luasnip.expand_or_jump()
|
|
||||||
end
|
|
||||||
end, { 'i', 's' })
|
|
||||||
'';
|
|
||||||
"<C-h>" = ''
|
|
||||||
cmp.mapping(function()
|
|
||||||
if luasnip.locally_jumpable(-1) then
|
|
||||||
luasnip.jump(-1)
|
|
||||||
end
|
|
||||||
end, { 'i', 's' })
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
snippet = {
|
|
||||||
expand = ''
|
|
||||||
function(args)
|
|
||||||
require('luasnip').lsp_expand(args.body)
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
sources = [
|
|
||||||
{
|
|
||||||
name = "luasnip";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nvim_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "path";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.nvim-tree = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
key = "<C-\\>";
|
|
||||||
action = "<cmd>NvimTreeToggle<cr>";
|
|
||||||
options = {
|
|
||||||
desc = "NvimTree Toggle";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.telescope = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extensions = {
|
|
||||||
fzf-native.enable = true;
|
|
||||||
ui-select.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = {
|
|
||||||
"<leader>sh" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "help_tags";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [H]elp";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>sk" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "keymaps";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [K]eymaps";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>sf" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "find_files";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [F]iles";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>ss" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "builtin";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [S]elect Telescope";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>sw" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "grep_string";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch current [W]ord";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>sg" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "live_grep";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch by [G]rep";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>sd" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "diagnostics";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [D]iagnostics";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>sr" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "resume";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [R]esume";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader>s" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "oldfiles";
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch Recent Files ('.' for repeat)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"<leader><leader>" = {
|
|
||||||
mode = "n";
|
|
||||||
action = "buffers";
|
|
||||||
options = {
|
|
||||||
desc = "[ ] Find existing buffers";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
extensions.__raw = "{ ['ui-select'] = { require('telescope.themes').get_dropdown() } }";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>/";
|
|
||||||
action.__raw = ''
|
|
||||||
function()
|
|
||||||
require('telescope.builtin').current_buffer_fuzzy_find(
|
|
||||||
require('telescope.themes').get_dropdown {
|
|
||||||
winblend = 10,
|
|
||||||
previewer = false
|
|
||||||
}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
options = {
|
|
||||||
desc = "[/] Fuzzily search in current buffer";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>s/";
|
|
||||||
action.__raw = ''
|
|
||||||
function()
|
|
||||||
require('telescope.builtin').live_grep {
|
|
||||||
grep_open_files = true,
|
|
||||||
prompt_title = 'Live Grep in Open Files'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [/] in Open Files";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>sn";
|
|
||||||
action.__raw = ''
|
|
||||||
function()
|
|
||||||
require('telescope.builtin').find_files {
|
|
||||||
cwd = vim.fn.stdpath 'config'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
options = {
|
|
||||||
desc = "[S]earch [N]eovim files";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
action = "<cmd>2ToggleTerm<cr>";
|
|
||||||
key = "<C-g>";
|
|
||||||
mode = "t";
|
|
||||||
options.desc = "Open/Close Terminal 2";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>wincmd j<cr>";
|
|
||||||
key = "<C-Down>";
|
|
||||||
mode = "t";
|
|
||||||
options.desc = "Go to Down window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>wincmd h<cr>";
|
|
||||||
key = "<C-Left>";
|
|
||||||
mode = "t";
|
|
||||||
options.desc = "Go to Left window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>wincmd l<cr>";
|
|
||||||
key = "<C-Right>";
|
|
||||||
mode = "t";
|
|
||||||
options.desc = "Go to Right window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>wincmd k<cr>";
|
|
||||||
key = "<C-Up>";
|
|
||||||
mode = "t";
|
|
||||||
options.desc = "Go to Up window";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
plugins.toggleterm = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
close_on_exit = true;
|
|
||||||
direction = "horizontal"; # 'vertical' | 'horizontal' | 'tab' | 'float'
|
|
||||||
float_opts = {
|
|
||||||
border = "single"; # 'single' | 'double' | 'shadow' | 'curved' | ... other options supported by win open
|
|
||||||
height = 20;
|
|
||||||
width = 80;
|
|
||||||
winblend = 0;
|
|
||||||
};
|
|
||||||
hide_numbers = true;
|
|
||||||
insert_mappings = true;
|
|
||||||
open_mapping = "[[<C-/>]]";
|
|
||||||
persist_mode = true;
|
|
||||||
shade_terminals = true;
|
|
||||||
shell = "nu";
|
|
||||||
size = ''
|
|
||||||
function(term)
|
|
||||||
if term.direction == "horizontal" then
|
|
||||||
return 30
|
|
||||||
elseif term.direction == "vertical" then
|
|
||||||
return vim.o.columns * 0.4
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
start_in_insert = true;
|
|
||||||
terminal_mappings = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.treesitter = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
ensureInstalled = [
|
|
||||||
"bash"
|
|
||||||
"c"
|
|
||||||
"diff"
|
|
||||||
"html"
|
|
||||||
"lua"
|
|
||||||
"luadoc"
|
|
||||||
"markdown"
|
|
||||||
"markdown_inline"
|
|
||||||
"query"
|
|
||||||
"vim"
|
|
||||||
"vimdoc"
|
|
||||||
];
|
|
||||||
|
|
||||||
highlight = {
|
|
||||||
additional_vim_regex_highlighting = true;
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
indent = {
|
|
||||||
enable = true;
|
|
||||||
disable = [
|
|
||||||
"ruby"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins = {
|
|
||||||
alpha = {
|
|
||||||
enable = true;
|
|
||||||
layout = let
|
|
||||||
padding = val: {
|
|
||||||
type = "padding";
|
|
||||||
inherit val;
|
|
||||||
};
|
|
||||||
in [
|
|
||||||
(padding 4)
|
|
||||||
{
|
|
||||||
opts = {
|
|
||||||
hl = "AlphaHeader";
|
|
||||||
position = "center";
|
|
||||||
};
|
|
||||||
type = "text";
|
|
||||||
val = [
|
|
||||||
" ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗"
|
|
||||||
" ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║"
|
|
||||||
" ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║"
|
|
||||||
" ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║"
|
|
||||||
" ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║"
|
|
||||||
" ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(padding 6)
|
|
||||||
{
|
|
||||||
type = "button";
|
|
||||||
val = " Find File";
|
|
||||||
on_press.raw = "require('telescope.builtin').find_files";
|
|
||||||
opts = {
|
|
||||||
keymap = [
|
|
||||||
"n"
|
|
||||||
"f"
|
|
||||||
":Telescope find_files <CR>"
|
|
||||||
{
|
|
||||||
noremap = true;
|
|
||||||
silent = true;
|
|
||||||
nowait = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shortcut = "f";
|
|
||||||
|
|
||||||
position = "center";
|
|
||||||
cursor = 3;
|
|
||||||
width = 40;
|
|
||||||
align_shortcut = "right";
|
|
||||||
hl_shortcut = "Keyword";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
(padding 1)
|
|
||||||
{
|
|
||||||
type = "button";
|
|
||||||
val = " New File";
|
|
||||||
on_press.__raw = "function() vim.cmd[[ene]] end";
|
|
||||||
opts = {
|
|
||||||
keymap = [
|
|
||||||
"n"
|
|
||||||
"n"
|
|
||||||
":ene <BAR> startinsert <CR>"
|
|
||||||
{
|
|
||||||
noremap = true;
|
|
||||||
silent = true;
|
|
||||||
nowait = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shortcut = "n";
|
|
||||||
|
|
||||||
position = "center";
|
|
||||||
cursor = 3;
|
|
||||||
width = 40;
|
|
||||||
align_shortcut = "right";
|
|
||||||
hl_shortcut = "Keyword";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
(padding 1)
|
|
||||||
{
|
|
||||||
type = "button";
|
|
||||||
val = " Recent Files";
|
|
||||||
on_press.raw = "require('telescope.builtin').oldfiles";
|
|
||||||
opts = {
|
|
||||||
keymap = [
|
|
||||||
"n"
|
|
||||||
"r"
|
|
||||||
":Telescope oldfiles <CR>"
|
|
||||||
{
|
|
||||||
noremap = true;
|
|
||||||
silent = true;
|
|
||||||
nowait = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shortcut = "r";
|
|
||||||
|
|
||||||
position = "center";
|
|
||||||
cursor = 3;
|
|
||||||
width = 40;
|
|
||||||
align_shortcut = "right";
|
|
||||||
hl_shortcut = "Keyword";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
(padding 1)
|
|
||||||
{
|
|
||||||
type = "button";
|
|
||||||
val = " Find Word";
|
|
||||||
on_press.raw = "require('telescope.builtin').live_grep";
|
|
||||||
opts = {
|
|
||||||
keymap = [
|
|
||||||
"n"
|
|
||||||
"w"
|
|
||||||
":Telescope live_grep <CR>"
|
|
||||||
{
|
|
||||||
noremap = true;
|
|
||||||
silent = true;
|
|
||||||
nowait = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shortcut = "w";
|
|
||||||
|
|
||||||
position = "center";
|
|
||||||
cursor = 3;
|
|
||||||
width = 40;
|
|
||||||
align_shortcut = "right";
|
|
||||||
hl_shortcut = "Keyword";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
(padding 1)
|
|
||||||
{
|
|
||||||
type = "button";
|
|
||||||
val = " Restore Session";
|
|
||||||
on_press.raw = "require('persistence').load()";
|
|
||||||
opts = {
|
|
||||||
keymap = [
|
|
||||||
"n"
|
|
||||||
"s"
|
|
||||||
":lua require('persistence').load()<cr>"
|
|
||||||
{
|
|
||||||
noremap = true;
|
|
||||||
silent = true;
|
|
||||||
nowait = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shortcut = "s";
|
|
||||||
|
|
||||||
position = "center";
|
|
||||||
cursor = 3;
|
|
||||||
width = 40;
|
|
||||||
align_shortcut = "right";
|
|
||||||
hl_shortcut = "Keyword";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
(padding 1)
|
|
||||||
{
|
|
||||||
type = "button";
|
|
||||||
val = " Quit Neovim";
|
|
||||||
on_press.__raw = "function() vim.cmd[[qa]] end";
|
|
||||||
opts = {
|
|
||||||
keymap = [
|
|
||||||
"n"
|
|
||||||
"q"
|
|
||||||
":qa<CR>"
|
|
||||||
{
|
|
||||||
noremap = true;
|
|
||||||
silent = true;
|
|
||||||
nowait = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shortcut = "q";
|
|
||||||
|
|
||||||
position = "center";
|
|
||||||
cursor = 3;
|
|
||||||
width = 40;
|
|
||||||
align_shortcut = "right";
|
|
||||||
hl_shortcut = "Keyword";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
dressing.enable = true;
|
|
||||||
neoscroll.enable = true;
|
|
||||||
nui.enable = true;
|
|
||||||
persistence.enable = true;
|
|
||||||
todo-comments.enable = true;
|
|
||||||
trim.enable = true;
|
|
||||||
web-devicons.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
_: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.which-key = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
spec = [
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>c";
|
|
||||||
group = "[C]ode";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>d";
|
|
||||||
group = "[D]ocument";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>h";
|
|
||||||
group = "Git [H]unk";
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"v"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>r";
|
|
||||||
group = "[R]ename";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>s";
|
|
||||||
group = "[S]earch";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>t";
|
|
||||||
group = "[T]oggle";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
__unkeyed-1 = "<leader>w";
|
|
||||||
group = "[W]orkspace";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -59,6 +59,7 @@ in {
|
|||||||
zola
|
zola
|
||||||
go
|
go
|
||||||
pnpm
|
pnpm
|
||||||
|
tree
|
||||||
|
|
||||||
#Android
|
#Android
|
||||||
android-tools
|
android-tools
|
||||||
@@ -68,6 +69,9 @@ in {
|
|||||||
libnotify
|
libnotify
|
||||||
libvirt
|
libvirt
|
||||||
lm_sensors
|
lm_sensors
|
||||||
|
gcc
|
||||||
|
clang
|
||||||
|
zig
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user