refactor: remove vimwiki

This commit is contained in:
Kristofers Solo
2024-01-26 20:06:07 +02:00
parent e6cbfcc554
commit 1e7e40ca1b
31 changed files with 338 additions and 239 deletions

View File

@@ -1,9 +1,9 @@
return {
"hrsh7th/nvim-cmp",
event = { "InsertEnter", "CmdlineEnter" },
lazy = false,
dependencies = {
"hrsh7th/cmp-buffer", -- buffer completions
"hrsh7th/cmp-cmdline",
"FelipeLema/cmp-async-path", -- path completionsplu
"hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-nvim-lsp",
@@ -22,6 +22,8 @@ return {
{ "zbirenbaum/copilot-cmp", opts = {}, dependencies = { "zbirenbaum/copilot.lua" } },
"Exafunction/codeium.nvim",
"chrisgrieser/cmp-nerdfont",
"petertriho/cmp-git",
"davidsierradz/cmp-conventionalcommits",
},
config = function()
local cmp = require("cmp")
@@ -77,7 +79,7 @@ return {
{ name = "crates" },
{ name = "async_path" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "buffer", keyword_length = 4 },
{ name = "neorg" },
{ name = "pypi" },
{ name = "dadbod" },
@@ -87,6 +89,8 @@ return {
{ name = "copilot" },
{ name = "codeium" },
{ name = "nerdfont" },
{ name = "git" },
{ name = "conventionalcommits" },
},
snippet = {
expand = function(args)
@@ -98,15 +102,17 @@ return {
format = function(entry, vim_item)
vim_item.kind = kind_icons[vim_item.kind]
vim_item.menu = ({
git = "[git]",
conventionalcommits = "[CC]",
calc = "[calc]",
emoji = "[emoji]",
nerdfont = "[nerdfont]",
nvim_lsp = "[LSP]",
nvim_lua = "[lua]",
async_path = "[path]",
copilot = "[copilot]",
codeium = "[codeium]",
luasnip = "[snip]",
async_path = "[path]",
neorg = "[neorg]",
crates = "[crates]",
pypi = "[pypi]",
@@ -131,5 +137,12 @@ return {
select = false,
},
})
cmp.setup.cmdline("/", {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = "buffer" },
},
})
end,
}

109
lua/plugins/cmp_git.lua Normal file
View File

@@ -0,0 +1,109 @@
return {
"petertriho/cmp-git",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
local format = require("cmp_git.format")
local sort = require("cmp_git.sort")
require("cmp_git").setup({
-- defaults
filetypes = { "gitcommit", "octo" },
remotes = { "upstream", "origin" }, -- in order of most to least prioritized
enableRemoteUrlRewrites = false, -- enable git url rewrites, see https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf
git = {
commits = {
limit = 100,
sort_by = sort.git.commits,
format = format.git.commits,
},
},
github = {
hosts = {}, -- list of private instances of github
issues = {
fields = { "title", "number", "body", "updatedAt", "state" },
filter = "all", -- assigned, created, mentioned, subscribed, all, repos
limit = 100,
state = "open", -- open, closed, all
sort_by = sort.github.issues,
format = format.github.issues,
},
mentions = {
limit = 100,
sort_by = sort.github.mentions,
format = format.github.mentions,
},
pull_requests = {
fields = { "title", "number", "body", "updatedAt", "state" },
limit = 100,
state = "open", -- open, closed, merged, all
sort_by = sort.github.pull_requests,
format = format.github.pull_requests,
},
},
gitlab = {
hosts = {}, -- list of private instances of gitlab
issues = {
limit = 100,
state = "opened", -- opened, closed, all
sort_by = sort.gitlab.issues,
format = format.gitlab.issues,
},
mentions = {
limit = 100,
sort_by = sort.gitlab.mentions,
format = format.gitlab.mentions,
},
merge_requests = {
limit = 100,
state = "opened", -- opened, closed, locked, merged
sort_by = sort.gitlab.merge_requests,
format = format.gitlab.merge_requests,
},
},
trigger_actions = {
{
debug_name = "git_commits",
trigger_character = ":",
action = function(sources, trigger_char, callback, params, git_info)
return sources.git:get_commits(callback, params, trigger_char)
end,
},
{
debug_name = "gitlab_issues",
trigger_character = "#",
action = function(sources, trigger_char, callback, params, git_info)
return sources.gitlab:get_issues(callback, git_info, trigger_char)
end,
},
{
debug_name = "gitlab_mentions",
trigger_character = "@",
action = function(sources, trigger_char, callback, params, git_info)
return sources.gitlab:get_mentions(callback, git_info, trigger_char)
end,
},
{
debug_name = "gitlab_mrs",
trigger_character = "!",
action = function(sources, trigger_char, callback, params, git_info)
return sources.gitlab:get_merge_requests(callback, git_info, trigger_char)
end,
},
{
debug_name = "github_issues_and_pr",
trigger_character = "#",
action = function(sources, trigger_char, callback, params, git_info)
return sources.github:get_issues_and_prs(callback, git_info, trigger_char)
end,
},
{
debug_name = "github_mentions",
trigger_character = "@",
action = function(sources, trigger_char, callback, params, git_info)
return sources.github:get_mentions(callback, git_info, trigger_char)
end,
},
},
})
end,
}

View File

@@ -1,6 +1,6 @@
return {
"Exafunction/codeium.nvim",
cond = false,
enabled = false,
dependencies = { "nvim-lua/plenary.nvim" },
opts = {},
}

View File

@@ -1,6 +1,6 @@
return {
"jayp0521/mason-nvim-dap.nvim",
cond = false,
enabled = false,
opts = {
ensure_installed = {
"python",

View File

@@ -1,10 +1,8 @@
return {
"tpope/vim-fugitive",
lazy = false,
keys = {
{
"<leader>gg",
vim.cmd.Git,
desc = "Git",
},
{ "<leader>gg", vim.cmd.G, desc = "[G]it" },
{ "<leader>gd", vim.cmd.Gdiffsplit, desc = "[G]it [D]iff" },
},
}

View File

@@ -1,5 +1,6 @@
return {
"lewis6991/gitsigns.nvim",
lazy = false,
keys = {
{
"<leader>gb",

View File

@@ -11,29 +11,44 @@ return {
desc = "Harpoon [A]dd File",
},
{
"<C-e>",
"<C-i>",
function()
local harpoon = require("harpoon")
harpoon.ui:toggle_quick_menu(harpoon:list())
end,
desc = "Toggle Harpoon Menu",
},
{
"<F1>",
function()
require("harpoon"):list():select(1)
end,
desc = "Harpoon [1]",
},
{
"<F2>",
function()
require("harpoon"):list():select(2)
end,
desc = "Harpoon [2]",
},
{
"<F3>",
function()
require("harpoon"):list():select(3)
end,
desc = "Harpoon [3]",
},
{
"<F4>",
function()
require("harpoon"):list():select(4)
end,
desc = "Harpoon [4]",
},
},
config = function()
local harpoon = require("harpoon")
harpoon:setup()
vim.keymap.set("n", "<F1>", function()
harpoon:list():select(1)
end)
vim.keymap.set("n", "<F2>", function()
harpoon:list():select(2)
end)
vim.keymap.set("n", "<F3>", function()
harpoon:list():select(3)
end)
vim.keymap.set("n", "<F4>", function()
harpoon:list():select(4)
end)
config = function()
require("harpoon"):setup()
end,
}

View File

@@ -1,12 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.lua_ls.setup({
capabilities = capabilities,
settings = {
exportPdf = "onSave",
},
})
end
return M

View File

@@ -7,77 +7,7 @@ return {
"folke/neodev.nvim",
"nvim-telescope/telescope.nvim",
},
keys = {
{
"<leader>la",
vim.lsp.buf.code_action,
desc = "Code [A]ction",
},
{
"<leader>lD",
vim.lsp.buf.type_definition,
desc = "Type [D]efinitions",
},
{
"<leader>lf",
function()
vim.lsp.buf.format({ async = true })
end,
desc = "[F]ormat",
},
{
"<leader>lo",
vim.diagnostic.open_float,
desc = "[O]pen Float",
},
{
"<leader>ls",
vim.diagnostic.setloclist,
desc = "[S]etloclist",
},
{
"<leader>lr",
vim.lsp.buf.rename,
desc = "[R]ename",
},
{
"<leader>lds",
require("telescope.builtin").lsp_document_symbols,
desc = "[D]ocument [S]ymbols",
},
{
"<leader>lwd",
require("telescope.builtin").diagnostics,
desc = "[W]orkspace [D]iagnostics",
},
{
"<leader>lws",
require("telescope.builtin").lsp_dynamic_workspace_symbols,
desc = "[W]orkspace [S]ymbols",
},
{
"<leader>lwa",
vim.lsp.buf.add_workspace_folder,
desc = "[W]orkspace [A]dd Folder",
},
{
"<leader>lwr",
vim.lsp.buf.remove_workspace_folder,
desc = "[W]orkspace [R]emove Folder",
},
{
"<leader>lwl",
function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end,
desc = "[W]orkspace [L]ist Folder",
},
{
"<leader>lq",
require("telescope.builtin").quickfix,
desc = "Telescope [Q]uickfix",
},
},
config = function()
require("mason").setup()
local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities()
@@ -102,20 +32,36 @@ return {
vim.keymap.set("n", keys, func, { buffer = event.buf, desc = desc })
end
nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
nmap("K", vim.lsp.buf.hover, "Hover Documentation")
nmap("gi", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
vim.keymap.set(
"i",
"<C-k>",
vim.lsp.buf.signature_help,
{ buffer = event.buf, desc = "Signature Documentation" }
)
nmap("<leader>wa", vim.lsp.buf.add_workspace_folder, "[W]orkspace [A]dd Folder")
nmap("<leader>wr", vim.lsp.buf.remove_workspace_folder, "[W]orkspace [R]emove Folder")
nmap("<leader>wl", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, "[W]orkspace [L]ist Folders")
nmap("<leader>lD", vim.lsp.buf.type_definition, "Type [D]efinition")
nmap("<leader>lr", vim.lsp.buf.rename, "[R]ename")
vim.keymap.set(
{ "n", "v" },
"<leader>la",
vim.lsp.buf.code_action,
{ buffer = event.buf, desc = "Code [A]ction" }
)
nmap("gr", function()
require("trouble").toggle("lsp_references")
end, "[G]oto [R]eferences")
nmap("gR", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
nmap("gI", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
nmap("K", vim.lsp.buf.hover, "Hover Documentation")
vim.keymap.set(
"i",
"<C-h>",
vim.lsp.buf.signature_help,
{ buffer = event.buf, desc = "Signature Documentation" }
)
nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
nmap("<leader>f", function()
vim.lsp.buf.format({ async = true })
end, "[F]ormat")
end,
})
@@ -198,9 +144,6 @@ return {
texlab = function()
require("plugins.lsp.tex").setup(lsp, lsp_capabilities)
end,
typst_lsp = function()
require("plugins.lsp.typst").setup(lsp, lsp_capabilities)
end,
lua_ls = function()
require("plugins.lsp.lua").setup(lsp, lsp_capabilities)
end,

View File

@@ -1,6 +1,7 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = {
"nvim-tree/nvim-web-devicons",
"arkav/lualine-lsp-progress",
},
opts = {
@@ -27,11 +28,12 @@ return {
`windows` (shows currently available windows) ]]
sections = {
lualine_a = { "mode" },
lualine_b = { "branch" },
lualine_b = { "branch", "diff" },
lualine_c = { "filename", "diff", "lsp_progress" },
lualine_x = { "diagnostics", "encoding", "filetype", "filesize" },
lualine_y = { "progress" },
lualine_z = { "location" },
},
extentions = { "fzf", "fugitive", "lazy", "mason", "man", "oil", "nvim-dap-ui", "trouble" },
},
}

87
lua/plugins/markdown.lua Normal file
View File

@@ -0,0 +1,87 @@
return {
{
"nfrid/markdown-togglecheck",
dependencies = { "nfrid/treesitter-utils" },
ft = { "markdown" },
keys = {
{
"<C-space>",
function()
require("markdown-togglecheck").toggle()
end,
desc = "Toggle Checkmark",
},
},
opts = {
-- create empty checkbox on item without any while toggling
create = true,
-- remove checked checkbox instead of unckecking it while toggling
remove = false,
},
},
{
"tadmccorkle/markdown.nvim",
ft = { "markdown" },
opts = {
-- Disable all keymaps by setting mappings field to 'false'.
-- Selectively disable keymaps by setting corresponding field to 'false'.
mappings = {
inline_surround_toggle = "gs", -- (string|boolean) toggle inline style
inline_surround_toggle_line = "gss", -- (string|boolean) line-wise toggle inline style
inline_surround_delete = "ds", -- (string|boolean) delete emphasis surrounding cursor
inline_surround_change = "cs", -- (string|boolean) change emphasis surrounding cursor
link_add = "gl", -- (string|boolean) add link
link_follow = "gx", -- (string|boolean) follow link
go_curr_heading = "]c", -- (string|boolean) set cursor to current section heading
go_parent_heading = "]p", -- (string|boolean) set cursor to parent section heading
go_next_heading = "]]", -- (string|boolean) set cursor to next section heading
go_prev_heading = "[[", -- (string|boolean) set cursor to previous section heading
},
inline_surround = {
-- For the emphasis, strong, strikethrough, and code fields:
-- * 'key': used to specify an inline style in toggle, delete, and change operations
-- * 'txt': text inserted when toggling or changing to the corresponding inline style
emphasis = {
key = "i",
txt = "*",
},
strong = {
key = "b",
txt = "**",
},
strikethrough = {
key = "s",
txt = "~~",
},
code = {
key = "c",
txt = "`",
},
},
link = {
paste = {
enable = true, -- whether to convert URLs to links on paste
},
},
toc = {
-- Comment text to flag headings/sections for omission in table of contents.
omit_heading = "toc omit heading",
omit_section = "toc omit section",
-- Cycling list markers to use in table of contents.
-- Use '.' and ')' for ordered lists.
markers = { "-" },
},
-- Hook functions allow for overriding or extending default behavior.
-- Called with a table of options and a fallback function with default behavior.
-- Signature: fun(opts: table, fallback: fun())
hooks = {
-- Called when following links. Provided the following options:
-- * 'dest' (string): the link destination
-- * 'use_default_app' (boolean|nil): whether to open the destination with default application
-- (refer to documentation on <Plug> mappings for explanation of when this option is used)
follow_link = nil,
},
on_attach = nil, -- (fun(bufnr: integer)) callback when plugin attaches to a buffer
},
},
}

View File

@@ -1,8 +1,9 @@
return {
"iamcco/markdown-preview.nvim",
ft = { "markdown", "vimwiki" },
ft = { "markdown" },
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown", "vimwiki" }
vim.g.mkdp_filetypes = { "markdown" }
end,
}

View File

@@ -33,8 +33,6 @@ return {
"strict",
},
}),
-- formatting.markdownlint.with({ extra_filetypes = { "vimwiki" }, }),
formatting.markdown_toc.with({ extra_filetypes = { "vimwiki" } }),
-- formatting.shellharden.with({ extra_filetypes = { "bash", "csh", "ksh", "zsh" } }),
-- formatting.shfmt.with({ extra_filetypes = { "bash", "csh", "ksh", "zsh" } }),
-- formatting.sqlfluff.with({ extra_args = { "--dialect", "postgres" } }),
@@ -50,7 +48,6 @@ return {
"djlint",
"google_java_format",
"luacheck",
"markdown_toc",
"mypy",
"stylua",
"yamlfmt",

View File

@@ -59,9 +59,9 @@ return {
["v"] = "actions.select_vsplit",
["s"] = "actions.select_split",
["t"] = "actions.select_tab",
["p"] = "actions.preview",
["<C-p>"] = "actions.preview",
["<C-c>"] = "actions.close",
["q"] = "actions.close",
["<C-q>"] = "actions.close",
["<C-r>"] = "actions.refresh",
["Y"] = "actions.copy_entry_path",
["-"] = "actions.parent",

View File

@@ -1,6 +1,6 @@
return {
"rest-nvim/rest.nvim",
cond = false,
enabled = false,
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
-- Open request results in a horizontal split

View File

@@ -1,6 +1,5 @@
return {
"simrat39/rust-tools.nvim",
cond = false,
dependencies = { "neovim/nvim-lspconfig" },
ft = "rust",
keys = {

View File

@@ -2,5 +2,7 @@ return {
"kylechui/nvim-surround",
version = "*", -- Use for stability; omit to use `main` branch for the latest features
event = "VeryLazy",
opts = {},
config = function()
require("nvim-surround").setup({})
end,
}

View File

@@ -1,6 +1,6 @@
return {
"preservim/tagbar",
keys = {
{ "<leader>t", vim.cmd.TagbarToggle, desc = "Toggle [T]agbar" },
{ "<leader>b", vim.cmd.TagbarToggle, desc = "Toggle [T]agbar" },
},
}

View File

@@ -20,7 +20,7 @@ return {
},
keys = {
{
"<C-p>",
"<C-n>",
function()
require("telescope.builtin").git_files(require("telescope.themes").get_dropdown({ previewer = false }))
end,
@@ -42,21 +42,9 @@ return {
end,
desc = "Current Buffer Fuzzy",
},
{
"<leader>ps",
require("telescope.builtin").live_grep,
desc = "Live Grep",
},
{
"<leader>pb",
require("telescope.builtin").buffers,
desc = "Find [B]uffers",
},
{
"<leader>pws",
require("telescope.builtin").grep_string,
desc = "[S]tring under the cursor",
},
{ "<leader>ps", require("telescope.builtin").live_grep, desc = "Live Grep" },
{ "<leader>pb", require("telescope.builtin").buffers, desc = "Find [B]uffers" },
{ "<leader>pws", require("telescope.builtin").grep_string, desc = "[S]tring under the cursor" },
{ "<leader>pe", require("telescope.builtin").symbols, desc = "[E]moji" },
{ "<leader>pd", require("telescope.builtin").diagnostic, desc = "[D]iagnostics" },
{ "<leader>pB", require("telescope.builtin").git_branches, desc = "Checkout [B]ranch" },
@@ -64,8 +52,7 @@ return {
{ "<leader>pM", require("telescope.builtin").man_pages, desc = "[M]an Pages" },
{ "<leader>pr", require("telescope.builtin").oldfiles, desc = "Open [R]ecent Files" },
{ "<leader>pR", require("telescope.builtin").registers, desc = "[R]egisters" },
{ "<leader>pg", require("telescope.builtin").live_grep, desc = "[G]rep" },
{ "<leader>pG", require("telescope.builtin").git_files, desc = "[G]it Files" },
{ "<leader>pg", require("telescope.builtin").git_files, desc = "[G]it Files" },
{ "<leader>pk", require("telescope.builtin").keymaps, desc = "[K]eymaps" },
{ "<leader>pC", require("telescope.builtin").commands, desc = "[C]ommands" },
{ "<leader>pt", vim.cmd.TodoTelescope, desc = "[T]odo" },
@@ -105,12 +92,12 @@ return {
desc = "[H]eading",
},
{
"<leader>pDs",
"<leader>pds",
"<cmd>Telescope software-licenses find<cr>",
desc = "[S]oftware Licenses",
},
{
"<leader>pDh",
"<leader>pdh",
function()
require("telescope").extensions.http.list()
end,
@@ -131,7 +118,7 @@ return {
desc = "[G]it Create [N]ew Worktree",
},
{
"<leader>gd",
"<leader>gD",
function()
require("telescope").extensions.git_diffs.diff_commits()
end,

View File

@@ -26,7 +26,7 @@ return {
)
require("nvim-treesitter.configs").setup({
-- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "cpp", "lua", "rust", "python", "markdown", "json", "http" }, -- one of "all" or a list of languages
ensure_installed = { "cpp", "lua", "rust", "python", "markdown", "json", "http", "markdown_inline" }, -- one of "all" or a list of languages
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
@@ -127,7 +127,7 @@ return {
selection_modes = {
["@parameter.outer"] = "v", -- charwise
["@function.outer"] = "V", -- linewise
["@class.outer"] = "<c-v>", -- blockwise
["@class.outer"] = "<C-v>", -- blockwise
},
-- If you set this to `true` (default is `false`) then any textobject is
-- extended to include preceding or succeeding whitespace. Succeeding

View File

@@ -3,7 +3,7 @@ return {
dependencies = { "nvim-tree/nvim-web-devicons" },
keys = {
{
"<leader>tx",
"<leader>tt",
function()
require("trouble").toggle()
end,

View File

@@ -1,5 +1,14 @@
return {
"kaarmu/typst.vim",
ft = "typst",
lazy = false,
config = function()
vim.g.typst_cmd = "typst" -- Specifies the location of the Typst executable. Default: 'typst'
vim.g.typst_pdf_viewer = "zathura" -- Specifies pdf viewer that typst watch --open will use. Default: ''
vim.g.typst_conceal = 0 -- Enable concealment. Default: 0
vim.g.typst_conceal_math = vim.g.typst_conceal -- Enable concealment for math symbols in math mode (i.e. replaces symbols with their actual unicode character). Default: g:typst_conceal
vim.g.typst_conceal_emoji = vim.g.typst_conceal -- Enable concealing emojis, e.g. #emoji.alien becomes 👽. Default: g:typst_conceal
vim.g.typst_auto_close_toc = 0 -- Specifies whether TOC will be automatically closed after using it. Default: 0
vim.g.typst_auto_open_quickfix = 1 -- Specifies whether the quickfix list should automatically open when there are errors from typst. Default: 1
vim.g.typst_embedded_languages = { "python", "rust", "c", "cpp" } -- A list of languages that will be highlighted in code blocks. Typst is always highlighted. Default: []
end,
}

View File

@@ -1,5 +1,6 @@
return {
"lervag/vimtex",
ft = "tex",
keys = {
{ "<leader>Tb", vim.cmd.VimtexCompile, desc = "[B]uild" },
{ "<leader>Tv", vim.cmd.VimtexView, desc = "[V]iew" },

View File

@@ -1,14 +0,0 @@
return {
"vimwiki/vimwiki",
--[[ keys = {
{ "<leader>ww", vim.cmd.VimwikiIndex, desc = "Open index file" },
{ "<leader>wt", vim.cmd.VimwikiTabIndex, desc = "Open Index File in New [T]ab" },
{ "<leader>ws", vim.cmd.VimwikiUISelect, desc = "Display List of Wikis" },
{ "<leader>wi", vim.cmd.VimwikiDiaryIndex, desc = "Open Diary Index" },
{ "<leader>wh", vim.cmd.Vimwiki2HTML, desc = "Convert File to HTML" },
{ "<leader>wH", vim.cmd.Vimwiki2HTMLBrowse, desc = "Convert File to HTML and open in Browser" },
{ "<leader>wn", vim.cmd.VimwikiGoto, desc = "Goto link provided by an argument" },
{ "<leader>wd", vim.cmd.VimwikiDeleteFile, desc = "Rename file" },
{ "<leader>wr", vim.cmd.VimwikiRenameFile, desc = "Delete file" },
}, ]]
}

View File

@@ -1,5 +1,6 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
@@ -41,7 +42,7 @@ return {
l = { name = "[L]SP" },
p = {
name = "Telescope",
D = { name = "[D]evelopment" },
d = { name = "[D]evelopment" },
},
z = { name = "[Z]en" },
r = { name = "[R]ust" },