added things
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.softtabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
|
vim.opt.smartindent = true
|
||||||
|
|
||||||
|
vim.opt.wrap = true
|
||||||
|
|
||||||
|
vim.opt.swapfile = false
|
||||||
|
vim.opt.backup = false
|
||||||
|
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||||
|
vim.opt.undofile = true
|
||||||
|
|
||||||
|
vim.opt.hlsearch = false
|
||||||
|
vim.opt.incsearch = true
|
||||||
|
|
||||||
|
vim.opt.scrolloff = 8
|
||||||
|
vim.opt.signcolumn = "yes"
|
||||||
|
vim.opt.isfname:append("@-@")
|
||||||
|
|
||||||
|
vim.opt.updatetime = 50
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
hi Normal guibg=NONE ctermbg=NONE
|
||||||
|
hi NonText guibg=NONE ctermbg=NONE
|
||||||
|
hi LineNr guibg=NONE ctermbg=NONE
|
||||||
|
]])
|
||||||
|
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
|
||||||
|
require("config.keymaps")
|
||||||
|
require("config.lazy")
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "451168851e8e2466bc97ee3e026c3dcb9141ce07" },
|
||||||
|
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||||
|
"neoconf.nvim": { "branch": "main", "commit": "25b22d7f58ed15fdddb580e730966063f3c427e3" },
|
||||||
|
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||||
|
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" },
|
||||||
|
"undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
vim.g.mapleader = " "
|
||||||
|
|
||||||
|
-- move selected stuff with J and K
|
||||||
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||||
|
|
||||||
|
-- make the cursor in the middle when scrolling fast
|
||||||
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||||
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||||
|
|
||||||
|
-- clipboard remap
|
||||||
|
vim.keymap.set("n", "<leader>y", "\"+y")
|
||||||
|
vim.keymap.set("v", "<leader>y", "\"+y")
|
||||||
|
vim.keymap.set("n", "<leader>Y", "\"+Y")
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
callback = function(args)
|
||||||
|
local map = vim.keymap.set
|
||||||
|
local opts = { buffer = args.buf }
|
||||||
|
|
||||||
|
map("n", "gd", vim.lsp.buf.definition, opts)
|
||||||
|
map("n", "K", vim.lsp.buf.hover, opts)
|
||||||
|
map("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||||
|
map("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||||
|
map("n", "gr", vim.lsp.buf.references, opts)
|
||||||
|
end,
|
||||||
|
})
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
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)
|
||||||
|
|
||||||
|
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||||
|
-- loading lazy.nvim so that mappings are correct.
|
||||||
|
-- This is also a good place to setup other settings (vim.opt)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = "\\"
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- import your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
-- Configure any other settings here. See the documentation for more details.
|
||||||
|
-- colorscheme that will be used when installing plugins.
|
||||||
|
install = { colorscheme = { "habamax" } },
|
||||||
|
-- automatically check for plugin updates
|
||||||
|
checker = { enabled = true },
|
||||||
|
})
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
"folke/neodev.nvim",
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
{ "folke/neoconf.nvim", cmd = "Neoconf" },
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = true
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"saghen/blink.cmp",
|
||||||
|
lazy = false,
|
||||||
|
version = "*",
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
keymap = {
|
||||||
|
preset = "default",
|
||||||
|
-- accept completion
|
||||||
|
["<CR>"] = { "accept", "fallback" },
|
||||||
|
-- navigate completion menu
|
||||||
|
["<Tab>"] = { "select_next", "fallback" },
|
||||||
|
["<S-Tab>"] = { "select_prev", "fallback" },
|
||||||
|
},
|
||||||
|
|
||||||
|
appearance = {
|
||||||
|
use_nvim_cmp_as_default = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
sources = {
|
||||||
|
default = { "lsp", "path", "snippets", "buffer" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"ThePrimeagen/harpoon",
|
||||||
|
branch = "harpoon2",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
config = function()
|
||||||
|
local harpoon = require("harpoon")
|
||||||
|
|
||||||
|
harpoon:setup()
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end)
|
||||||
|
vim.keymap.set("n", "<C-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<C-h>", function() harpoon:list():select(1) end)
|
||||||
|
vim.keymap.set("n", "<C-t>", function() harpoon:list():select(2) end)
|
||||||
|
vim.keymap.set("n", "<C-n>", function() harpoon:list():select(3) end)
|
||||||
|
vim.keymap.set("n", "<C-s>", function() harpoon:list():select(4) end)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require("mason").setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"williamboman/mason-lspconfig.nvim",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require("mason-lspconfig").setup({
|
||||||
|
ensure_installed = {
|
||||||
|
"lua_ls",
|
||||||
|
"ts_ls",
|
||||||
|
"pyright",
|
||||||
|
},
|
||||||
|
-- automatically call vim.lsp.enable() for installed servers
|
||||||
|
automatic_enable = true,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
return {
|
||||||
|
-- Main Telescope plugin
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
version = "*", -- gets latest stable release; "*" is recommended now
|
||||||
|
-- alternatively pin to a specific tag if you prefer stability:
|
||||||
|
-- tag = "0.2.1", -- check https://github.com/nvim-telescope/telescope.nvim/tags for latest
|
||||||
|
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim", -- required
|
||||||
|
|
||||||
|
-- Strongly recommended: much faster fuzzy sorting & matching
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
build = "make", -- or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release" if you prefer
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Optional nice-to-haves (uncomment if you want them)
|
||||||
|
-- "nvim-tree/nvim-web-devicons", -- for nicer icons (if you don't have it elsewhere)
|
||||||
|
-- "nvim-telescope/telescope-ui-select.nvim", -- use Telescope for vim.ui.select()
|
||||||
|
-- "nvim-telescope/telescope-file-browser.nvim",
|
||||||
|
},
|
||||||
|
|
||||||
|
config = function()
|
||||||
|
local telescope = require("telescope")
|
||||||
|
|
||||||
|
telescope.setup({
|
||||||
|
defaults = {
|
||||||
|
-- Some sensible defaults — feel free to customize
|
||||||
|
layout_strategy = "horizontal", -- or "vertical", "bottom_pane", "ivy", etc.
|
||||||
|
layout_config = {
|
||||||
|
horizontal = { preview_width = 0.55 },
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<C-j>"] = "move_selection_next",
|
||||||
|
["<C-k>"] = "move_selection_previous",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- path_display = { "truncate" }, -- nicer path shortening
|
||||||
|
},
|
||||||
|
|
||||||
|
-- You can add picker-specific configs here too
|
||||||
|
pickers = {
|
||||||
|
find_files = {
|
||||||
|
hidden = true, -- show dotfiles
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
extensions = {
|
||||||
|
-- If you add extensions above, configure/load them here
|
||||||
|
-- fzf = { fuzzy = true, override_generic_sorter = true, override_file_sorter = true },
|
||||||
|
-- ["ui-select"] = { require("telescope.themes").get_dropdown({}) },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Load fzf extension (highly recommended for speed)
|
||||||
|
pcall(telescope.load_extension, "fzf")
|
||||||
|
|
||||||
|
-- ADD KEYMAPS HERE
|
||||||
|
local builtin = require("telescope.builtin")
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Find files" })
|
||||||
|
vim.keymap.set("n", "<leader>gf", builtin.git_files, { desc = "Find Git files" })
|
||||||
|
vim.keymap.set("n", "<leader>ps", function()
|
||||||
|
builtin.grep_string({ search = vim.fn.input("Grep > ") });
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Optional: load other extensions if you added them
|
||||||
|
-- pcall(telescope.load_extension, "ui-select")
|
||||||
|
-- pcall(telescope.load_extension, "file_browser")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"mbbill/undotree",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user