Compare commits
5 commits
30adb52d3c
...
acc2496bd6
| Author | SHA1 | Date | |
|---|---|---|---|
| acc2496bd6 | |||
| fa7e740249 | |||
| 40e8287213 | |||
| 77d8758ded | |||
| 7b32a7998e |
31 changed files with 640 additions and 47 deletions
|
|
@ -40,6 +40,11 @@ ssh = "~"
|
||||||
|
|
||||||
[terminal.files]
|
[terminal.files]
|
||||||
"terminal/.config/vifm" = "~/.config/vifm"
|
"terminal/.config/vifm" = "~/.config/vifm"
|
||||||
|
"terminal/.config/bash/bashrc" = "~/.bashrc"
|
||||||
|
"terminal/.config/bash/bash_profile" = "~/.bash_profile"
|
||||||
|
"terminal/.config/zsh/zshrc" = "~/.config/zsh/.zshrc"
|
||||||
|
"terminal/.config/zsh/zprofile" = "~/.config/zsh/.zprofile"
|
||||||
|
"terminal/.config/zsh/zshenv" = "~/.config/zsh/.zshenv"
|
||||||
terminal = "~"
|
terminal = "~"
|
||||||
|
|
||||||
[linux]
|
[linux]
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,10 @@ end
|
||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
-- ensure plugins specs exist before loading into lazy
|
-- ensure plugins specs exist before loading into lazy
|
||||||
local spec_dir = vim.fn.stdpath("config") .. "/lua/plugins"
|
local spec_dir_basename = "modules"
|
||||||
local spec_exist = (vim.fn.isdirectory(spec_dir) ~= 0) and (#vim.fn.glob(spec_dir .. "/*.lua", nil, true) ~= 0)
|
local spec_dir_path = vim.fn.stdpath("config") .. "/lua/" .. spec_dir_basename
|
||||||
local spec = spec_exist and { import = "plugins" } or {}
|
local spec_exist = (vim.fn.isdirectory(spec_dir_path) ~= 0) and (#vim.fn.glob(spec_dir_path .. "/*.lua", nil, true) ~= 0)
|
||||||
|
local spec = spec_exist and { import = spec_dir_basename } or {}
|
||||||
|
|
||||||
vim.g.lazy_events_config = {
|
vim.g.lazy_events_config = {
|
||||||
simple = {
|
simple = {
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,7 @@ return {
|
||||||
if require("core.util").is_available("which-key") then
|
if require("core.util").is_available("which-key") then
|
||||||
require("which-key").add({ "<leader>a", group = "codecompanion" })
|
require("which-key").add({ "<leader>a", group = "codecompanion" })
|
||||||
end
|
end
|
||||||
|
require("personal.ccp-fidget"):init()
|
||||||
end,
|
end,
|
||||||
opts = {
|
opts = {
|
||||||
strategies = {
|
strategies = {
|
||||||
74
nvim/.config/nvim/lua/personal/ccp-fidget.lua
Normal file
74
nvim/.config/nvim/lua/personal/ccp-fidget.lua
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
-- taken from https://github.com/olimorris/codecompanion.nvim/discussions/813#discussioncomment-12031954
|
||||||
|
-- many thanks to @jessevdp!
|
||||||
|
|
||||||
|
local progress = require("fidget.progress")
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M:init()
|
||||||
|
local group = vim.api.nvim_create_augroup("CodeCompanionFidgetHooks", {})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "User" }, {
|
||||||
|
pattern = "CodeCompanionRequestStarted",
|
||||||
|
group = group,
|
||||||
|
callback = function(request)
|
||||||
|
local handle = M:create_progress_handle(request)
|
||||||
|
M:store_progress_handle(request.data.id, handle)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "User" }, {
|
||||||
|
pattern = "CodeCompanionRequestFinished",
|
||||||
|
group = group,
|
||||||
|
callback = function(request)
|
||||||
|
local handle = M:pop_progress_handle(request.data.id)
|
||||||
|
if handle then
|
||||||
|
M:report_exit_status(handle, request)
|
||||||
|
handle:finish()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
M.handles = {}
|
||||||
|
|
||||||
|
function M:store_progress_handle(id, handle)
|
||||||
|
M.handles[id] = handle
|
||||||
|
end
|
||||||
|
|
||||||
|
function M:pop_progress_handle(id)
|
||||||
|
local handle = M.handles[id]
|
||||||
|
M.handles[id] = nil
|
||||||
|
return handle
|
||||||
|
end
|
||||||
|
|
||||||
|
function M:create_progress_handle(request)
|
||||||
|
return progress.handle.create({
|
||||||
|
title = " Running (" .. request.data.strategy .. ")",
|
||||||
|
message = "In progress...",
|
||||||
|
lsp_client = {
|
||||||
|
name = M:llm_role_title(request.data.adapter),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function M:llm_role_title(adapter)
|
||||||
|
local parts = {}
|
||||||
|
table.insert(parts, adapter.formatted_name)
|
||||||
|
if adapter.model and adapter.model ~= "" then
|
||||||
|
table.insert(parts, "(" .. adapter.model .. ")")
|
||||||
|
end
|
||||||
|
return table.concat(parts, " ")
|
||||||
|
end
|
||||||
|
|
||||||
|
function M:report_exit_status(handle, request)
|
||||||
|
if request.data.status == "success" then
|
||||||
|
handle.message = "Completed"
|
||||||
|
elseif request.data.status == "error" then
|
||||||
|
handle.message = " Error"
|
||||||
|
else
|
||||||
|
handle.message = " Cancelled"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
425
nvim/.config/nvim/snippets/mdx.json
Normal file
425
nvim/.config/nvim/snippets/mdx.json
Normal file
|
|
@ -0,0 +1,425 @@
|
||||||
|
{
|
||||||
|
"header 1": {
|
||||||
|
"prefix": "h1",
|
||||||
|
"body": ["# ${0}"],
|
||||||
|
"description": "Add header level 1"
|
||||||
|
},
|
||||||
|
"header 2": {
|
||||||
|
"prefix": "h2",
|
||||||
|
"body": ["## ${0}"],
|
||||||
|
"description": "Add header level 2"
|
||||||
|
},
|
||||||
|
"header 3": {
|
||||||
|
"prefix": "h3",
|
||||||
|
"body": ["### ${0}"],
|
||||||
|
"description": "Add header level 3"
|
||||||
|
},
|
||||||
|
"header 4": {
|
||||||
|
"prefix": "h4",
|
||||||
|
"body": ["#### ${0}"],
|
||||||
|
"description": "Add header level 4"
|
||||||
|
},
|
||||||
|
"header 5": {
|
||||||
|
"prefix": "h5",
|
||||||
|
"body": ["##### ${0}"],
|
||||||
|
"description": "Add header level 5"
|
||||||
|
},
|
||||||
|
"header 6": {
|
||||||
|
"prefix": "h6",
|
||||||
|
"body": ["###### ${0}"],
|
||||||
|
"description": "Add header level 6"
|
||||||
|
},
|
||||||
|
"Links": {
|
||||||
|
"prefix": ["l", "link"],
|
||||||
|
"body": ["[${1:text}](${2:url}) ${0}"],
|
||||||
|
"description": "Add links"
|
||||||
|
},
|
||||||
|
"URLS": {
|
||||||
|
"prefix": ["u", "url"],
|
||||||
|
"body": ["<${1}> ${0}"],
|
||||||
|
"description": "Add urls"
|
||||||
|
},
|
||||||
|
"Images": {
|
||||||
|
"prefix": "img",
|
||||||
|
"body": [" ${0}"],
|
||||||
|
"description": "Add images"
|
||||||
|
},
|
||||||
|
"Insert strikethrough": {
|
||||||
|
"prefix": "strikethrough",
|
||||||
|
"body": "~~${1}~~ ${0}",
|
||||||
|
"description": "Insert strikethrough"
|
||||||
|
},
|
||||||
|
"Insert bold text": {
|
||||||
|
"prefix": ["bold", "b"],
|
||||||
|
"body": "**${1}** $0",
|
||||||
|
"description": "Insert bold text"
|
||||||
|
},
|
||||||
|
"Insert italic text": {
|
||||||
|
"prefix": ["i", "italic"],
|
||||||
|
"body": "*${1}* $0",
|
||||||
|
"description": "Insert italic text"
|
||||||
|
},
|
||||||
|
"Insert bold and italic text": {
|
||||||
|
"prefix": ["bold and italic", "bi"],
|
||||||
|
"body": "***${1}*** $0",
|
||||||
|
"description": "Insert bold and italic text"
|
||||||
|
},
|
||||||
|
"Insert quoted text": {
|
||||||
|
"prefix": "quote",
|
||||||
|
"body": "> ${1}",
|
||||||
|
"description": "Insert quoted text"
|
||||||
|
},
|
||||||
|
"Insert code": {
|
||||||
|
"prefix": "code",
|
||||||
|
"body": "`${1}` $0",
|
||||||
|
"description": "Insert code"
|
||||||
|
},
|
||||||
|
"Insert code block": {
|
||||||
|
"prefix": "codeblock",
|
||||||
|
"body": ["```${1:language}", "$0", "```"],
|
||||||
|
"description": "Insert fenced code block"
|
||||||
|
},
|
||||||
|
"Insert todo item": {
|
||||||
|
"prefix": "todo",
|
||||||
|
"body": ["- [ ] ${1:first}", "$0"],
|
||||||
|
"description": "Insert a single todo list item"
|
||||||
|
},
|
||||||
|
"Insert todo list": {
|
||||||
|
"prefix": "todo list",
|
||||||
|
"body": ["- [ ] ${1:first}", "- [ ] ${2:second}", "- [ ] ${3:third}", "$0"],
|
||||||
|
"description": "Insert multiple todo list items"
|
||||||
|
},
|
||||||
|
"Insert unordered list": {
|
||||||
|
"prefix": "unordered list",
|
||||||
|
"body": ["- ${1:first}", "- ${2:second}", "- ${3:third}", "$0"],
|
||||||
|
"description": "Insert unordered list"
|
||||||
|
},
|
||||||
|
"Insert ordered list": {
|
||||||
|
"prefix": "ordered list",
|
||||||
|
"body": ["1. ${1:first}", "2. ${2:second}", "3. ${3:third}", "$0"],
|
||||||
|
"description": "Insert ordered list"
|
||||||
|
},
|
||||||
|
"Insert horizontal rule": {
|
||||||
|
"prefix": "horizontal rule",
|
||||||
|
"body": "----------\n",
|
||||||
|
"description": "Insert horizontal rule"
|
||||||
|
},
|
||||||
|
"Insert task list": {
|
||||||
|
"prefix": "task",
|
||||||
|
"body": ["- [${1| ,x|}] ${2:text}", "${0}"],
|
||||||
|
"description": "Insert task list"
|
||||||
|
},
|
||||||
|
"Insert task list 2": {
|
||||||
|
"prefix": "task2",
|
||||||
|
"body": ["- [${1| ,x|}] ${2:text}", "- [${3| ,x|}] ${4:text}", "${0}"],
|
||||||
|
"description": "Insert task list with 2 tasks"
|
||||||
|
},
|
||||||
|
"Insert task list 3": {
|
||||||
|
"prefix": "task3",
|
||||||
|
"body": [
|
||||||
|
"- [${1| ,x|}] ${2:text}",
|
||||||
|
"- [${3| ,x|}] ${4:text}",
|
||||||
|
"- [${5| ,x|}] ${6:text}",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert task list with 3 tasks"
|
||||||
|
},
|
||||||
|
"Insert task list 4": {
|
||||||
|
"prefix": "task4",
|
||||||
|
"body": [
|
||||||
|
"- [${1| ,x|}] ${2:text}",
|
||||||
|
"- [${3| ,x|}] ${4:text}",
|
||||||
|
"- [${5| ,x|}] ${6:text}",
|
||||||
|
"- [${7| ,x|}] ${8:text}",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert task list with 4 tasks"
|
||||||
|
},
|
||||||
|
"Insert task list 5": {
|
||||||
|
"prefix": "task5",
|
||||||
|
"body": [
|
||||||
|
"- [${1| ,x|}] ${2:text}",
|
||||||
|
"- [${3| ,x|}] ${4:text}",
|
||||||
|
"- [${5| ,x|}] ${6:text}",
|
||||||
|
"- [${7| ,x|}] ${8:text}",
|
||||||
|
"- [${9| ,x|}] ${10:text}",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert task list with 5 tasks"
|
||||||
|
},
|
||||||
|
"Insert table": {
|
||||||
|
"prefix": "table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||||
|
"| ------------- | -------------- | -------------- |",
|
||||||
|
"| ${4:Item1} | ${5:Item1} | ${6:Item1} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 2 rows and 3 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 2x1 table": {
|
||||||
|
"prefix": "2x1table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} |",
|
||||||
|
"| ------------- |",
|
||||||
|
"| ${2:Item1} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 2 rows and 1 column. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 3x1 table": {
|
||||||
|
"prefix": "3x1table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} |",
|
||||||
|
"| ------------- |",
|
||||||
|
"| ${2:Item1} |",
|
||||||
|
"| ${3:Item2} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 3 rows and 1 column. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 4x1 table": {
|
||||||
|
"prefix": "4x1table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} |",
|
||||||
|
"| ------------- |",
|
||||||
|
"| ${2:Item1} |",
|
||||||
|
"| ${3:Item2} |",
|
||||||
|
"| ${4:Item3} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 4 rows and 1 column. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 5x1 table": {
|
||||||
|
"prefix": "5x1table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} |",
|
||||||
|
"| ------------- |",
|
||||||
|
"| ${2:Item1} |",
|
||||||
|
"| ${3:Item2} |",
|
||||||
|
"| ${4:Item3} |",
|
||||||
|
"| ${5:Item4} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 5 rows and 1 column. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 2x2 table": {
|
||||||
|
"prefix": "2x2table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} |",
|
||||||
|
"| -------------- | --------------- |",
|
||||||
|
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 2 rows and 2 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 3x2 table": {
|
||||||
|
"prefix": "3x2table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} |",
|
||||||
|
"| -------------- | --------------- |",
|
||||||
|
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||||
|
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 3 rows and 2 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 4x2 table": {
|
||||||
|
"prefix": "4x2table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} |",
|
||||||
|
"| -------------- | --------------- |",
|
||||||
|
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||||
|
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||||
|
"| ${7:Item1.3} | ${8:Item2.3} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 4 rows and 2 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 5x2 table": {
|
||||||
|
"prefix": "5x2table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} |",
|
||||||
|
"|--------------- | --------------- |",
|
||||||
|
"| ${3:Item1.1} | ${4:Item2.1} |",
|
||||||
|
"| ${5:Item1.2} | ${6:Item2.2} |",
|
||||||
|
"| ${7:Item1.3} | ${8:Item2.3} |",
|
||||||
|
"| ${9:Item1.4} | ${10:Item2.4} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 5 rows and 2 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 2x3 table": {
|
||||||
|
"prefix": "2x3table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||||
|
"| --------------- | --------------- | --------------- |",
|
||||||
|
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 2 rows and 3 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 3x3 table": {
|
||||||
|
"prefix": "3x3table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||||
|
"| --------------- | --------------- | --------------- |",
|
||||||
|
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||||
|
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 3 rows and 3 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 4x3 table": {
|
||||||
|
"prefix": "4x3table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||||
|
"| --------------- | --------------- | --------------- |",
|
||||||
|
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||||
|
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||||
|
"| ${10:Item1.3} | ${11:Item2.3} | ${12:Item3.3} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 4 rows and 3 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 5x3 table": {
|
||||||
|
"prefix": "5x3table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} |",
|
||||||
|
"| --------------- | --------------- | --------------- |",
|
||||||
|
"| ${4:Item1.1} | ${5:Item2.1} | ${6:Item3.1} |",
|
||||||
|
"| ${7:Item1.2} | ${8:Item2.2} | ${9:Item3.2} |",
|
||||||
|
"| ${10:Item1.3} | ${11:Item2.3} | ${12:Item3.3} |",
|
||||||
|
"| ${13:Item1.4} | ${14:Item2.4} | ${15:Item3.4} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 5 rows and 3 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 2x4 table": {
|
||||||
|
"prefix": "2x4table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 2 rows and 4 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 3x4 table": {
|
||||||
|
"prefix": "3x4table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||||
|
"| ${9:Item1.2} | ${10:Item2.2} | ${11:Item3.2} | ${12:Item4.2} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 3 rows and 4 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 4x4 table": {
|
||||||
|
"prefix": "4x4table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||||
|
"| ${9:Item1.2} | ${10:Item2.2} | ${11:Item3.2} | ${12:Item4.2} |",
|
||||||
|
"| ${13:Item1.3} | ${14:Item2.3} | ${15:Item3.3} | ${16:Item4.3} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 4 rows and 4 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 5x4 table": {
|
||||||
|
"prefix": "5x4table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${5:Item1.1} | ${6:Item2.1} | ${7:Item3.1} | ${8:Item4.1} |",
|
||||||
|
"| ${9:Item1.2} | ${10:Item2.2} | ${11:Item3.2} | ${12:Item4.2} |",
|
||||||
|
"| ${13:Item1.3} | ${14:Item2.3} | ${15:Item3.3} | ${16:Item4.3} |",
|
||||||
|
"| ${17:Item1.4} | ${18:Item2.4} | ${19:Item3.4} | ${20:Item4.4} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 5 rows and 4 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 2x5 table": {
|
||||||
|
"prefix": "2x5table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 2 rows and 5 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 3x5 table": {
|
||||||
|
"prefix": "3x5table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||||
|
"| ${11:Item1.2} | ${12:Item2.2} | ${13:Item3.2} | ${14:Item4.2} | ${15:Item5.2} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 3 rows and 5 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 4x5 table": {
|
||||||
|
"prefix": "4x5table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||||
|
"| ${11:Item1.2} | ${12:Item2.2} | ${13:Item3.2} | ${14:Item4.2} | ${15:Item5.2} |",
|
||||||
|
"| ${16:Item1.3} | ${17:Item2.3} | ${18:Item3.3} | ${19:Item4.3} | ${20:Item5.3} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 4 rows and 5 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert 5x5 table": {
|
||||||
|
"prefix": "5x5table",
|
||||||
|
"body": [
|
||||||
|
"| ${1:Column1} | ${2:Column2} | ${3:Column3} | ${4:Column4} | ${5:Column5} |",
|
||||||
|
"| --------------- | --------------- | --------------- | --------------- | --------------- |",
|
||||||
|
"| ${6:Item1.1} | ${7:Item2.1} | ${8:Item3.1} | ${9:Item4.1} | ${10:Item5.1} |",
|
||||||
|
"| ${11:Item1.2} | ${12:Item2.2} | ${13:Item3.2} | ${14:Item4.2} | ${15:Item5.2} |",
|
||||||
|
"| ${16:Item1.3} | ${17:Item2.3} | ${18:Item3.3} | ${19:Item4.3} | ${20:Item5.3} |",
|
||||||
|
"| ${21:Item1.4} | ${22:Item2.4} | ${23:Item3.4} | ${24:Item4.4} | ${25:Item5.4} |",
|
||||||
|
"${0}"
|
||||||
|
],
|
||||||
|
"description": "Insert table with 5 rows and 5 columns. First row is heading."
|
||||||
|
},
|
||||||
|
"Insert subscript": {
|
||||||
|
"prefix": "sub",
|
||||||
|
"body": ["${1}<sub>${0}"],
|
||||||
|
"description": "Create a subscript."
|
||||||
|
},
|
||||||
|
"Insert superscript": {
|
||||||
|
"prefix": "sup",
|
||||||
|
"body": ["${1}<sup>${0}"],
|
||||||
|
"description": "Create a superscript."
|
||||||
|
},
|
||||||
|
"Insert Note": {
|
||||||
|
"prefix": ["note", "n"],
|
||||||
|
"body": "> [!NOTE]\n> ",
|
||||||
|
"description": "Insert Note"
|
||||||
|
},
|
||||||
|
"Insert Tip": {
|
||||||
|
"prefix": ["tip", "t"],
|
||||||
|
"body": "> [!TIP]\n> ",
|
||||||
|
"description": "Insert Tip"
|
||||||
|
},
|
||||||
|
"Insert Important": {
|
||||||
|
"prefix": ["important", "imp"],
|
||||||
|
"body": "> [!IMPORTANT]\n> ",
|
||||||
|
"description": "Insert Important"
|
||||||
|
},
|
||||||
|
"Insert Warning": {
|
||||||
|
"prefix": ["warning", "w"],
|
||||||
|
"body": "> [!WARNING]\n> ",
|
||||||
|
"description": "Insert Warning"
|
||||||
|
},
|
||||||
|
"Insert Caution": {
|
||||||
|
"prefix": ["caution", "c"],
|
||||||
|
"body": "> [!CAUTION]\n> ",
|
||||||
|
"description": "Insert Caution"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# ~/.bashrc
|
|
||||||
#
|
|
||||||
# shellcheck disable=SC1090
|
|
||||||
|
|
||||||
CONFDIR="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
||||||
|
|
||||||
# If not running interactively, don't do anything
|
|
||||||
[[ $- != *i* ]] && return
|
|
||||||
|
|
||||||
[ -f "$CONFDIR/sh/alias" ] && source "$CONFDIR/sh/alias"
|
|
||||||
# load additional aliases
|
|
||||||
if [ -d "$CONFDIR/sh/alias.d" ]; then
|
|
||||||
for _alias in "$CONFDIR/sh/alias.d"/*.sh; do
|
|
||||||
. "$_alias"
|
|
||||||
done
|
|
||||||
unset _alias
|
|
||||||
fi
|
|
||||||
if [ -d "$CONFDIR/bash/alias.d" ]; then
|
|
||||||
for _alias in "$CONFDIR/bash/alias.d"/*.sh; do
|
|
||||||
. "$_alias"
|
|
||||||
done
|
|
||||||
unset _alias
|
|
||||||
fi
|
|
||||||
|
|
||||||
alias ls='ls --color=auto'
|
|
||||||
|
|
||||||
eval "$(starship init bash)"
|
|
||||||
eval "$(zoxide init bash)"
|
|
||||||
export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional
|
|
||||||
source <(carapace _carapace)
|
|
||||||
|
|
||||||
set -o vi
|
|
||||||
stty time 0
|
|
||||||
bind 'set keyseq-timeout 1'
|
|
||||||
|
|
||||||
eval "$(atuin init bash)"
|
|
||||||
64
terminal/.config/bash/bashrc
Normal file
64
terminal/.config/bash/bashrc
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# ~/.bashrc
|
||||||
|
#
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
|
||||||
|
CONFDIR="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
[[ $- != *i* ]] && return
|
||||||
|
|
||||||
|
[ -f "$CONFDIR/sh/alias" ] && source "$CONFDIR/sh/alias"
|
||||||
|
# load additional aliases
|
||||||
|
if [ -d "$CONFDIR/sh/alias.d" ]; then
|
||||||
|
for _alias in "$CONFDIR/sh/alias.d"/*.sh; do
|
||||||
|
. "$_alias"
|
||||||
|
done
|
||||||
|
unset _alias
|
||||||
|
fi
|
||||||
|
if [ -d "$CONFDIR/bash/alias.d" ]; then
|
||||||
|
for _alias in "$CONFDIR/bash/alias.d"/*.sh; do
|
||||||
|
. "$_alias"
|
||||||
|
done
|
||||||
|
unset _alias
|
||||||
|
fi
|
||||||
|
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
|
||||||
|
eval "$(starship init bash)"
|
||||||
|
eval "$(zoxide init bash)"
|
||||||
|
export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional
|
||||||
|
source <(carapace _carapace)
|
||||||
|
|
||||||
|
set -o vi
|
||||||
|
stty time 0
|
||||||
|
bind 'set keyseq-timeout 1'
|
||||||
|
|
||||||
|
# insert files with c-t or T in vicmd mode
|
||||||
|
FZF_CTRL_R_COMMAND="" FZF_ALT_C_COMMAND="" eval "$(fzf --bash)"
|
||||||
|
builtin bind -m vi-command '"T": "\C-z\C-t\C-z"'
|
||||||
|
|
||||||
|
_run-cdi() {
|
||||||
|
# Get the directory from zoxide query
|
||||||
|
local dir=$(zoxide query -i)
|
||||||
|
|
||||||
|
# If no directory is found, clear the line
|
||||||
|
if [[ -z "$dir" ]]; then
|
||||||
|
echo ''
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Call cd with the directory
|
||||||
|
cd -- "$dir"
|
||||||
|
|
||||||
|
# Return the exit status of cd
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
# Make the function _run-cdi available
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
bind -x '"\ec": "`_run-cdi`"'
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
bind -m vi-command -x '"C": "`_run-cdi`"'
|
||||||
|
|
||||||
|
eval "$(atuin init bash)"
|
||||||
|
|
@ -38,18 +38,18 @@ zoxide init nushell | save -f ($nu.data-dir | path join "vendor/autoload/zoxide.
|
||||||
# load carapace completions
|
# load carapace completions
|
||||||
source ~/.cache/carapace/init.nu
|
source ~/.cache/carapace/init.nu
|
||||||
|
|
||||||
|
|
||||||
# keybinds
|
# keybinds
|
||||||
$env.config.keybindings = [
|
$env.config.keybindings = [
|
||||||
{ modifier: control keycode: char_o mode: [emacs, vi_normal, vi_insert] event: null },
|
{ modifier: control keycode: char_o mode: [emacs, vi_normal, vi_insert] event: null },
|
||||||
{
|
{
|
||||||
name: clear_screen
|
name: clear_screen
|
||||||
modifier: control
|
modifier: alt
|
||||||
keycode: char_t
|
keycode: char_l
|
||||||
mode: ["emacs", "vi_normal", "vi_insert"]
|
mode: ["emacs", "vi_normal", "vi_insert"]
|
||||||
event: {
|
event: [
|
||||||
send: ClearScreen
|
{edit: Clear}
|
||||||
}
|
{send: Enter}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: open_editor
|
name: open_editor
|
||||||
|
|
@ -60,6 +60,41 @@ $env.config.keybindings = [
|
||||||
send: OpenEditor
|
send: OpenEditor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name: run_zoxide
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_c
|
||||||
|
mode: ["emacs", "vi_normal", "vi_insert"]
|
||||||
|
event: {
|
||||||
|
send: executehostcommand
|
||||||
|
cmd: "zoxide query --interactive"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: run_zoxide_vicmd
|
||||||
|
modifier: shift
|
||||||
|
keycode: char_c
|
||||||
|
mode: [ "vi_normal"]
|
||||||
|
event: {
|
||||||
|
send: executehostcommand
|
||||||
|
cmd: "zoxide query --interactive"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: insert_file_fzf
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: ["emacs", "vi_normal", "vi_insert"]
|
||||||
|
event: {
|
||||||
|
send: executehostcommand
|
||||||
|
cmd: "
|
||||||
|
let fzf_ctrl_t_command = \$\"fd --type file --hidden | fzf --preview 'bat --color=always --style=full --line-range=:500 {}' \";
|
||||||
|
let result = nu -l -i -c $fzf_ctrl_t_command;
|
||||||
|
commandline edit --append $result;
|
||||||
|
commandline set-cursor --end
|
||||||
|
"
|
||||||
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
alias l = ls
|
alias l = ls
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,9 @@ unset PLUG_FOLDER
|
||||||
# simple fzf-tab settings
|
# simple fzf-tab settings
|
||||||
zstyle ":fzf-tab:*" fzf-flags "--ansi" "--expect='$continuous_trigger,$print_query'" "--color=hl:$(($#headers == 0 ? 108 : 255))" "--nth=2,3" "--layout=reverse" "--height=${FZF_TMUX_HEIGHT:-75%}" "--tiebreak=begin" "-m" "--bind=tab:down,btab:up,change:top,ctrl-space:toggle" "--cycle" "--query=$query" "--header-lines=$#headers" "--print-query"
|
zstyle ":fzf-tab:*" fzf-flags "--ansi" "--expect='$continuous_trigger,$print_query'" "--color=hl:$(($#headers == 0 ? 108 : 255))" "--nth=2,3" "--layout=reverse" "--height=${FZF_TMUX_HEIGHT:-75%}" "--tiebreak=begin" "-m" "--bind=tab:down,btab:up,change:top,ctrl-space:toggle" "--cycle" "--query=$query" "--header-lines=$#headers" "--print-query"
|
||||||
|
|
||||||
|
# enable inserting files or dirs using fzf with ctrl-t
|
||||||
|
FZF_CTRL_R_COMMAND="" FZF_ALT_C_COMMAND="" source <(fzf --zsh)
|
||||||
|
|
||||||
zstyle ':fzf-tab:*' fzf-command fzf
|
zstyle ':fzf-tab:*' fzf-command fzf
|
||||||
# format colorful groups for different completion actions
|
# format colorful groups for different completion actions
|
||||||
zstyle ':completion:*:descriptions' format '[%d]'
|
zstyle ':completion:*:descriptions' format '[%d]'
|
||||||
|
|
@ -208,6 +211,29 @@ _fix_cursor() {
|
||||||
}
|
}
|
||||||
precmd_functions+=(_fix_cursor)
|
precmd_functions+=(_fix_cursor)
|
||||||
|
|
||||||
|
_run-cdi() {
|
||||||
|
local dir="$(eval "zoxide query -i")"
|
||||||
|
if [[ -z "$dir" ]]; then
|
||||||
|
zle redisplay
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
zle push-line
|
||||||
|
BUFFER="builtin cd -- ${(q)dir}"
|
||||||
|
zle accept-line
|
||||||
|
local ret=$?
|
||||||
|
unset dir
|
||||||
|
zle reset-prompt
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
zle -N _run-cdi
|
||||||
|
|
||||||
|
# use alt-c or C in cmd mode to change dir using zoxide
|
||||||
|
bindkey '\ec' _run-cdi
|
||||||
|
bindkey -M vicmd 'C' _run-cdi
|
||||||
|
# add file insertion with fzf to T in cmd mode (c-t in insert)
|
||||||
|
# insert-mode keybind is above, using regular fzf sourcing
|
||||||
|
bindkey -M vicmd 'T' fzf-file-widget
|
||||||
|
|
||||||
# space puts a space, even in cmd mode
|
# space puts a space, even in cmd mode
|
||||||
bindkey -a ' ' magic-space
|
bindkey -a ' ' magic-space
|
||||||
# always allow backspace/delete to remove letters
|
# always allow backspace/delete to remove letters
|
||||||
Loading…
Add table
Add a link
Reference in a new issue