04.06.2025
This commit is contained in:
parent
d4c839302b
commit
27416cef99
15 changed files with 190 additions and 205 deletions
|
@ -33,4 +33,5 @@ require("keymaps")
|
||||||
require("commands")
|
require("commands")
|
||||||
require("autocommands")
|
require("autocommands")
|
||||||
require("lsp")
|
require("lsp")
|
||||||
|
require("syntax")
|
||||||
-- require("dap")
|
-- require("dap")
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
{
|
{
|
||||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||||
"auto-save.nvim": { "branch": "main", "commit": "37c82fd548e3f5ffc2d9d020a65dac1044584f44" },
|
"auto-save.nvim": { "branch": "main", "commit": "37c82fd548e3f5ffc2d9d020a65dac1044584f44" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
"blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
|
|
||||||
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
|
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
|
||||||
"codecompanion.nvim": { "branch": "main", "commit": "9edf22cb71711cd7fab7671a25ed5424011a379d" },
|
"codecompanion.nvim": { "branch": "main", "commit": "9edf22cb71711cd7fab7671a25ed5424011a379d" },
|
||||||
"conform.nvim": { "branch": "master", "commit": "6feb2f28f9a9385e401857b21eeac3c1b66dd628" },
|
"conform.nvim": { "branch": "master", "commit": "f643d1b51d1d3d14c8641a46ce44f6bce73c2697" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
"go.nvim": { "branch": "master", "commit": "a3455f48cff718a86275115523dcc735535a13aa" },
|
"go.nvim": { "branch": "master", "commit": "a3455f48cff718a86275115523dcc735535a13aa" },
|
||||||
|
"goerr-nvim": { "branch": "main", "commit": "d30ba1cab652e78dbf6a644eb4823be57e9af203" },
|
||||||
"goimpl.nvim": { "branch": "main", "commit": "2548d42c4db0645dea14f27e67c4b19b7030f1cf" },
|
"goimpl.nvim": { "branch": "main", "commit": "2548d42c4db0645dea14f27e67c4b19b7030f1cf" },
|
||||||
"guihua.lua": { "branch": "master", "commit": "87bea7b98429405caf2a0ce4d029b027bb017c70" },
|
"guihua.lua": { "branch": "master", "commit": "87bea7b98429405caf2a0ce4d029b027bb017c70" },
|
||||||
"headlines.nvim": { "branch": "master", "commit": "bf17c96a836ea27c0a7a2650ba385a7783ed322e" },
|
"headlines.nvim": { "branch": "master", "commit": "bf17c96a836ea27c0a7a2650ba385a7783ed322e" },
|
||||||
|
@ -17,16 +15,14 @@
|
||||||
"lsp_signature.nvim": { "branch": "master", "commit": "a4e3c15dfdce8783c074539b1835edae75fa63d5" },
|
"lsp_signature.nvim": { "branch": "master", "commit": "a4e3c15dfdce8783c074539b1835edae75fa63d5" },
|
||||||
"lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" },
|
"lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
|
"lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" },
|
|
||||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
|
||||||
"nvim-dap": { "branch": "master", "commit": "b0f983507e3702f073bfe1516846e58b56d4e42f" },
|
"nvim-dap": { "branch": "master", "commit": "b0f983507e3702f073bfe1516846e58b56d4e42f" },
|
||||||
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
|
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
|
"nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "b8e7957bde4cbb3cb25a13a62548f7c273b026e9" },
|
"nvim-lspconfig": { "branch": "master", "commit": "8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4" },
|
||||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
"nvim-tree.lua": { "branch": "master", "commit": "ebcaccda1c575fa19a8087445276e6671e2b9b37" },
|
"nvim-tree.lua": { "branch": "master", "commit": "1c733e8c1957dc67f47580fe9c458a13b5612d5b" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||||
"nvim-treesitter-context": { "branch": "master", "commit": "ed1cf48d5af252248c55f50b9427e8ce883a2c6b" },
|
"nvim-treesitter-context": { "branch": "master", "commit": "464a443b5a6657f39772b20baa95d02ffe97b268" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
|
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
|
||||||
|
@ -34,5 +30,5 @@
|
||||||
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
|
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
|
||||||
"smartcolumn.nvim": { "branch": "main", "commit": "92f3773af80d674f1eb61e112dca79e2fa449fd1" },
|
"smartcolumn.nvim": { "branch": "main", "commit": "92f3773af80d674f1eb61e112dca79e2fa449fd1" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
|
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
|
||||||
"todotxt.nvim": { "branch": "main", "commit": "1c5a9fe131c31846844870cf9bcaada6b65e5e59" }
|
"todotxt.nvim": { "branch": "main", "commit": "225ac77fea10a9ad9a48d0247a8d3c23f33cb2ba" }
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,9 +88,7 @@ vim.api.nvim_create_autocmd("BufEnter", {
|
||||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufAdd", "BufNew", "BufNewFile", "BufWinEnter" }, {
|
vim.api.nvim_create_autocmd({ "BufEnter", "BufAdd", "BufNew", "BufNewFile", "BufWinEnter" }, {
|
||||||
group = vim.api.nvim_create_augroup("TS_FOLD_WORKAROUND", {}),
|
group = vim.api.nvim_create_augroup("TS_FOLD_WORKAROUND", {}),
|
||||||
callback = function()
|
callback = function()
|
||||||
vim.opt.foldlevelstart = 99
|
-- vim.cmd([[normal zR]])
|
||||||
vim.opt.foldmethod = "expr"
|
|
||||||
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
@ -142,7 +140,11 @@ vim.api.nvim_create_autocmd("FileType", {
|
||||||
vim.opt_local.cindent = false
|
vim.opt_local.cindent = false
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
vim.filetype.add({
|
||||||
|
extension = {
|
||||||
|
hjson = "hjson",
|
||||||
|
},
|
||||||
|
})
|
||||||
vim.api.nvim_create_autocmd("VimResized", {
|
vim.api.nvim_create_autocmd("VimResized", {
|
||||||
pattern = "*",
|
pattern = "*",
|
||||||
callback = function()
|
callback = function()
|
||||||
|
|
|
@ -31,8 +31,8 @@ kmap("n", "<leader>vs", "<cmd>vsplit<CR>", { noremap = true, silent = true, desc
|
||||||
-- {{{ Управление вкладками --
|
-- {{{ Управление вкладками --
|
||||||
kmap("n", "<A-Right>", ":tabnext<CR>", { noremap = true, silent = true, desc = "Next tab" })
|
kmap("n", "<A-Right>", ":tabnext<CR>", { noremap = true, silent = true, desc = "Next tab" })
|
||||||
kmap("n", "<A-Left>", ":tabprevious<CR>", { noremap = true, silent = true, desc = "Previous tab" })
|
kmap("n", "<A-Left>", ":tabprevious<CR>", { noremap = true, silent = true, desc = "Previous tab" })
|
||||||
kmap("n", "<leader>tn", ":tabnew<CR>", { noremap = true, silent = true, desc = "New tab" })
|
kmap("n", "<A-t>", ":tabnew<CR>", { noremap = true, silent = true, desc = "New tab" })
|
||||||
kmap("n", "<leader>tc", ":tabclose<CR>", { noremap = true, silent = true, desc = "Close tab" })
|
kmap("n", "<A-w>", ":tabclose<CR>", { noremap = true, silent = true, desc = "Close tab" })
|
||||||
|
|
||||||
-- Быстрый переход по вкладкам --
|
-- Быстрый переход по вкладкам --
|
||||||
for i = 1, 9 do
|
for i = 1, 9 do
|
||||||
|
|
|
@ -4,7 +4,7 @@ local util = require("lspconfig/util")
|
||||||
|
|
||||||
local function config(_config)
|
local function config(_config)
|
||||||
return vim.tbl_deep_extend("force", {
|
return vim.tbl_deep_extend("force", {
|
||||||
capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
|
-- capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
|
||||||
}, _config or {})
|
}, _config or {})
|
||||||
end
|
end
|
||||||
-- иницализация gopls LSP для Go
|
-- иницализация gopls LSP для Go
|
||||||
|
|
|
@ -32,7 +32,12 @@ local options = {
|
||||||
scrolloff = 8,
|
scrolloff = 8,
|
||||||
sidescrolloff = 8,
|
sidescrolloff = 8,
|
||||||
syntax = "on",
|
syntax = "on",
|
||||||
foldenable = false,
|
foldmethod = "expr",
|
||||||
|
foldexpr = "v:lua.vim.treesitter.foldexpr()",
|
||||||
|
-- foldexpr = "nvim_treesitter#foldexpr()"
|
||||||
|
foldnestmax = 10,
|
||||||
|
foldlevel = 9,
|
||||||
|
-- foldlevelstart = 99,
|
||||||
scrolloff = 999,
|
scrolloff = 999,
|
||||||
so = vim.fn.floor(vim.fn.winheight(0) / 2),
|
so = vim.fn.floor(vim.fn.winheight(0) / 2),
|
||||||
guicursor = "n-v-c:block,i-ci-ve:hor10,r-cr:hor20,o:hor50,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175",
|
guicursor = "n-v-c:block,i-ci-ve:hor10,r-cr:hor20,o:hor50,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175",
|
||||||
|
@ -53,6 +58,8 @@ vim.filetype.add({
|
||||||
extension = {
|
extension = {
|
||||||
templ = "templ",
|
templ = "templ",
|
||||||
},
|
},
|
||||||
|
pattern = {
|
||||||
|
[".*/todo.txt"] = "todotxt",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.cmd([[colorscheme neonxp]])
|
vim.cmd([[colorscheme neonxp]])
|
||||||
|
|
|
@ -5,13 +5,8 @@ require("lazy").setup({
|
||||||
build = "cd lua/fzy && make",
|
build = "cd lua/fzy && make",
|
||||||
},
|
},
|
||||||
{ "neovim/nvim-lspconfig" },
|
{ "neovim/nvim-lspconfig" },
|
||||||
{
|
{ "Snyssfx/goerr-nvim" },
|
||||||
"arnarg/todotxt.nvim",
|
require("plugins.todo"),
|
||||||
dependencies = { "MunifTanjim/nui.nvim" },
|
|
||||||
opts = {
|
|
||||||
todo_file = "~/Документы/todo.txt",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
require("plugins.codecompanion"),
|
require("plugins.codecompanion"),
|
||||||
require("plugins.resize"),
|
require("plugins.resize"),
|
||||||
require("plugins.blankline"),
|
require("plugins.blankline"),
|
||||||
|
|
|
@ -56,17 +56,9 @@ return {
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Skip autosave if you're in an active snippet
|
|
||||||
if require("luasnip").in_snippet() then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
write_all_buffers = false, -- write all buffers when the current one meets `condition`
|
write_all_buffers = true, -- write all buffers when the current one meets `condition`
|
||||||
-- Do not execute autocmds when saving
|
|
||||||
-- If you set noautocmd = true, autosave won't trigger an auto format
|
|
||||||
-- https://github.com/okuuva/auto-save.nvim/issues/55
|
|
||||||
noautocmd = false,
|
noautocmd = false,
|
||||||
lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
|
lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
|
||||||
-- delay after which a pending save is executed (default 1000)
|
-- delay after which a pending save is executed (default 1000)
|
||||||
|
|
|
@ -6,91 +6,44 @@ local source_mapping = {
|
||||||
path = "[Path]",
|
path = "[Path]",
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
"hrsh7th/nvim-cmp",
|
"saghen/blink.cmp",
|
||||||
|
lazy = false,
|
||||||
|
version = "1.*",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
|
||||||
"hrsh7th/cmp-buffer",
|
|
||||||
"hrsh7th/cmp-path",
|
|
||||||
"saadparwaiz1/cmp_luasnip",
|
|
||||||
{
|
{
|
||||||
"L3MON4D3/LuaSnip",
|
"L3MON4D3/LuaSnip",
|
||||||
lazy = true,
|
|
||||||
version = "v2.*",
|
version = "v2.*",
|
||||||
build = "make install_jsregexp",
|
build = "make install_jsregexp",
|
||||||
opts = {
|
|
||||||
history = true,
|
|
||||||
delete_check_events = "TextChanged",
|
|
||||||
},
|
|
||||||
dependencies = { "rafamadriz/friendly-snippets" },
|
dependencies = { "rafamadriz/friendly-snippets" },
|
||||||
config = function()
|
config = function()
|
||||||
require("plugins.snippets")
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
require("luasnip.loaders.from_vscode").lazy_load("./snippets")
|
||||||
end,
|
end,
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<C-K>",
|
|
||||||
function()
|
|
||||||
require("luasnip").expand()
|
|
||||||
end,
|
|
||||||
silent = true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<C-L>",
|
|
||||||
function()
|
|
||||||
require("luasnip").jump(1)
|
|
||||||
end,
|
|
||||||
silent = true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<C-J>",
|
|
||||||
function()
|
|
||||||
require("luasnip").jump(-1)
|
|
||||||
end,
|
|
||||||
silent = true,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
opts = {
|
||||||
},
|
keymap = {
|
||||||
config = function()
|
preset = "enter",
|
||||||
require("cmp").setup({
|
|
||||||
preselect = require("cmp").PreselectMode.None,
|
|
||||||
experimental = {
|
|
||||||
ghost_text = false,
|
|
||||||
},
|
|
||||||
|
|
||||||
confirmation = {
|
|
||||||
default_behavior = require("cmp").ConfirmBehavior.Replace,
|
|
||||||
},
|
},
|
||||||
completion = {
|
completion = {
|
||||||
completeopt = "menu,menuone,noinsert,noselect",
|
list = {
|
||||||
keyword_length = 2,
|
selection = {
|
||||||
|
preselect = false,
|
||||||
|
auto_insert = false,
|
||||||
},
|
},
|
||||||
mapping = require("cmp").mapping.preset.insert({
|
|
||||||
["<C-b>"] = require("cmp").mapping.scroll_docs(-4),
|
|
||||||
["<C-f>"] = require("cmp").mapping.scroll_docs(4),
|
|
||||||
["<C-Space>"] = require("cmp").mapping.complete(),
|
|
||||||
["<C-e>"] = require("cmp").mapping.abort(),
|
|
||||||
["<CR>"] = require("cmp").mapping.confirm({ select = false }),
|
|
||||||
["<C-y>"] = require("cmp").mapping.confirm({ select = true }),
|
|
||||||
}),
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
require("luasnip").lsp_expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
formatting = {
|
ghost_text = {
|
||||||
format = function(entry, vim_item)
|
enabled = true,
|
||||||
vim_item.menu = source_mapping[entry.source.name] or "[Unknown]"
|
},
|
||||||
return vim_item
|
},
|
||||||
end,
|
cmdline = {
|
||||||
|
keymap = { preset = "inherit" },
|
||||||
|
completion = { menu = { auto_show = true } },
|
||||||
|
sources = { "cmdline" },
|
||||||
|
},
|
||||||
|
snippets = { preset = "luasnip" },
|
||||||
|
sources = {
|
||||||
|
default = { "lsp", "path", "snippets", "buffer", "codecompanion" },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
sources = require("cmp").config.sources({
|
|
||||||
{ name = "nvim_lsp", priority = 1000 },
|
|
||||||
{ name = "codecompanion", priority = 800 },
|
|
||||||
{ name = "luasnip", priority = 750 },
|
|
||||||
{ name = "path", priority = 500 },
|
|
||||||
}, {
|
|
||||||
{ name = "buffer" },
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
local ls = require("luasnip")
|
|
||||||
local s = ls.snippet
|
|
||||||
local sn = ls.snippet_node
|
|
||||||
local t = ls.text_node
|
|
||||||
local i = ls.insert_node
|
|
||||||
local f = ls.function_node
|
|
||||||
local c = ls.choice_node
|
|
||||||
local d = ls.dynamic_node
|
|
||||||
local r = ls.restore_node
|
|
||||||
local fmt = require("luasnip.extras.fmt").fmt
|
|
||||||
local rep = require("luasnip.extras").rep
|
|
||||||
|
|
||||||
ls.config.setup({
|
|
||||||
history = true,
|
|
||||||
update_events = "TextChanged,TextChangedI",
|
|
||||||
})
|
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
|
||||||
require("luasnip.loaders.from_vscode").lazy_load({
|
|
||||||
paths = { vim.fn.stdpath("config") .. "/snippets" },
|
|
||||||
})
|
|
||||||
ls.add_snippets("json", require("snippets.json"))
|
|
69
nvim/lua/plugins/todo.lua
Normal file
69
nvim/lua/plugins/todo.lua
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
return {
|
||||||
|
"phrmendes/todotxt.nvim",
|
||||||
|
cmd = { "TodoTxt", "DoneTxt" },
|
||||||
|
opts = {
|
||||||
|
todotxt = "/home/neonxp/Документы/todo.txt",
|
||||||
|
donetxt = "/home/neonxp/Документы/done.txt",
|
||||||
|
},
|
||||||
|
-- suggested keybindings
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>tp",
|
||||||
|
function() require("todotxt").cycle_priority() end,
|
||||||
|
desc = "todo.txt: cycle priority",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<cr>",
|
||||||
|
function() require("todotxt").toggle_todo_state() end,
|
||||||
|
desc = "todo.txt: toggle task state",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tn",
|
||||||
|
function() require("todotxt").capture_todo() end,
|
||||||
|
desc = "New entry",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tt",
|
||||||
|
function() require("todotxt").toggle_todotxt() end,
|
||||||
|
desc = "Open",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tr",
|
||||||
|
function() require("todotxt").move_done_tasks() end,
|
||||||
|
desc = "Move to done.txt",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tss",
|
||||||
|
function() require("todotxt").sort_tasks() end,
|
||||||
|
desc = "Sort",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tsd",
|
||||||
|
function() require("todotxt").sort_tasks_by_due_date() end,
|
||||||
|
desc = "Sort by due:date",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tsP",
|
||||||
|
function() require("todotxt").sort_tasks_by_priority() end,
|
||||||
|
desc = "Sort by (priority)",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tsc",
|
||||||
|
function() require("todotxt").sort_tasks_by_context() end,
|
||||||
|
desc = "Sort by @context",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>tsp",
|
||||||
|
function() require("todotxt").sort_tasks_by_project() end,
|
||||||
|
desc = "Sort by +project",
|
||||||
|
ft = "todotxt",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,44 +0,0 @@
|
||||||
local ls = require("luasnip")
|
|
||||||
-- some shorthands...
|
|
||||||
local s = ls.snippet
|
|
||||||
local sn = ls.snippet_node
|
|
||||||
local t = ls.text_node
|
|
||||||
local i = ls.insert_node
|
|
||||||
local f = ls.function_node
|
|
||||||
local c = ls.choice_node
|
|
||||||
local d = ls.dynamic_node
|
|
||||||
local r = ls.restore_node
|
|
||||||
local l = require("luasnip.extras").lambda
|
|
||||||
local rep = require("luasnip.extras").rep
|
|
||||||
local p = require("luasnip.extras").partial
|
|
||||||
local m = require("luasnip.extras").match
|
|
||||||
local n = require("luasnip.extras").nonempty
|
|
||||||
local dl = require("luasnip.extras").dynamic_lambda
|
|
||||||
local fmt = require("luasnip.extras.fmt").fmt
|
|
||||||
local fmta = require("luasnip.extras.fmt").fmta
|
|
||||||
local types = require("luasnip.util.types")
|
|
||||||
local conds = require("luasnip.extras.conditions")
|
|
||||||
local conds_expand = require("luasnip.extras.conditions.expand")
|
|
||||||
|
|
||||||
return {
|
|
||||||
s(
|
|
||||||
"launch",
|
|
||||||
fmt(
|
|
||||||
[[
|
|
||||||
{{
|
|
||||||
"name": "Launch {1}",
|
|
||||||
"type": "go",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${{workspaceFolder}}/cmd/{2}",
|
|
||||||
"args": [{3}],
|
|
||||||
"outputMode": "remote"
|
|
||||||
}}{4}]],
|
|
||||||
{
|
|
||||||
i(1),
|
|
||||||
rep(1),
|
|
||||||
i(2),
|
|
||||||
i(0),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
),
|
|
||||||
}
|
|
61
nvim/lua/syntax/hjson.lua
Normal file
61
nvim/lua/syntax/hjson.lua
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
-- ~/.config/nvim/after/syntax/hjson.lua
|
||||||
|
-- Или путь плагина: ~/.config/nvim/plugin/hjson.lua
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||||
|
pattern = "*.hjson",
|
||||||
|
callback = function()
|
||||||
|
vim.b.current_syntax = "hjson"
|
||||||
|
|
||||||
|
-- Очистка предыдущих правил
|
||||||
|
vim.cmd("syntax clear")
|
||||||
|
|
||||||
|
-- Комментарии (высший приоритет)
|
||||||
|
vim.cmd([[ syntax match hjsonLineComment "\/\/.*" ]])
|
||||||
|
vim.cmd([[ syntax match hjsonLineComment "#.*" ]])
|
||||||
|
vim.cmd([[ syntax region hjsonComment start="/\*" end="\*/" ]])
|
||||||
|
|
||||||
|
-- Строки
|
||||||
|
vim.cmd([[ syntax region hjsonString matchgroup=hjsonQuote start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hjsonEscape ]])
|
||||||
|
vim.cmd([[ syntax region hjsonString matchgroup=hjsonQuote start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=hjsonEscape ]])
|
||||||
|
vim.cmd([[ syntax region hjsonMLString matchgroup=hjsonQuote start=/'''/ end=/'''/ ]])
|
||||||
|
|
||||||
|
-- Числа
|
||||||
|
vim.cmd([[ syntax match hjsonNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" ]])
|
||||||
|
|
||||||
|
-- Булевы значения и null
|
||||||
|
vim.cmd([[ syntax keyword hjsonBoolean true false ]])
|
||||||
|
vim.cmd([[ syntax keyword hjsonNull null ]])
|
||||||
|
|
||||||
|
-- Ключи объектов
|
||||||
|
vim.cmd([[ syntax match hjsonKey "[^][{}:,\"'\s]\+" contained ]])
|
||||||
|
vim.cmd([[ syntax match hjsonKeyUnquoted "[^][{}:,\"'\s]\+:"he=e-1 contains=hjsonKey,hjsonNoise ]])
|
||||||
|
|
||||||
|
-- Пунктуация
|
||||||
|
vim.cmd([[ syntax match hjsonNoise "[{}\[\],:]" ]])
|
||||||
|
|
||||||
|
-- Escape-последовательности
|
||||||
|
vim.cmd([[ syntax match hjsonEscape "\\[\\\"'/bfnrt]" contained ]])
|
||||||
|
vim.cmd([[ syntax match hjsonEscape "\\u\x\{4}" contained ]])
|
||||||
|
|
||||||
|
-- Строки без кавычек (низший приоритет)
|
||||||
|
vim.cmd([[ syntax match hjsonStringUQ "[^][{}:,\"'\s]\+" contains=@NoSpell ]])
|
||||||
|
|
||||||
|
-- Сворачивание структур
|
||||||
|
vim.cmd([[ syntax region hjsonObject matchgroup=hjsonBraces start="{" end="}" transparent fold ]])
|
||||||
|
vim.cmd([[ syntax region hjsonArray matchgroup=hjsonBraces start="\[" end="\]" transparent fold ]])
|
||||||
|
|
||||||
|
-- Подсветка
|
||||||
|
vim.cmd([[ highlight default link hjsonComment Comment ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonLineComment Comment ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonString String ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonMLString String ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonStringUQ String ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonEscape SpecialChar ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonNumber Number ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonBoolean Boolean ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonNull Constant ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonKey Label ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonNoise Delimiter ]])
|
||||||
|
vim.cmd([[ highlight default link hjsonBraces Delimiter ]])
|
||||||
|
end
|
||||||
|
})
|
1
nvim/lua/syntax/init.lua
Normal file
1
nvim/lua/syntax/init.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require("syntax.hjson")
|
|
@ -1,32 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "gotools",
|
"name": "gotools",
|
||||||
"displayName": "Golang Tools",
|
|
||||||
"description": "Tools for productive work",
|
|
||||||
"version": "0.1.5",
|
|
||||||
"engines": {
|
|
||||||
"vscode": "^1.80.0"
|
|
||||||
},
|
|
||||||
"publisher": "neonxp",
|
|
||||||
"license": "GPL-3.0-or-later",
|
|
||||||
"author": {
|
|
||||||
"name": "Alexander NeonXP Kiryukhin",
|
|
||||||
"email": "a.kiryukhin@mail.ru",
|
|
||||||
"url": "https://neonxp.ru/"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/neonxp/GoTools"
|
|
||||||
},
|
|
||||||
"icon": "icon.png",
|
|
||||||
"categories": [
|
|
||||||
"Programming Languages",
|
|
||||||
"Snippets",
|
|
||||||
"Other"
|
|
||||||
],
|
|
||||||
"keywords": [
|
|
||||||
"go",
|
|
||||||
"golang"
|
|
||||||
],
|
|
||||||
"contributes": {
|
"contributes": {
|
||||||
"snippets": [
|
"snippets": [
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue