nvim,wezterm
This commit is contained in:
parent
ef380f5329
commit
57c9c4fcf4
13 changed files with 282 additions and 65 deletions
|
@ -1,8 +1,11 @@
|
|||
{
|
||||
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
|
||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||
"auto-session": { "branch": "main", "commit": "00334ee24b9a05001ad50221c8daffbeedaa0842" },
|
||||
"blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" },
|
||||
"codecompanion.nvim": { "branch": "main", "commit": "01b2841d7791376e23728d9faf657fe999e6c209" },
|
||||
"conform.nvim": { "branch": "master", "commit": "6feb2f28f9a9385e401857b21eeac3c1b66dd628" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
|
||||
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"hardtime.nvim": { "branch": "main", "commit": "145b930954a3146cfb5b8a73cdcad42eb7d2740c" },
|
||||
|
@ -23,6 +26,7 @@
|
|||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "6f5a4c36d9383b2a916facaa63dcd573afa11ee8" },
|
||||
"smear-cursor.nvim": { "branch": "main", "commit": "162703638203060b1d3412e73429d232bbd2627e" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||
|
|
|
@ -12,13 +12,13 @@ vim.api.nvim_create_autocmd("TextYankPost", {
|
|||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
||||
desc = "diagnostics on hold",
|
||||
group = vim.api.nvim_create_augroup("diagnostics", { clear = true }),
|
||||
callback = function()
|
||||
vim.diagnostic.open_float(nil, { focus = false })
|
||||
end,
|
||||
})
|
||||
-- vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
||||
-- desc = "diagnostics on hold",
|
||||
-- group = vim.api.nvim_create_augroup("diagnostics", { clear = true }),
|
||||
-- callback = function()
|
||||
-- vim.diagnostic.open_float(nil, { focus = false })
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
-- TODO: check if it interferes with C-s shortcut
|
||||
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
vim.keymap.set("n", "<C-s>", ":w ++p<CR>", { desc = "save file" })
|
||||
vim.keymap.set("v", "<C-s>", ":w ++p<CR>", { desc = "save file" })
|
||||
vim.keymap.set({ "n", "v" }, "<C-s>", ":w ++p<CR>", { desc = "save file" })
|
||||
vim.keymap.set({ "n", "v" }, "<C-S-s>", ":bufdo! w ++p<CR>", { desc = "save all buffers" })
|
||||
vim.keymap.set("i", "<C-s>", "<Esc>:w ++p<CR>a", { desc = "save file" })
|
||||
vim.keymap.set("n", ";", ":", { desc = "command with ;" })
|
||||
vim.keymap.set("v", ";", ":", { desc = "command with ;" })
|
||||
vim.keymap.set("n", "<leader>;", ":", { desc = "command with ;" })
|
||||
vim.keymap.set("v", "<leader>;", ":", { desc = "command with ;" })
|
||||
vim.keymap.set("n", "q", ":bd<cr>", { desc = "close buffer" })
|
||||
vim.keymap.set("n", "Q", ":%bd<cr>", { desc = "close all buffers" })
|
||||
vim.keymap.set({ "n", "v" }, "d", '"_d', { desc = "delete without cut" })
|
||||
|
@ -23,6 +23,9 @@ vim.keymap.set("n", "<right>", '<cmd>echo "Use l to move!!"<CR>')
|
|||
vim.keymap.set("n", "<up>", '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set("n", "<down>", '<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
vim.keymap.set("n", "<X1Mouse>", "<C-O>", { silent = true, desc = "go back with mouse" })
|
||||
vim.keymap.set("n", "<X2Mouse>", "<C-I>", { silent = true, desc = "go forward with mouse" })
|
||||
|
||||
-- Keybindings to make split navigation easier.
|
||||
-- Use CTRL+<hjkl> to switch between windows
|
||||
--
|
||||
|
@ -39,7 +42,7 @@ vim.keymap.set("v", "<C-r>", function()
|
|||
-- get contents of visual selection
|
||||
-- handle unpack deprecation
|
||||
table.unpack = table.unpack or unpack
|
||||
function get_visual()
|
||||
local function get_visual()
|
||||
local _, ls, cs = table.unpack(vim.fn.getpos("v"))
|
||||
local _, le, ce = table.unpack(vim.fn.getpos("."))
|
||||
return vim.api.nvim_buf_get_text(0, ls - 1, cs - 1, le - 1, ce, {})
|
||||
|
@ -51,3 +54,16 @@ vim.keymap.set("v", "<C-r>", function()
|
|||
-- send parsed substitution command to command line
|
||||
vim.api.nvim_input("<Esc>:%s/" .. pattern .. "//<Left>")
|
||||
end)
|
||||
|
||||
-- Show virtual lines diagnostics and hide when moved
|
||||
vim.keymap.set("n", "<leader>d", function()
|
||||
vim.diagnostic.config({ virtual_lines = { current_line = true }, virtual_text = false })
|
||||
|
||||
vim.api.nvim_create_autocmd("CursorMoved", {
|
||||
group = vim.api.nvim_create_augroup("line-diagnostics", { clear = true }),
|
||||
callback = function()
|
||||
vim.diagnostic.config({ virtual_lines = false, virtual_text = true })
|
||||
return true
|
||||
end,
|
||||
})
|
||||
end)
|
||||
|
|
|
@ -82,3 +82,5 @@ vim.opt.splitright = true
|
|||
vim.opt.splitbelow = true
|
||||
|
||||
vim.opt.cmdheight = 0
|
||||
|
||||
vim.diagnostic.config({ virtual_text = true, underline = false })
|
||||
|
|
|
@ -6,19 +6,30 @@ return {
|
|||
version = "1.*",
|
||||
opts = {
|
||||
fuzzy = {
|
||||
implementation = "rust",
|
||||
-- implementation = "rust",
|
||||
use_frecency = true,
|
||||
use_proximity = true,
|
||||
use_unsafe_no_lock = false,
|
||||
sorts = {
|
||||
-- (optionally) always prioritize exact matches
|
||||
function(a, b)
|
||||
if (a.client_name == nil or b.client_name == nil) or (a.client_name == b.client_name) then
|
||||
return
|
||||
end
|
||||
return b.client_name == "emmet_language_server"
|
||||
end,
|
||||
"exact",
|
||||
"score",
|
||||
"sort_text",
|
||||
},
|
||||
},
|
||||
keymap = { preset = "enter" },
|
||||
keymap = {
|
||||
preset = "enter",
|
||||
["<C-space>"] = { "hide", "show", "fallback" },
|
||||
},
|
||||
completion = {
|
||||
trigger = {
|
||||
-- show_in_snippet = false,
|
||||
},
|
||||
-- Disable showing for all alphanumeric keywords by default. Prefer LSP specific trigger
|
||||
-- characters.
|
||||
-- trigger = { show_on_keyword = false },
|
||||
|
@ -48,6 +59,22 @@ return {
|
|||
-- make lazydev completions top priority (see `:h blink.cmp`)
|
||||
score_offset = 100,
|
||||
},
|
||||
snippets = {
|
||||
min_keyword_length = 1,
|
||||
score_offset = 4,
|
||||
},
|
||||
lsp = {
|
||||
min_keyword_length = 3,
|
||||
score_offset = 3,
|
||||
},
|
||||
path = {
|
||||
min_keyword_length = 3,
|
||||
score_offset = 2,
|
||||
},
|
||||
buffer = {
|
||||
min_keyword_length = 5,
|
||||
score_offset = 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
signature = { enabled = true },
|
||||
|
|
95
.config/nvim/lua/plugins/codecompanion.lua
Normal file
95
.config/nvim/lua/plugins/codecompanion.lua
Normal file
|
@ -0,0 +1,95 @@
|
|||
return {
|
||||
"olimorris/codecompanion.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"j-hui/fidget.nvim",
|
||||
},
|
||||
opts = {
|
||||
strategies = {
|
||||
chat = {
|
||||
adapter = "gemini",
|
||||
},
|
||||
inline = {
|
||||
adapter = "gemini",
|
||||
},
|
||||
cmd = {
|
||||
adapter = "gemini",
|
||||
},
|
||||
},
|
||||
adapters = {
|
||||
llama3 = function()
|
||||
return require("codecompanion.adapters").extend("ollama", {
|
||||
name = "llama3", -- Give this adapter a different name to differentiate it from the default ollama adapter
|
||||
schema = {
|
||||
model = {
|
||||
default = "llama3.1:latest",
|
||||
},
|
||||
num_ctx = {
|
||||
default = 16384,
|
||||
},
|
||||
num_predict = {
|
||||
default = -1,
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
qwen3 = function()
|
||||
return require("codecompanion.adapters").extend("ollama", {
|
||||
name = "qwen3", -- Give this adapter a different name to differentiate it from the default ollama adapter
|
||||
schema = {
|
||||
model = {
|
||||
default = "qwen3:1.7b",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
anthropic = function()
|
||||
return require("codecompanion.adapters").extend("anthropic", {
|
||||
env = {
|
||||
api_key = "MY_OTHER_ANTHROPIC_KEY",
|
||||
},
|
||||
})
|
||||
end,
|
||||
gemini = function()
|
||||
return require("codecompanion.adapters").extend("gemini", {
|
||||
env = {
|
||||
api_key = "AIzaSyCpXubVJ2ls6PgFjIjpIE9FDBIbGTuXt7U",
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("codecompanion").setup(opts)
|
||||
|
||||
local progress = require("fidget.progress")
|
||||
local handles = {}
|
||||
local group = vim.api.nvim_create_augroup("CodeCompanionFidget", {})
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "CodeCompanionRequestStarted",
|
||||
group = group,
|
||||
callback = function(e)
|
||||
handles[e.data.id] = progress.handle.create({
|
||||
title = "CodeCompanion",
|
||||
message = "Thinking...",
|
||||
lsp_client = { name = e.data.adapter.formatted_name },
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "CodeCompanionRequestFinished",
|
||||
group = group,
|
||||
callback = function(e)
|
||||
local h = handles[e.data.id]
|
||||
if h then
|
||||
h.message = e.data.status == "success" and "Done" or "Failed"
|
||||
h:finish()
|
||||
handles[e.data.id] = nil
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
|
@ -6,11 +6,14 @@ return {
|
|||
autojump = true,
|
||||
},
|
||||
label = {
|
||||
before = true,
|
||||
after = false,
|
||||
min_pattern_length = 0,
|
||||
-- before = true,
|
||||
after = true,
|
||||
min_pattern_length = 1,
|
||||
style = "overlay",
|
||||
},
|
||||
search = {
|
||||
mode = "search",
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
|
|
|
@ -3,6 +3,7 @@ return {
|
|||
lazy = false,
|
||||
dependencies = { "MunifTanjim/nui.nvim" },
|
||||
opts = {
|
||||
disable_mouse = false,
|
||||
disabled_keys = {
|
||||
["<Up>"] = false,
|
||||
["<Down>"] = false,
|
||||
|
|
|
@ -13,42 +13,45 @@ return {
|
|||
})
|
||||
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
|
||||
require("luasnip").filetype_extend("typescript", { "javascript" })
|
||||
require("luasnip").filetype_extend("typescriptreact", { "javascript" })
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<leader>rs",
|
||||
":source ~/.config/nvim/lua/snippets.lua<CR>",
|
||||
desc = "[R]eload [s]nippets",
|
||||
},
|
||||
{
|
||||
"<Tab>",
|
||||
function()
|
||||
if require("luasnip").locally_jumpable(1) then
|
||||
require("luasnip").jump(1)
|
||||
end
|
||||
end,
|
||||
mode = { "i", "s" },
|
||||
desc = "next snippet placeholder",
|
||||
},
|
||||
{
|
||||
"<S-Tab>",
|
||||
function()
|
||||
if require("luasnip").locally_jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
end
|
||||
end,
|
||||
mode = { "i", "s" },
|
||||
desc = "prev snippet placeholder",
|
||||
},
|
||||
{
|
||||
"<C-E>",
|
||||
function()
|
||||
if require("luasnip").choice_active() then
|
||||
require("luasnip").change_choice(1)
|
||||
end
|
||||
end,
|
||||
mode = { "i", "s" },
|
||||
desc = "prev snippet placeholder",
|
||||
},
|
||||
},
|
||||
-- keys = {
|
||||
-- {
|
||||
-- "<leader>rs",
|
||||
-- ":source ~/.config/nvim/lua/snippets.lua<CR>",
|
||||
-- desc = "[R]eload [s]nippets",
|
||||
-- },
|
||||
-- {
|
||||
-- "<Tab>",
|
||||
-- function()
|
||||
-- if require("luasnip").locally_jumpable(1) then
|
||||
-- require("luasnip").jump(1)
|
||||
-- end
|
||||
-- end,
|
||||
-- mode = { "i", "s" },
|
||||
-- desc = "next snippet placeholder",
|
||||
-- },
|
||||
-- {
|
||||
-- "<S-Tab>",
|
||||
-- function()
|
||||
-- if require("luasnip").locally_jumpable(-1) then
|
||||
-- require("luasnip").jump(-1)
|
||||
-- end
|
||||
-- end,
|
||||
-- mode = { "i", "s" },
|
||||
-- desc = "prev snippet placeholder",
|
||||
-- },
|
||||
-- {
|
||||
-- "<C-e>",
|
||||
-- function()
|
||||
-- if require("luasnip").choice_active() then
|
||||
-- require("luasnip").change_choice(1)
|
||||
-- end
|
||||
-- end,
|
||||
-- mode = { "i", "s" },
|
||||
-- desc = "prev snippet placeholder",
|
||||
-- },
|
||||
-- },
|
||||
}
|
||||
|
|
4
.config/nvim/lua/plugins/markdown.lua
Normal file
4
.config/nvim/lua/plugins/markdown.lua
Normal file
|
@ -0,0 +1,4 @@
|
|||
return {
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
ft = { "markdown", "codecompanion" },
|
||||
}
|
12
.config/nvim/lua/plugins/session.lua
Normal file
12
.config/nvim/lua/plugins/session.lua
Normal file
|
@ -0,0 +1,12 @@
|
|||
return {
|
||||
"rmagatti/auto-session",
|
||||
lazy = false,
|
||||
|
||||
---enables autocomplete for opts
|
||||
---@module "auto-session"
|
||||
---@type AutoSession.Config
|
||||
opts = {
|
||||
suppressed_dirs = { "~/", "~/Projects", "~/Downloads", "/" },
|
||||
-- log_level = 'debug',
|
||||
},
|
||||
}
|
|
@ -39,19 +39,57 @@ ls.add_snippets("lua", {
|
|||
})
|
||||
|
||||
-- js/ts/sx snippets
|
||||
local allJsFts = {
|
||||
"javascript",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"javascriptreact",
|
||||
}
|
||||
local tsFts = {
|
||||
"typescriptreact",
|
||||
"typescript",
|
||||
}
|
||||
|
||||
local import = s(
|
||||
"im",
|
||||
fmt("import {name} from '{module}';", {
|
||||
module = i(1),
|
||||
name = c(2, { i(nil), fmt("{{{}}}", { i(1) }) }),
|
||||
name = c(2, { i(1), fmt("{{{}}}", { i(1) }) }),
|
||||
})
|
||||
)
|
||||
local field = s(
|
||||
"fi",
|
||||
fmt("{name}: {type};", {
|
||||
name = i(1),
|
||||
type = i(2),
|
||||
})
|
||||
)
|
||||
local constF = s(
|
||||
"cf",
|
||||
fmt(
|
||||
[[{export}const {name}{type} = ({args}){ret} => {{
|
||||
{body}
|
||||
}}]],
|
||||
{
|
||||
export = c(1, { t("export "), i(1) }),
|
||||
name = i(2),
|
||||
type = i(3),
|
||||
args = i(3),
|
||||
ret = i(4),
|
||||
body = i(5),
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
ls.add_snippets("typescript", {
|
||||
import,
|
||||
})
|
||||
|
||||
ls.add_snippets("typescriptreact", {
|
||||
for _, ft in ipairs(tsFts) do
|
||||
ls.add_snippets(ft, {
|
||||
constF,
|
||||
field,
|
||||
})
|
||||
end
|
||||
|
||||
for _, ft in ipairs(allJsFts) do
|
||||
ls.add_snippets(ft, {
|
||||
import,
|
||||
})
|
||||
end
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
-- Pull in the wezterm API
|
||||
local wezterm = require("wezterm")
|
||||
local act = wezterm.action
|
||||
|
||||
-- This will hold the configuration.
|
||||
local config = wezterm.config_builder()
|
||||
|
||||
-- This is where you actually apply your config choices
|
||||
|
||||
-- For example, changing the color scheme:
|
||||
config.color_scheme = "tokyonight_night"
|
||||
|
||||
config.alternate_buffer_wheel_scroll_speed = 10
|
||||
-- Change mouse scroll amount
|
||||
config.mouse_bindings = {
|
||||
{
|
||||
event = { Down = { streak = 1, button = { WheelUp = 1 } } },
|
||||
mods = "NONE",
|
||||
action = act.ScrollByLine(-10),
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = { WheelDown = 1 } } },
|
||||
mods = "NONE",
|
||||
action = act.ScrollByLine(10),
|
||||
},
|
||||
}
|
||||
config.font = wezterm.font({ family = "Iosevka Nerd Font", weight = "Regular", style = "Italic" })
|
||||
config.font_size = 11
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue