mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-13 22:02:34 +00:00
feat: Playing around with lazy-nvim and reworking my nvim config
This commit is contained in:
20
nvim/lazynvim/after/ftplugin/markdown.lua
Normal file
20
nvim/lazynvim/after/ftplugin/markdown.lua
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
-- Markdown specific key maps.
|
||||||
|
--
|
||||||
|
local todos = require("todo-comments")
|
||||||
|
local keywords = { "WARN", "WARNING", "IMPORTANT" }
|
||||||
|
|
||||||
|
-- Show all the warnings in the quick fix list.
|
||||||
|
vim.keymap.set(
|
||||||
|
"n",
|
||||||
|
"<leader>tw",
|
||||||
|
"<CMD>Trouble todo toggle filter = {tag = {WARN, IMPORTANT}}<CR>",
|
||||||
|
{ desc = "[T]odo [W]arnings" }
|
||||||
|
)
|
||||||
|
|
||||||
|
vim.keymap.set("n", "]w", function()
|
||||||
|
todos.jump_next({ keywords = keywords })
|
||||||
|
end, { desc = "Next [W]arning" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "[w", function()
|
||||||
|
todos.jump_prev({ keywords = keywords })
|
||||||
|
end, { desc = "Previous [W]arning" })
|
||||||
2
nvim/lazynvim/after/ftplugin/swift.lua
Normal file
2
nvim/lazynvim/after/ftplugin/swift.lua
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.shiftwidth = 2
|
||||||
@@ -1,8 +1,50 @@
|
|||||||
-- Autocmds are automatically loaded on the VeryLazy event
|
local defaultGroupOptions = { clear = true }
|
||||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions)
|
||||||
--
|
local spellGroup = vim.api.nvim_create_augroup("SpellGroup", defaultGroupOptions)
|
||||||
-- Add any additional autocmds here
|
local createCmd = vim.api.nvim_create_autocmd
|
||||||
-- with `vim.api.nvim_create_autocmd`
|
|
||||||
--
|
-- Spell check
|
||||||
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
createCmd("BufEnter", {
|
||||||
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
pattern = { "*.md", "*.markdown", "*.txt", "*.tex" },
|
||||||
|
group = spellGroup,
|
||||||
|
callback = function(_)
|
||||||
|
vim.cmd.setlocal("textwidth=80")
|
||||||
|
vim.cmd.setlocal("spell spelllang=en_us")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Markdown
|
||||||
|
createCmd("BufWritePost", {
|
||||||
|
pattern = { "*.md", "*.markdown" },
|
||||||
|
group = markdownGroup,
|
||||||
|
callback = function(_)
|
||||||
|
local cursor = vim.fn.getpos(".")
|
||||||
|
vim.cmd("FormatWrite")
|
||||||
|
vim.fn.setpos(".", cursor)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Go
|
||||||
|
createCmd("BufWritePre", {
|
||||||
|
pattern = "*.go",
|
||||||
|
callback = function()
|
||||||
|
require("go.format").goimport()
|
||||||
|
end,
|
||||||
|
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions),
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_exec2(
|
||||||
|
[[
|
||||||
|
autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada=""
|
||||||
|
]],
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Highlight when yanking.
|
||||||
|
createCmd("TextYankPost", {
|
||||||
|
desc = "Highlight when yanking text.",
|
||||||
|
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
|
||||||
|
callback = function()
|
||||||
|
vim.highlight.on_yank()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|||||||
@@ -8,41 +8,41 @@ local fn = vim.fn
|
|||||||
|
|
||||||
vim.cmd.set("inccommand=split")
|
vim.cmd.set("inccommand=split")
|
||||||
o.filetype = "on"
|
o.filetype = "on"
|
||||||
o.updatetime = 500 -- faster completion
|
o.updatetime = 500 -- faster completion
|
||||||
o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds)
|
o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||||
o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete
|
o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete
|
||||||
o.backup = false -- creates a backup file
|
o.backup = false -- creates a backup file
|
||||||
o.swapfile = false -- enable/disable swap file creation
|
o.swapfile = false -- enable/disable swap file creation
|
||||||
o.dir = fn.stdpath("data") .. "/swp" -- swap file directory
|
o.dir = fn.stdpath("data") .. "/swp" -- swap file directory
|
||||||
o.undofile = false -- enable/disable undo file creation
|
o.undofile = false -- enable/disable undo file creation
|
||||||
o.undodir = fn.stdpath("data") .. "/undodir" -- set undo directory
|
o.undodir = fn.stdpath("data") .. "/undodir" -- set undo directory
|
||||||
o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered.
|
o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered.
|
||||||
o.hidden = true -- required to keep multiple buffers and open multiple buffers
|
o.hidden = true -- required to keep multiple buffers and open multiple buffers
|
||||||
o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
||||||
o.fileencoding = "utf-8" -- the encoding written to a file
|
o.fileencoding = "utf-8" -- the encoding written to a file
|
||||||
o.conceallevel = 0 -- so that `` is visible in markdown files
|
o.conceallevel = 0 -- so that `` is visible in markdown files
|
||||||
o.number = true -- set numbered lines
|
o.number = true -- set numbered lines
|
||||||
o.relativenumber = true -- set relative numbered lines
|
o.relativenumber = true -- set relative numbered lines
|
||||||
o.cmdheight = 1 -- space for displaying messages/commands
|
o.cmdheight = 1 -- space for displaying messages/commands
|
||||||
o.showmode = false -- we don't need to see things like -- INSERT -- anymore
|
o.showmode = false -- we don't need to see things like -- INSERT -- anymore
|
||||||
o.showtabline = 2 -- always show tabs
|
o.showtabline = 2 -- always show tabs
|
||||||
o.laststatus = 2 -- The value of this option influences when the last window will have a status line (2 always)
|
o.laststatus = 2 -- The value of this option influences when the last window will have a status line (2 always)
|
||||||
o.smartcase = true -- smart case
|
o.smartcase = true -- smart case
|
||||||
o.smartindent = true -- make indenting smarter again
|
o.smartindent = true -- make indenting smarter again
|
||||||
o.splitbelow = true -- force all horizontal splits to go below current window
|
o.splitbelow = true -- force all horizontal splits to go below current window
|
||||||
o.splitright = true -- force all vertical splits to go to the right of current window
|
o.splitright = true -- force all vertical splits to go to the right of current window
|
||||||
o.autoindent = true -- turn on auto indent.
|
o.autoindent = true -- turn on auto indent.
|
||||||
o.expandtab = true -- convert tabs to spaces
|
o.expandtab = true -- convert tabs to spaces
|
||||||
o.smarttab = true -- turn on smart tab
|
o.smarttab = true -- turn on smart tab
|
||||||
o.shiftwidth = 2 -- the number of spaces inserted for each indentation
|
o.shiftwidth = 2 -- the number of spaces inserted for each indentation
|
||||||
o.tabstop = 2 -- how many columns a tab counts for
|
o.tabstop = 2 -- how many columns a tab counts for
|
||||||
o.termguicolors = true -- set term gui colors (most terminals support this)
|
o.termguicolors = true -- set term gui colors (most terminals support this)
|
||||||
o.cursorline = true -- highlight the current line
|
o.cursorline = true -- highlight the current line
|
||||||
o.scrolloff = 8 -- Minimal number of screen lines to keep above and below the cursor
|
o.scrolloff = 20 -- Minimal number of screen lines to keep above and below the cursor
|
||||||
o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally
|
o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally
|
||||||
o.hlsearch = false -- highlight all matches on previous search pattern
|
o.hlsearch = false -- highlight all matches on previous search pattern
|
||||||
o.ignorecase = true -- ignore case in search patterns
|
o.ignorecase = true -- ignore case in search patterns
|
||||||
o.foldenable = false -- disable folding; enable with zi
|
o.foldenable = false -- disable folding; enable with zi
|
||||||
o.foldmethod = "expr"
|
o.foldmethod = "expr"
|
||||||
o.foldexpr = "nvim_treesitter#foldexpr()"
|
o.foldexpr = "nvim_treesitter#foldexpr()"
|
||||||
vim.cmd.set("nolist") -- don't show listchars.
|
vim.cmd.set("nolist") -- don't show listchars.
|
||||||
@@ -51,10 +51,10 @@ o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣"
|
|||||||
o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages
|
o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages
|
||||||
wo.colorcolumn = "99999"
|
wo.colorcolumn = "99999"
|
||||||
o.wildmode = "full"
|
o.wildmode = "full"
|
||||||
o.lazyredraw = false -- do not redraw screen while running macros
|
o.lazyredraw = false -- do not redraw screen while running macros
|
||||||
o.grepprg = "rg --hidden --vimgrep --smart-case --"
|
o.grepprg = "rg --hidden --vimgrep --smart-case --"
|
||||||
o.completeopt = { "menu", "menuone", "noselect", "noinsert" } -- A comma separated list of options for Insert mode completion
|
o.completeopt = { "menu", "menuone", "noselect", "noinsert" } -- A comma separated list of options for Insert mode completion
|
||||||
o.wildignorecase = true -- When set case is ignored when completing file names and directories
|
o.wildignorecase = true -- When set case is ignored when completing file names and directories
|
||||||
o.wildignore = [[
|
o.wildignore = [[
|
||||||
.git,.hg,.svn
|
.git,.hg,.svn
|
||||||
*.aux,*.out,*.toc
|
*.aux,*.out,*.toc
|
||||||
|
|||||||
@@ -1,197 +0,0 @@
|
|||||||
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
|
||||||
-- stylua: ignore
|
|
||||||
if true then return {} end
|
|
||||||
|
|
||||||
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
|
||||||
--
|
|
||||||
-- In your plugin files, you can:
|
|
||||||
-- * add extra plugins
|
|
||||||
-- * disable/enabled LazyVim plugins
|
|
||||||
-- * override the configuration of LazyVim plugins
|
|
||||||
return {
|
|
||||||
-- add gruvbox
|
|
||||||
{ "ellisonleao/gruvbox.nvim" },
|
|
||||||
|
|
||||||
-- Configure LazyVim to load gruvbox
|
|
||||||
{
|
|
||||||
"LazyVim/LazyVim",
|
|
||||||
opts = {
|
|
||||||
colorscheme = "gruvbox",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- change trouble config
|
|
||||||
{
|
|
||||||
"folke/trouble.nvim",
|
|
||||||
-- opts will be merged with the parent spec
|
|
||||||
opts = { use_diagnostic_signs = true },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- disable trouble
|
|
||||||
{ "folke/trouble.nvim", enabled = false },
|
|
||||||
|
|
||||||
-- override nvim-cmp and add cmp-emoji
|
|
||||||
{
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
dependencies = { "hrsh7th/cmp-emoji" },
|
|
||||||
---@param opts cmp.ConfigSchema
|
|
||||||
opts = function(_, opts)
|
|
||||||
table.insert(opts.sources, { name = "emoji" })
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- change some telescope options and a keymap to browse plugin files
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
keys = {
|
|
||||||
-- add a keymap to browse plugin files
|
|
||||||
-- stylua: ignore
|
|
||||||
{
|
|
||||||
"<leader>fp",
|
|
||||||
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
|
||||||
desc = "Find Plugin File",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- change some options
|
|
||||||
opts = {
|
|
||||||
defaults = {
|
|
||||||
layout_strategy = "horizontal",
|
|
||||||
layout_config = { prompt_position = "top" },
|
|
||||||
sorting_strategy = "ascending",
|
|
||||||
winblend = 0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- add pyright to lspconfig
|
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
---@class PluginLspOpts
|
|
||||||
opts = {
|
|
||||||
---@type lspconfig.options
|
|
||||||
servers = {
|
|
||||||
-- pyright will be automatically installed with mason and loaded with lspconfig
|
|
||||||
pyright = {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- add tsserver and setup with typescript.nvim instead of lspconfig
|
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
dependencies = {
|
|
||||||
"jose-elias-alvarez/typescript.nvim",
|
|
||||||
init = function()
|
|
||||||
require("lazyvim.util").lsp.on_attach(function(_, buffer)
|
|
||||||
-- stylua: ignore
|
|
||||||
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
|
||||||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
---@class PluginLspOpts
|
|
||||||
opts = {
|
|
||||||
---@type lspconfig.options
|
|
||||||
servers = {
|
|
||||||
-- tsserver will be automatically installed with mason and loaded with lspconfig
|
|
||||||
tsserver = {},
|
|
||||||
},
|
|
||||||
-- you can do any additional lsp server setup here
|
|
||||||
-- return true if you don't want this server to be setup with lspconfig
|
|
||||||
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
|
||||||
setup = {
|
|
||||||
-- example to setup with typescript.nvim
|
|
||||||
tsserver = function(_, opts)
|
|
||||||
require("typescript").setup({ server = opts })
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
-- Specify * to use this function as a fallback for any server
|
|
||||||
-- ["*"] = function(server, opts) end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
|
|
||||||
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
|
||||||
|
|
||||||
-- add more treesitter parsers
|
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
opts = {
|
|
||||||
ensure_installed = {
|
|
||||||
"bash",
|
|
||||||
"html",
|
|
||||||
"javascript",
|
|
||||||
"json",
|
|
||||||
"lua",
|
|
||||||
"markdown",
|
|
||||||
"markdown_inline",
|
|
||||||
"python",
|
|
||||||
"query",
|
|
||||||
"regex",
|
|
||||||
"tsx",
|
|
||||||
"typescript",
|
|
||||||
"vim",
|
|
||||||
"yaml",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
|
|
||||||
-- would overwrite `ensure_installed` with the new value.
|
|
||||||
-- If you'd rather extend the default config, use the code below instead:
|
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
opts = function(_, opts)
|
|
||||||
-- add tsx and treesitter
|
|
||||||
vim.list_extend(opts.ensure_installed, {
|
|
||||||
"tsx",
|
|
||||||
"typescript",
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- the opts function can also be used to change the default opts:
|
|
||||||
{
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
opts = function(_, opts)
|
|
||||||
table.insert(opts.sections.lualine_x, {
|
|
||||||
function()
|
|
||||||
return "😄"
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- or you can return new options to override all the defaults
|
|
||||||
{
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
opts = function()
|
|
||||||
return {
|
|
||||||
--[[add your custom lualine config here]]
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- use mini.starter instead of alpha
|
|
||||||
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
|
||||||
|
|
||||||
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
|
||||||
|
|
||||||
-- add any tools you want to have installed below
|
|
||||||
{
|
|
||||||
"williamboman/mason.nvim",
|
|
||||||
opts = {
|
|
||||||
ensure_installed = {
|
|
||||||
"stylua",
|
|
||||||
"shellcheck",
|
|
||||||
"shfmt",
|
|
||||||
"flake8",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
23
nvim/lazynvim/lua/plugins/formatter.lua
Normal file
23
nvim/lazynvim/lua/plugins/formatter.lua
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
return {
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
opts = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
lua = { "stulua" },
|
||||||
|
markdown = {
|
||||||
|
"prettier",
|
||||||
|
prepend_args = {
|
||||||
|
"--print-width",
|
||||||
|
"100",
|
||||||
|
"--prose-wrap",
|
||||||
|
"always",
|
||||||
|
"--parser",
|
||||||
|
"markdown",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
swift = { "swiftformat" },
|
||||||
|
-- ["*"] = {
|
||||||
|
-- require("formatter.filetypes.any").remove_trailing_whitespace,
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ return {
|
|||||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||||
{ import = "lazyvim.plugins.extras.lang.markdown" },
|
{ import = "lazyvim.plugins.extras.lang.markdown" },
|
||||||
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.luasnip" },
|
||||||
{
|
{
|
||||||
import = "lazyvim.plugins.extras.editor.mini-files",
|
import = "lazyvim.plugins.extras.editor.mini-files",
|
||||||
opts = {
|
opts = {
|
||||||
|
|||||||
@@ -1,100 +1,147 @@
|
|||||||
-- The language servers to setup.
|
|
||||||
local lsp_servers = {
|
|
||||||
"bashls",
|
|
||||||
"clangd",
|
|
||||||
"dockerls",
|
|
||||||
"gopls",
|
|
||||||
"jsonls",
|
|
||||||
"lua_ls",
|
|
||||||
"marksman",
|
|
||||||
"sourcekit",
|
|
||||||
"yamlls",
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"neovim/nvim-lspconfig",
|
{
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
|
||||||
{ "antosha417/nvim-lsp-file-operations", config = true },
|
|
||||||
"williamboman/mason.nvim",
|
"williamboman/mason.nvim",
|
||||||
"williamboman/mason-lspconfig.nvim",
|
dependencies = {
|
||||||
{
|
"neovim/nvim-lspconfig",
|
||||||
"folke/lazydev.nvim",
|
},
|
||||||
ft = "lua",
|
opts = {
|
||||||
opts = {
|
ensure_installed = {
|
||||||
library = {
|
"clangd",
|
||||||
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
"marksman",
|
||||||
},
|
"shfmt",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
config = function()
|
{
|
||||||
require("mason").setup()
|
"nvim-treesitter/nvim-treesitter",
|
||||||
require("mason-lspconfig").setup({
|
opts = {
|
||||||
opts = {
|
ensure_installed = {
|
||||||
ensure_installed = lsp_servers,
|
"bash",
|
||||||
|
"cmake",
|
||||||
|
"dockerfile",
|
||||||
|
"editorconfig",
|
||||||
|
"ini",
|
||||||
|
"json",
|
||||||
|
"jq",
|
||||||
|
"latex",
|
||||||
|
"make",
|
||||||
|
"swift",
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
local lspconfig = require("lspconfig")
|
},
|
||||||
local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
{
|
||||||
local capabilities = cmp_nvim_lsp.default_capabilities()
|
"neovim/nvim-lspconfig",
|
||||||
local opts = { noremap = true, silent = true }
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
local on_attach = function(_, bufnr)
|
opts = {
|
||||||
opts.buffer = bufnr
|
servers = {
|
||||||
|
bashls = {},
|
||||||
opts.desc = "Show line diagnostics"
|
clangd = {},
|
||||||
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
|
dockerls = {},
|
||||||
|
gopls = {},
|
||||||
opts.desc = "Show diagnostics in Telescope"
|
jsonls = {},
|
||||||
vim.keymap.set("n", "<leader><leader>d", "<CMD>Telescope diagnostics bufnr=0<CR>", opts)
|
lua_ls = {},
|
||||||
|
marksman = {},
|
||||||
opts.desc = "Show documentation for what is under cursor"
|
sourcekit = {},
|
||||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.hover, opts)
|
yamlls = {},
|
||||||
|
},
|
||||||
opts.desc = "[G]oto [D]efinition"
|
setup = {
|
||||||
vim.keymap.set("n", "gd", "<cmd>Telescope lsp_definitions trim_text=true<cr>", opts)
|
clangd = function(_, opts)
|
||||||
|
opts.capabilities.offsetEncoding = { "utf-16" }
|
||||||
opts.desc = "[G]oto [D]eclaration"
|
|
||||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
|
||||||
|
|
||||||
opts.desc = "LSP [C]ode [A]ction"
|
|
||||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
|
||||||
|
|
||||||
--opts.desc = "[R]e-[N]ame"
|
|
||||||
--vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
|
||||||
|
|
||||||
opts.desc = "[R]eload or start LSP"
|
|
||||||
vim.keymap.set("n", "<leader>rl", ":LspRestart | :LspStart<CR>", opts)
|
|
||||||
|
|
||||||
opts.desc = "Goto previous diagnostic"
|
|
||||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
|
||||||
|
|
||||||
opts.desc = "Goto next diagnostic"
|
|
||||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, lsp in ipairs(lsp_servers) do
|
|
||||||
lspconfig[lsp].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_attach = on_attach,
|
|
||||||
on_init = function(client)
|
|
||||||
-- HACK: to fix some issues with LSP
|
|
||||||
-- more details: https://github.com/neovim/neovim/issues/19237#issuecomment-2237037154
|
|
||||||
client.offset_encoding = "utf-8"
|
|
||||||
end,
|
end,
|
||||||
cmd = lsp == "sourcekit" and { vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) } or nil,
|
sourcekit = function(_, opts)
|
||||||
})
|
opts.cmd = {
|
||||||
end
|
vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) or nil
|
||||||
|
}
|
||||||
-- nice icons
|
end
|
||||||
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
},
|
||||||
for type, icon in pairs(signs) do
|
},
|
||||||
local hl = "DiagnosticSign" .. type
|
},
|
||||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- For some reason I was having trouble getting this to work inside the on-attach, so it's here.
|
|
||||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e-[N]ame" })
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- return {
|
||||||
|
-- "neovim/nvim-lspconfig",
|
||||||
|
-- event = { "BufReadPre", "BufNewFile" },
|
||||||
|
-- dependencies = {
|
||||||
|
-- "hrsh7th/cmp-nvim-lsp",
|
||||||
|
-- { "antosha417/nvim-lsp-file-operations", config = true },
|
||||||
|
-- "williamboman/mason.nvim",
|
||||||
|
-- "williamboman/mason-lspconfig.nvim",
|
||||||
|
-- {
|
||||||
|
-- "folke/lazydev.nvim",
|
||||||
|
-- ft = "lua",
|
||||||
|
-- opts = {
|
||||||
|
-- library = {
|
||||||
|
-- { path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- config = function()
|
||||||
|
-- require("mason").setup()
|
||||||
|
-- require("mason-lspconfig").setup({
|
||||||
|
-- opts = {
|
||||||
|
-- ensure_installed = lsp_servers,
|
||||||
|
-- },
|
||||||
|
-- })
|
||||||
|
-- local lspconfig = require("lspconfig")
|
||||||
|
-- local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
||||||
|
-- local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||||
|
-- local opts = { noremap = true, silent = true }
|
||||||
|
-- local on_attach = function(_, bufnr)
|
||||||
|
-- opts.buffer = bufnr
|
||||||
|
--
|
||||||
|
-- opts.desc = "Show line diagnostics"
|
||||||
|
-- vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "Show diagnostics in Telescope"
|
||||||
|
-- vim.keymap.set("n", "<leader><leader>d", "<CMD>Telescope diagnostics bufnr=0<CR>", opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "Show documentation for what is under cursor"
|
||||||
|
-- vim.keymap.set("n", "<C-k>", vim.lsp.buf.hover, opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "[G]oto [D]efinition"
|
||||||
|
-- vim.keymap.set("n", "gd", "<cmd>Telescope lsp_definitions trim_text=true<cr>", opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "[G]oto [D]eclaration"
|
||||||
|
-- vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "LSP [C]ode [A]ction"
|
||||||
|
-- vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||||
|
--
|
||||||
|
-- --opts.desc = "[R]e-[N]ame"
|
||||||
|
-- --vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "[R]eload or start LSP"
|
||||||
|
-- vim.keymap.set("n", "<leader>rl", ":LspRestart | :LspStart<CR>", opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "Goto previous diagnostic"
|
||||||
|
-- vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||||
|
--
|
||||||
|
-- opts.desc = "Goto next diagnostic"
|
||||||
|
-- vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- for _, lsp in ipairs(lsp_servers) do
|
||||||
|
-- lspconfig[lsp].setup({
|
||||||
|
-- capabilities = capabilities,
|
||||||
|
-- on_attach = on_attach,
|
||||||
|
-- on_init = function(client)
|
||||||
|
-- -- HACK: to fix some issues with LSP
|
||||||
|
-- -- more details: https://github.com/neovim/neovim/issues/19237#issuecomment-2237037154
|
||||||
|
-- client.offset_encoding = "utf-8"
|
||||||
|
-- end,
|
||||||
|
-- cmd = lsp == "sourcekit" and { vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) } or nil,
|
||||||
|
-- })
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- -- nice icons
|
||||||
|
-- local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||||
|
-- for type, icon in pairs(signs) do
|
||||||
|
-- local hl = "DiagnosticSign" .. type
|
||||||
|
-- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- -- For some reason I was having trouble getting this to work inside the on-attach, so it's here.
|
||||||
|
-- vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e-[N]ame" })
|
||||||
|
-- end,
|
||||||
|
-- }
|
||||||
|
|||||||
39
nvim/lazynvim/lua/plugins/luasnip.lua
Normal file
39
nvim/lazynvim/lua/plugins/luasnip.lua
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
opts = function()
|
||||||
|
LazyVim.cmp.actions.snippet_forward = function()
|
||||||
|
if require("luasnip").jumpable(1) then
|
||||||
|
require("luasnip").jump(1)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
LazyVim.cmp.actions.snippet_stop = function()
|
||||||
|
if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?
|
||||||
|
require("luasnip").unlink_current()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<C-k>",
|
||||||
|
mode = { "i", "s" },
|
||||||
|
function()
|
||||||
|
if ls.expand_or_jumpable() then
|
||||||
|
ls.expand_or_jump()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-j>",
|
||||||
|
mode = { "i", "s" },
|
||||||
|
function()
|
||||||
|
if ls.jumpable(-1) then
|
||||||
|
ls.jump(-1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
36
nvim/lazynvim/lua/plugins/oil.lua
Normal file
36
nvim/lazynvim/lua/plugins/oil.lua
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
return {
|
||||||
|
"stevearc/oil.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
columns = { "icon" },
|
||||||
|
keymaps = {
|
||||||
|
["<C-h>"] = false,
|
||||||
|
["<M-h>"] = "actions.select_split",
|
||||||
|
["<C-v>"] = {
|
||||||
|
"actions.select",
|
||||||
|
opts = { vertical = true },
|
||||||
|
desc = "Open the entry in a vertical split",
|
||||||
|
},
|
||||||
|
view_options = {
|
||||||
|
is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
||||||
|
-- Don't show .DS_Store in output.
|
||||||
|
local is_ds_store = name ~= ".DS_Store"
|
||||||
|
return not is_ds_store
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
-- Show the parent directory in current window.
|
||||||
|
{ "-", "<CMD>Oil<CR>", desc = "Open parent directory." },
|
||||||
|
-- Open parent directory in floating window.
|
||||||
|
{
|
||||||
|
"<space>-",
|
||||||
|
function() require("oil").toggle_float() end,
|
||||||
|
desc = "Open parent directory in floating window."
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ local progress_handle
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
"wojciech-kulik/xcodebuild.nvim",
|
"wojciech-kulik/xcodebuild.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
"MunifTanjim/nui.nvim",
|
"MunifTanjim/nui.nvim",
|
||||||
@@ -50,23 +51,23 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
keys = {
|
keys = {
|
||||||
{ "<leader>X", "<cmd>XcodebuildPicker<cr>", desc = "Show Xcodebuild Actions" },
|
{ "<leader>X", "<cmd>XcodebuildPicker<cr>", desc = "Show Xcodebuild Actions" },
|
||||||
{ "<leader>xf", "<cmd>XcodebuildProjectManager<cr>", desc = "Show Project Manager Actions" },
|
{ "<leader>xf", "<cmd>XcodebuildProjectManager<cr>", desc = "Show Project Manager Actions" },
|
||||||
{ "<leader>xb", "<cmd>XcodebuildBuild<cr>", desc = "Build Project" },
|
{ "<leader>xb", "<cmd>XcodebuildBuild<cr>", desc = "Build Project" },
|
||||||
{ "<leader>xB", "<cmd>XcodebuildBuildForTesting<cr>", desc = "Build For Testing" },
|
{ "<leader>xB", "<cmd>XcodebuildBuildForTesting<cr>", desc = "Build For Testing" },
|
||||||
{ "<leader>xr", "<cmd>XcodebuildBuildRun<cr>", desc = "Build & Run Project" },
|
{ "<leader>xr", "<cmd>XcodebuildBuildRun<cr>", desc = "Build & Run Project" },
|
||||||
{ "<leader>xt", "<cmd>XcodebuildTest<cr>", desc = "Run Tests" },
|
{ "<leader>xt", "<cmd>XcodebuildTest<cr>", desc = "Run Tests" },
|
||||||
{ "<leader>xt", "<cmd>XcodebuildTestSelected<cr>", desc = "Run Selected Tests" },
|
{ "<leader>xt", "<cmd>XcodebuildTestSelected<cr>", desc = "Run Selected Tests" },
|
||||||
{ "<leader>xT", "<cmd>XcodebuildTestClass<cr>", desc = "Run This Test Class" },
|
{ "<leader>xT", "<cmd>XcodebuildTestClass<cr>", desc = "Run This Test Class" },
|
||||||
{ "<leader>xl", "<cmd>XcodebuildToggleLogs<cr>", desc = "Toggle Xcodebuild Logs" },
|
{ "<leader>xl", "<cmd>XcodebuildToggleLogs<cr>", desc = "Toggle Xcodebuild Logs" },
|
||||||
{ "<leader>xc", "<cmd>XcodebuildToggleCodeCoverage<cr>", desc = "Toggle Code Coverage" },
|
{ "<leader>xc", "<cmd>XcodebuildToggleCodeCoverage<cr>", desc = "Toggle Code Coverage" },
|
||||||
{ "<leader>xC", "<cmd>XcodebuildShowCodeCoverageReport<cr>", desc = "Show Code Coverage Report" },
|
{ "<leader>xC", "<cmd>XcodebuildShowCodeCoverageReport<cr>", desc = "Show Code Coverage Report" },
|
||||||
{ "<leader>xe", "<cmd>XcodebuildTestExplorerToggle<cr>", desc = "Toggle Test Explorer" },
|
{ "<leader>xe", "<cmd>XcodebuildTestExplorerToggle<cr>", desc = "Toggle Test Explorer" },
|
||||||
{ "<leader>xs", "<cmd>XcodebuildFailingSnapshots<cr>", desc = "Show Failing Snapshots" },
|
{ "<leader>xs", "<cmd>XcodebuildFailingSnapshots<cr>", desc = "Show Failing Snapshots" },
|
||||||
{ "<leader>xd", "<cmd>XcodebuildSelectDevice<cr>", desc = "Select Device" },
|
{ "<leader>xd", "<cmd>XcodebuildSelectDevice<cr>", desc = "Select Device" },
|
||||||
{ "<leader>xp", "<cmd>XcodebuildSelectTestPlan<cr>", desc = "Select Test Plan" },
|
{ "<leader>xp", "<cmd>XcodebuildSelectTestPlan<cr>", desc = "Select Test Plan" },
|
||||||
{ "<leader>xq", "<cmd>Telescope quickfix<cr", desc = "Show QuickFix List" },
|
{ "<leader>xq", "<cmd>Telescope quickfix<cr", desc = "Show QuickFix List" },
|
||||||
{ "<leader>xx", "<cmd>XcodebuildQuickfixLine<cr>", desc = "Quickfix Line" },
|
{ "<leader>xx", "<cmd>XcodebuildQuickfixLine<cr>", desc = "Quickfix Line" },
|
||||||
{ "<leader>xa", "<cmd>XcodebuildCodeActions<cr>", desc = "Show Code Actions" },
|
{ "<leader>xa", "<cmd>XcodebuildCodeActions<cr>", desc = "Show Code Actions" },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
16
nvim/lazynvim/spell/en.utf-8.add
Executable file
16
nvim/lazynvim/spell/en.utf-8.add
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
MeasureQuick
|
||||||
|
Housh
|
||||||
|
sealtite
|
||||||
|
Subcool
|
||||||
|
OEM
|
||||||
|
NEC
|
||||||
|
AHJ
|
||||||
|
CFM
|
||||||
|
Hydronic
|
||||||
|
subpar
|
||||||
|
quo
|
||||||
|
IAQ
|
||||||
|
wc
|
||||||
|
HVAC
|
||||||
|
dehumidification
|
||||||
|
ansible
|
||||||
BIN
nvim/lazynvim/spell/en.utf-8.add.spl
Executable file
BIN
nvim/lazynvim/spell/en.utf-8.add.spl
Executable file
Binary file not shown.
@@ -1,57 +1,58 @@
|
|||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"saghen/blink.cmp",
|
"saghen/blink.cmp",
|
||||||
dependencies = {
|
enabeld = false,
|
||||||
"rafamadriz/friendly-snippets",
|
dependencies = {
|
||||||
--"L3MON4D3/LuaSnip",
|
"rafamadriz/friendly-snippets",
|
||||||
},
|
--"L3MON4D3/LuaSnip",
|
||||||
version = "v0.*",
|
},
|
||||||
opts = {
|
version = "v0.*",
|
||||||
appearance = {
|
opts = {
|
||||||
use_nvim_cmp_as_default = true,
|
appearance = {
|
||||||
nerd_font_variant = "mono",
|
use_nvim_cmp_as_default = true,
|
||||||
},
|
nerd_font_variant = "mono",
|
||||||
signature = { enabled = true },
|
},
|
||||||
keymap = {
|
signature = { enabled = true },
|
||||||
preset = "default",
|
keymap = {
|
||||||
["<CR>"] = { "accept", "fallback" },
|
preset = "default",
|
||||||
["<C-space>"] = {
|
["<CR>"] = { "accept", "fallback" },
|
||||||
function(cmp)
|
["<C-space>"] = {
|
||||||
cmp.show({ providers = { "snippets" } })
|
function(cmp)
|
||||||
end,
|
cmp.show({ providers = { "snippets" } })
|
||||||
},
|
end,
|
||||||
--["<C-k>"] = { "select_prev", "fallback" },
|
},
|
||||||
--["<C-j>"] = { "select_next", "fallback" },
|
--["<C-k>"] = { "select_prev", "fallback" },
|
||||||
["<C-n>"] = {
|
--["<C-j>"] = { "select_next", "fallback" },
|
||||||
function(cmp)
|
["<C-n>"] = {
|
||||||
if cmp.snippet_active() then
|
function(cmp)
|
||||||
return cmp.accept()
|
if cmp.snippet_active() then
|
||||||
else
|
return cmp.accept()
|
||||||
return cmp.select_and_accept()
|
else
|
||||||
end
|
return cmp.select_and_accept()
|
||||||
end,
|
end
|
||||||
"snippet_forward",
|
end,
|
||||||
"fallback",
|
"snippet_forward",
|
||||||
},
|
"fallback",
|
||||||
},
|
},
|
||||||
-- snippets = {
|
},
|
||||||
-- expand = function(snippet)
|
-- snippets = {
|
||||||
-- require("luasnip").lsp_expand(snippet)
|
-- expand = function(snippet)
|
||||||
-- end,
|
-- require("luasnip").lsp_expand(snippet)
|
||||||
-- active = function(filter)
|
-- end,
|
||||||
-- if filter and filter.direction then
|
-- active = function(filter)
|
||||||
-- return require("luasnip").jumpable(filter.direction)
|
-- if filter and filter.direction then
|
||||||
-- end
|
-- return require("luasnip").jumpable(filter.direction)
|
||||||
-- return require("luasnip").in_snippet()
|
-- end
|
||||||
-- end,
|
-- return require("luasnip").in_snippet()
|
||||||
-- jump = function(direction)
|
-- end,
|
||||||
-- require("luasnip").jump(direction)
|
-- jump = function(direction)
|
||||||
-- end,
|
-- require("luasnip").jump(direction)
|
||||||
-- },
|
-- end,
|
||||||
sources = {
|
-- },
|
||||||
default = { "lsp", "path", "snippets", "buffer" },
|
sources = {
|
||||||
},
|
default = { "lsp", "path", "snippets", "buffer" },
|
||||||
},
|
},
|
||||||
opts_extend = { "sources.default" },
|
},
|
||||||
},
|
opts_extend = { "sources.default" },
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
return {
|
return {
|
||||||
"hrsh7th/nvim-cmp",
|
"hrsh7th/nvim-cmp",
|
||||||
enabled = false,
|
enabled = true,
|
||||||
event = "InsertEnter",
|
event = "VeryLazy",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
"hrsh7th/cmp-buffer", -- source for text in buffer
|
"hrsh7th/cmp-buffer", -- source for text in buffer
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
return {
|
return {
|
||||||
"ray-x/go.nvim",
|
"ray-x/go.nvim",
|
||||||
|
enabled = false,
|
||||||
lazy = true,
|
lazy = true,
|
||||||
dependencies = { -- optional packages
|
dependencies = { -- optional packages
|
||||||
"ray-x/guihua.lua",
|
"ray-x/guihua.lua",
|
||||||
|
|||||||
@@ -1,85 +1,86 @@
|
|||||||
return {
|
return {
|
||||||
"ThePrimeagen/harpoon",
|
"ThePrimeagen/harpoon",
|
||||||
branch = "harpoon2",
|
branch = "harpoon2",
|
||||||
dependencies = {
|
event = "VeryLazy",
|
||||||
"nvim-lua/plenary.nvim",
|
dependencies = {
|
||||||
},
|
"nvim-lua/plenary.nvim",
|
||||||
config = function()
|
},
|
||||||
local harpoon = require("harpoon")
|
config = function()
|
||||||
harpoon:setup({
|
local harpoon = require("harpoon")
|
||||||
settings = {
|
harpoon:setup({
|
||||||
save_on_toggle = true,
|
settings = {
|
||||||
sync_on_ui_close = true,
|
save_on_toggle = true,
|
||||||
key = function()
|
sync_on_ui_close = true,
|
||||||
return vim.loop.cwd()
|
key = function()
|
||||||
end,
|
return vim.loop.cwd()
|
||||||
},
|
end,
|
||||||
})
|
},
|
||||||
|
})
|
||||||
|
|
||||||
local conf = require("telescope.config").values
|
local conf = require("telescope.config").values
|
||||||
local function toggle_telescope(harpoon_files)
|
local function toggle_telescope(harpoon_files)
|
||||||
local file_paths = {}
|
local file_paths = {}
|
||||||
for _, item in ipairs(harpoon_files.items) do
|
for _, item in ipairs(harpoon_files.items) do
|
||||||
table.insert(file_paths, item.value)
|
table.insert(file_paths, item.value)
|
||||||
end
|
end
|
||||||
|
|
||||||
require("telescope.pickers")
|
require("telescope.pickers")
|
||||||
.new({}, {
|
.new({}, {
|
||||||
prompt_title = "Harpoon",
|
prompt_title = "Harpoon",
|
||||||
finder = require("telescope.finders").new_table({
|
finder = require("telescope.finders").new_table({
|
||||||
results = file_paths,
|
results = file_paths,
|
||||||
}),
|
}),
|
||||||
previewer = conf.file_previewer({}),
|
previewer = conf.file_previewer({}),
|
||||||
sorter = conf.generic_sorter({}),
|
sorter = conf.generic_sorter({}),
|
||||||
})
|
})
|
||||||
:find()
|
:find()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Keymaps
|
-- Keymaps
|
||||||
vim.keymap.set("n", "<C-e>", function()
|
vim.keymap.set("n", "<C-e>", function()
|
||||||
toggle_telescope(harpoon:list())
|
toggle_telescope(harpoon:list())
|
||||||
end, { desc = "Open Harpoon window" })
|
end, { desc = "Open Harpoon window" })
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>a", function()
|
vim.keymap.set("n", "<leader>a", function()
|
||||||
harpoon:list():add()
|
harpoon:list():add()
|
||||||
end, { desc = "[A]dd to harpoon list." })
|
end, { desc = "[A]dd to harpoon list." })
|
||||||
vim.keymap.set("n", "<C-e>", function()
|
vim.keymap.set("n", "<C-e>", function()
|
||||||
harpoon.ui:toggle_quick_menu(harpoon:list())
|
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||||
end, { desc = "Toggle quick menu." })
|
end, { desc = "Toggle quick menu." })
|
||||||
|
|
||||||
-- Buffer key maps. Currently keeping all buffer movements
|
-- Buffer key maps. Currently keeping all buffer movements
|
||||||
-- isolated to top left row of keys on keyboard and all begin
|
-- isolated to top left row of keys on keyboard and all begin
|
||||||
-- with the <Control> key.
|
-- with the <Control> key.
|
||||||
|
|
||||||
-- Select buffer numbers.
|
-- Select buffer numbers.
|
||||||
vim.keymap.set("n", "<A-y>", function()
|
vim.keymap.set("n", "<A-y>", function()
|
||||||
harpoon:list():select(1)
|
harpoon:list():select(1)
|
||||||
end, { desc = "Select first harpoon buffer." })
|
end, { desc = "Select first harpoon buffer." })
|
||||||
vim.keymap.set("n", "<A-u>", function()
|
vim.keymap.set("n", "<A-u>", function()
|
||||||
harpoon:list():select(2)
|
harpoon:list():select(2)
|
||||||
end, { desc = "Select second harpoon buffer." })
|
end, { desc = "Select second harpoon buffer." })
|
||||||
vim.keymap.set("n", "<A-i>", function()
|
vim.keymap.set("n", "<A-i>", function()
|
||||||
harpoon:list():select(3)
|
harpoon:list():select(3)
|
||||||
end, { desc = "Select third harpoon buffer." })
|
end, { desc = "Select third harpoon buffer." })
|
||||||
vim.keymap.set("n", "<A-o>", function()
|
vim.keymap.set("n", "<A-o>", function()
|
||||||
harpoon:list():select(4)
|
harpoon:list():select(4)
|
||||||
end, { desc = "Select fourth harpoon buffer." })
|
end, { desc = "Select fourth harpoon buffer." })
|
||||||
|
|
||||||
-- Toggle previous and next buffers.
|
-- Toggle previous and next buffers.
|
||||||
vim.keymap.set("n", "<C-[>", function()
|
vim.keymap.set("n", "<C-[>", function()
|
||||||
harpoon:list():prev()
|
harpoon:list():prev()
|
||||||
end, { desc = "[P]revious harpoon buffer." })
|
end, { desc = "[P]revious harpoon buffer." })
|
||||||
vim.keymap.set("n", "<C-]>", function()
|
vim.keymap.set("n", "<C-]>", function()
|
||||||
harpoon:list():next()
|
harpoon:list():next()
|
||||||
end, { desc = "[N]ext harpoon buffer." })
|
end, { desc = "[N]ext harpoon buffer." })
|
||||||
|
|
||||||
-- Extensions
|
-- Extensions
|
||||||
harpoon:extend({
|
harpoon:extend({
|
||||||
UI_CREATE = function(cx)
|
UI_CREATE = function(cx)
|
||||||
vim.keymap.set("n", "<C-v>", function()
|
vim.keymap.set("n", "<C-v>", function()
|
||||||
harpoon.ui:select_menu_item({ vsplit = true })
|
harpoon.ui:select_menu_item({ vsplit = true })
|
||||||
end, { buffer = cx.buffer, desc = "Open in [V]split" })
|
end, { buffer = cx.buffer, desc = "Open in [V]split" })
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
return {
|
return {
|
||||||
"L3MON4D3/LuaSnip",
|
"L3MON4D3/LuaSnip",
|
||||||
version = "v2.*",
|
version = "v2.*",
|
||||||
|
event = "VeryLazy",
|
||||||
config = function()
|
config = function()
|
||||||
local ls = require("luasnip")
|
local ls = require("luasnip")
|
||||||
local types = require("luasnip.util.types")
|
local types = require("luasnip.util.types")
|
||||||
@@ -17,7 +18,7 @@ return {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
require("luasnip.loaders.from_lua").lazy_load({ paths = "~/.config/m-housh/lua/user/snippets/" })
|
require("luasnip.loaders.from_lua").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets" })
|
||||||
|
|
||||||
-- Keymaps
|
-- Keymaps
|
||||||
local opts = { silent = true }
|
local opts = { silent = true }
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ end
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
"mfussenegger/nvim-dap",
|
"mfussenegger/nvim-dap",
|
||||||
|
--event = "VeryLazy",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"wojciech-kulik/xcodebuild.nvim",
|
"wojciech-kulik/xcodebuild.nvim",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,36 +1,68 @@
|
|||||||
return {
|
return {
|
||||||
"stevearc/oil.nvim",
|
"stevearc/oil.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-tree/nvim-web-devicons",
|
"nvim-tree/nvim-web-devicons",
|
||||||
},
|
},
|
||||||
config = function()
|
opts = {
|
||||||
require("oil").setup({
|
columns = { "icon" },
|
||||||
columns = { "icon" },
|
keymaps = {
|
||||||
keymaps = {
|
["<C-h>"] = false,
|
||||||
["<C-h>"] = false,
|
["<M-h>"] = "actions.select_split",
|
||||||
["<M-h>"] = "actions.select_split",
|
["<C-v>"] = {
|
||||||
["<C-v>"] = {
|
"actions.select",
|
||||||
"actions.select",
|
opts = { vertical = true },
|
||||||
opts = { vertical = true },
|
desc = "Open the entry in a vertical split",
|
||||||
desc = "Open the entry in a vertical split",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
view_options = {
|
},
|
||||||
is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
view_options = {
|
||||||
-- Don't show .DS_Store in output.
|
is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
||||||
local is_ds_store = name ~= ".DS_Store"
|
-- Don't show .DS_Store in output.
|
||||||
return not is_ds_store
|
local is_ds_store = name ~= ".DS_Store"
|
||||||
end,
|
return not is_ds_store
|
||||||
},
|
end,
|
||||||
})
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
-- Show the parent directory in current window.
|
-- Show the parent directory in current window.
|
||||||
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory." })
|
{ "-", "<CMD>Oil<CR>", desc = "Open directory." },
|
||||||
|
|
||||||
-- Open parent directory in floating window.
|
-- Open parent directory in floating window.
|
||||||
vim.keymap.set("n", "<space>-", require("oil").toggle_float)
|
{
|
||||||
|
"<leader>-",
|
||||||
-- Old habits die hard, map what used to toggle neo-tree to just open a float.
|
function()
|
||||||
vim.keymap.set("n", "<C-n>", require("oil").toggle_float)
|
require("oil").toggle_float()
|
||||||
end,
|
end,
|
||||||
|
desc = "Open directory in float.",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- config = function()
|
||||||
|
-- require("oil").setup({
|
||||||
|
-- columns = { "icon" },
|
||||||
|
-- keymaps = {
|
||||||
|
-- ["<C-h>"] = false,
|
||||||
|
-- ["<M-h>"] = "actions.select_split",
|
||||||
|
-- ["<C-v>"] = {
|
||||||
|
-- "actions.select",
|
||||||
|
-- opts = { vertical = true },
|
||||||
|
-- desc = "Open the entry in a vertical split",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- view_options = {
|
||||||
|
-- is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
||||||
|
-- -- Don't show .DS_Store in output.
|
||||||
|
-- local is_ds_store = name ~= ".DS_Store"
|
||||||
|
-- return not is_ds_store
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
-- })
|
||||||
|
--
|
||||||
|
-- -- Show the parent directory in current window.
|
||||||
|
-- vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory." })
|
||||||
|
--
|
||||||
|
-- -- Open parent directory in floating window.
|
||||||
|
-- vim.keymap.set("n", "<space>-", require("oil").toggle_float)
|
||||||
|
--
|
||||||
|
-- -- Old habits die hard, map what used to toggle neo-tree to just open a float.
|
||||||
|
-- vim.keymap.set("n", "<C-n>", require("oil").toggle_float)
|
||||||
|
-- end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,56 +1,57 @@
|
|||||||
local progress_handle
|
local progress_handle
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"wojciech-kulik/xcodebuild.nvim",
|
"wojciech-kulik/xcodebuild.nvim",
|
||||||
--branch = "fix/issue-249",
|
event = "VeryLazy",
|
||||||
dependencies = {
|
--branch = "fix/issue-249",
|
||||||
"nvim-telescope/telescope.nvim",
|
dependencies = {
|
||||||
"MunifTanjim/nui.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
},
|
"MunifTanjim/nui.nvim",
|
||||||
config = function()
|
},
|
||||||
require("xcodebuild").setup({
|
config = function()
|
||||||
show_build_progress_bar = false,
|
require("xcodebuild").setup({
|
||||||
logs = {
|
show_build_progress_bar = false,
|
||||||
auto_open_on_success_tests = false,
|
logs = {
|
||||||
auto_open_on_failed_tests = false,
|
auto_open_on_success_tests = false,
|
||||||
auto_open_on_success_build = false,
|
auto_open_on_failed_tests = false,
|
||||||
auto_open_on_failed_build = false,
|
auto_open_on_success_build = false,
|
||||||
auto_focus = false,
|
auto_open_on_failed_build = false,
|
||||||
auto_close_on_app_launch = true,
|
auto_focus = false,
|
||||||
only_summary = true,
|
auto_close_on_app_launch = true,
|
||||||
notify = function(message, severity)
|
only_summary = true,
|
||||||
local fidget = require("fidget")
|
notify = function(message, severity)
|
||||||
if progress_handle then
|
local fidget = require("fidget")
|
||||||
progress_handle.message = message
|
if progress_handle then
|
||||||
if not message:find("Loading") then
|
progress_handle.message = message
|
||||||
progress_handle:finish()
|
if not message:find("Loading") then
|
||||||
progress_handle = nil
|
progress_handle:finish()
|
||||||
if vim.trim(message) ~= "" then
|
progress_handle = nil
|
||||||
fidget.notify(message, severity)
|
if vim.trim(message) ~= "" then
|
||||||
end
|
fidget.notify(message, severity)
|
||||||
end
|
end
|
||||||
else
|
end
|
||||||
fidget.notify(message, severity)
|
else
|
||||||
end
|
fidget.notify(message, severity)
|
||||||
end,
|
end
|
||||||
notify_progress = function(message)
|
end,
|
||||||
local progress = require("fidget.progress")
|
notify_progress = function(message)
|
||||||
|
local progress = require("fidget.progress")
|
||||||
|
|
||||||
if progress_handle then
|
if progress_handle then
|
||||||
progress_handle.title = ""
|
progress_handle.title = ""
|
||||||
progress_handle.message = message
|
progress_handle.message = message
|
||||||
else
|
else
|
||||||
progress_handle = progress.handle.create({
|
progress_handle = progress.handle.create({
|
||||||
message = message,
|
message = message,
|
||||||
lsp_client = { name = "xcodebuild.nvim" },
|
lsp_client = { name = "xcodebuild.nvim" },
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
code_coverage = {
|
code_coverage = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- stylua: ignore start
|
-- stylua: ignore start
|
||||||
vim.keymap.set("n", "<leader>X", "<cmd>XcodebuildPicker<cr>", { desc = "Show Xcodebuild Actions" })
|
vim.keymap.set("n", "<leader>X", "<cmd>XcodebuildPicker<cr>", { desc = "Show Xcodebuild Actions" })
|
||||||
@@ -76,5 +77,5 @@ return {
|
|||||||
|
|
||||||
vim.keymap.set("n", "<leader>xx", "<cmd>XcodebuildQuickfixLine<cr>", { desc = "Quickfix Line" })
|
vim.keymap.set("n", "<leader>xx", "<cmd>XcodebuildQuickfixLine<cr>", { desc = "Quickfix Line" })
|
||||||
vim.keymap.set("n", "<leader>xa", "<cmd>XcodebuildCodeActions<cr>", { desc = "Show Code Actions" })
|
vim.keymap.set("n", "<leader>xa", "<cmd>XcodebuildCodeActions<cr>", { desc = "Show Code Actions" })
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,21 +28,12 @@ require("lazy").setup({
|
|||||||
"christoomey/vim-tmux-navigator",
|
"christoomey/vim-tmux-navigator",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
},
|
},
|
||||||
-- {
|
|
||||||
-- "NMAC427/guess-indent.nvim",
|
|
||||||
-- opts = { }
|
|
||||||
-- },
|
|
||||||
{ "NoahTheDuke/vim-just", ft = { "just" } },
|
{ "NoahTheDuke/vim-just", ft = { "just" } },
|
||||||
{
|
{
|
||||||
"chipsenkbeil/distant.nvim",
|
"chipsenkbeil/distant.nvim",
|
||||||
branch = "v0.3",
|
version = "v0.*",
|
||||||
config = function()
|
event = "VeryLazy",
|
||||||
require("distant"):setup()
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
-- LSP, formatting, etc. --
|
|
||||||
--{ "folke/neodev.nvim", opts = {} },
|
|
||||||
}, {
|
}, {
|
||||||
checker = {
|
checker = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
|
|||||||
17
nvim/m-housh/snippets/init.lua
Normal file
17
nvim/m-housh/snippets/init.lua
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-- Setup snippets here.
|
||||||
|
local ls = require("luasnip")
|
||||||
|
local s = ls.snippet
|
||||||
|
local sn = ls.snippet_node
|
||||||
|
local ms = ls.multi_snippet
|
||||||
|
local i = ls.insert_node
|
||||||
|
local f = ls.function_node
|
||||||
|
local c = ls.choice_node
|
||||||
|
local t = ls.text_node
|
||||||
|
|
||||||
|
ls.add_snippets("lua", {
|
||||||
|
s("hello", {
|
||||||
|
t('print("hello '),
|
||||||
|
i(1),
|
||||||
|
t(' world")'),
|
||||||
|
}),
|
||||||
|
})
|
||||||
34
nvim/m-housh/snippets/lua.lua
Normal file
34
nvim/m-housh/snippets/lua.lua
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
-- Setup snippets here.
|
||||||
|
local ls = require("luasnip")
|
||||||
|
local s = ls.snippet
|
||||||
|
local sn = ls.snippet_node
|
||||||
|
local ms = ls.multi_snippet
|
||||||
|
local i = ls.insert_node
|
||||||
|
local f = ls.function_node
|
||||||
|
local c = ls.choice_node
|
||||||
|
local t = ls.text_node
|
||||||
|
|
||||||
|
ls.add_snippets("lua", {
|
||||||
|
-- Setup a new snippet file.
|
||||||
|
s("sf", {
|
||||||
|
t({
|
||||||
|
"-- Setup snippets.",
|
||||||
|
'local ls = require("luasnip")',
|
||||||
|
"local s = ls.snippet",
|
||||||
|
"local sn = ls.snippet_node",
|
||||||
|
"local ms = ls.multi_snippet",
|
||||||
|
"local i = ls.insert_node",
|
||||||
|
"local f = ls.function_node",
|
||||||
|
"local c = ls.choice_node",
|
||||||
|
"local t = ls.text_node",
|
||||||
|
"-- Add snippets",
|
||||||
|
}),
|
||||||
|
t('ls.add_snippets("'),
|
||||||
|
i(1, "<file-type>"),
|
||||||
|
t({
|
||||||
|
'", {',
|
||||||
|
"\t-- Define snippets here.",
|
||||||
|
"})",
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
})
|
||||||
131
nvim/m-housh/snippets/swift.lua
Normal file
131
nvim/m-housh/snippets/swift.lua
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
-- Setup snippets.
|
||||||
|
local ls = require("luasnip")
|
||||||
|
local s = ls.snippet
|
||||||
|
local sn = ls.snippet_node
|
||||||
|
local ms = ls.multi_snippet
|
||||||
|
local i = ls.insert_node
|
||||||
|
local f = ls.function_node
|
||||||
|
local c = ls.choice_node
|
||||||
|
local t = ls.text_node
|
||||||
|
local fmt = require("luasnip.extras.fmt").fmt
|
||||||
|
local rep = require("luasnip.extras").rep
|
||||||
|
-- Add snippets
|
||||||
|
ls.add_snippets("swift", {
|
||||||
|
-- Add a dependency snippet.
|
||||||
|
s({ trig = "@d", desc = "Add a dependency." }, fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })),
|
||||||
|
|
||||||
|
-- Add a dependency client.
|
||||||
|
s(
|
||||||
|
{
|
||||||
|
trig = "@dc",
|
||||||
|
desc = "Add a dependency client.",
|
||||||
|
},
|
||||||
|
fmt(
|
||||||
|
[[
|
||||||
|
public extension DependencyValues {{
|
||||||
|
var {}: {} {{
|
||||||
|
get {{ self[{}.self] }}
|
||||||
|
set {{ self[{}.self] = newValue }}
|
||||||
|
}}
|
||||||
|
}}
|
||||||
|
|
||||||
|
@DependencyClient
|
||||||
|
public struct {} {{
|
||||||
|
|
||||||
|
// Insert interface here.
|
||||||
|
{}
|
||||||
|
}}
|
||||||
|
|
||||||
|
extension {}: TestDependencyKey {{
|
||||||
|
public static let testValue: {} = Self()
|
||||||
|
}}
|
||||||
|
|
||||||
|
]],
|
||||||
|
{
|
||||||
|
i(1, "<name>"),
|
||||||
|
i(2, "<Dependency>"),
|
||||||
|
rep(2),
|
||||||
|
rep(2),
|
||||||
|
rep(2),
|
||||||
|
i(0),
|
||||||
|
rep(2),
|
||||||
|
rep(2),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
s(
|
||||||
|
{ trig = "str", desc = "Add a struct" },
|
||||||
|
fmt(
|
||||||
|
[[
|
||||||
|
struct {}: {} {{
|
||||||
|
{}
|
||||||
|
}}
|
||||||
|
]],
|
||||||
|
{ i(1, "<Name>"), i(2, "<Protocols>"), i(0) }
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
-- Decorate a type or function with an @_spi(...)
|
||||||
|
s({ trig = "@_s", desc = "Add spi modifier." }, fmt("@_spi({})", { i(1, "name") })),
|
||||||
|
|
||||||
|
-- Add an @_spi(...) import ...
|
||||||
|
s(
|
||||||
|
{ trig = "@_si", desc = "Import with spi." },
|
||||||
|
fmt(
|
||||||
|
[[
|
||||||
|
@_spi({}) import {}
|
||||||
|
{}
|
||||||
|
]],
|
||||||
|
{ i(1, "name"), i(2, "module"), i(0) }
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
-- Document a function
|
||||||
|
-- TODO: add dynamic number of prameters.
|
||||||
|
s(
|
||||||
|
{ trig = "docf", desc = "Document a function." },
|
||||||
|
fmt(
|
||||||
|
[[
|
||||||
|
/// {}
|
||||||
|
///
|
||||||
|
/// - Parameters:
|
||||||
|
/// - {}: {}
|
||||||
|
]],
|
||||||
|
{ i(1, "A short description."), i(2, "<param>"), i(3, "Describe the parameter.") }
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
-- Add a parameter to a documentation string.
|
||||||
|
s(
|
||||||
|
{ trig = "param", desc = "Add a parameter to documentation" },
|
||||||
|
fmt(
|
||||||
|
[[
|
||||||
|
/// - {}: {}
|
||||||
|
]],
|
||||||
|
{ i(1, "<param>"), i(2, "<description>") }
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
-- Add a withDependencies
|
||||||
|
s(
|
||||||
|
{ trig = "wd", desc = "withDependencies" },
|
||||||
|
fmt(
|
||||||
|
[[
|
||||||
|
withDependencies {{
|
||||||
|
$0.{} = {}
|
||||||
|
}} operation: {{
|
||||||
|
@Dependency(\.{}) var {}
|
||||||
|
{}
|
||||||
|
}}
|
||||||
|
]],
|
||||||
|
{
|
||||||
|
i(1, "<dependency>"),
|
||||||
|
i(2, "<override>"),
|
||||||
|
rep(1),
|
||||||
|
rep(1),
|
||||||
|
i(0),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
),
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user