diff --git a/.gitmodules b/.gitmodules index e7ff16e..25f4bc3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "mail"] path = mail url = ssh://git@git.housh.dev:2222/michael/mail.git +[submodule "env/.config/nvim"] + path = env/.config/nvim + url = https://github.com/m-housh/mhoush.nvim.git diff --git a/env/.config/nvim b/env/.config/nvim new file mode 160000 index 0000000..8f34505 --- /dev/null +++ b/env/.config/nvim @@ -0,0 +1 @@ +Subproject commit 8f34505d2d31d72fa860a1db633756652ee46e5b diff --git a/env/.config/nvim/.gitignore b/env/.config/nvim/.gitignore deleted file mode 100644 index cc5457a..0000000 --- a/env/.config/nvim/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -tt.* -.tests -doc/tags -debug -.repro -foo.* -*.log -data diff --git a/env/.config/nvim/.neoconf.json b/env/.config/nvim/.neoconf.json deleted file mode 100644 index 7c48087..0000000 --- a/env/.config/nvim/.neoconf.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "neodev": { - "library": { - "enabled": true, - "plugins": true - } - }, - "neoconf": { - "plugins": { - "lua_ls": { - "enabled": true - } - } - } -} diff --git a/env/.config/nvim/LICENSE b/env/.config/nvim/LICENSE deleted file mode 100644 index 60efd3f..0000000 --- a/env/.config/nvim/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [2025] [Michael Housh] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/env/.config/nvim/README.md b/env/.config/nvim/README.md deleted file mode 100644 index 83d6f14..0000000 --- a/env/.config/nvim/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# mhoush.nvim - -My personal configuration for neovim. Requires neovim >= 0.12 - - diff --git a/env/.config/nvim/after/ftplugin/markdown.lua b/env/.config/nvim/after/ftplugin/markdown.lua deleted file mode 100644 index ddf2f5e..0000000 --- a/env/.config/nvim/after/ftplugin/markdown.lua +++ /dev/null @@ -1,20 +0,0 @@ --- 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", --- "tw", --- "Trouble todo toggle filter = {tag = {WARN, IMPORTANT}}", --- { 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" }) diff --git a/env/.config/nvim/after/ftplugin/swift.lua b/env/.config/nvim/after/ftplugin/swift.lua deleted file mode 100644 index ebe4aff..0000000 --- a/env/.config/nvim/after/ftplugin/swift.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.opt.tabstop = 2 -vim.opt.shiftwidth = 2 diff --git a/env/.config/nvim/init.lua b/env/.config/nvim/init.lua deleted file mode 100644 index 4a4a0ad..0000000 --- a/env/.config/nvim/init.lua +++ /dev/null @@ -1,285 +0,0 @@ --- NOTE: This requires neovim >= 0.12, you can use bob to download nightly. --- - --- Options -vim.g.netrw_browsex_viewer = "xdg-open" -vim.g.mapleader = " " -vim.opt.number = true -vim.opt.relativenumber = true -vim.opt.swapfile = false -vim.opt.undofile = true -vim.opt.winborder = "rounded" -vim.opt.shiftwidth = 2 -vim.opt.tabstop = 2 -vim.opt.showtabline = 2 -vim.opt.signcolumn = "yes" -vim.opt.wrap = false -vim.opt.smartindent = true -vim.opt.termguicolors = true - - --- Plugins -vim.pack.add({ - { src = "https://github.com/catppuccin/nvim" }, - { src = "https://github.com/nvim-mini/mini.pick" }, - { src = "https://github.com/stevearc/oil.nvim" }, - { src = "https://github.com/neovim/nvim-lspconfig" }, - { src = "https://github.com/nvim-treesitter/nvim-treesitter", version = "main" }, - { src = "https://github.com/mason-org/mason.nvim" }, - { src = "https://github.com/nvim-lua/plenary.nvim" }, - { src = "https://github.com/ThePrimeagen/harpoon", version = "harpoon2" }, - { src = "https://github.com/christoomey/vim-tmux-navigator" }, - { src = "https://github.com/stevearc/conform.nvim" }, - { src = 'https://github.com/MeanderingProgrammer/render-markdown.nvim' }, -}) - -require("mason").setup({ - ensure_installed = { - "bash-language-server", - "docker-language-server", - "hyprls", - "jq", - "lua-language-server", - "markdown-toc", - "markdownlint-cli2", - "marksman", - "prettier", - "shellcheck", - "tinymist", - } -}) -require("mini.pick").setup() -require("oil").setup({ - view_options = { - show_hidden = true, - is_always_hidden = function(name, bufnr) - local m = name:match("^%.git$") - if m ~= nil then - return true - else - return false - end - end - } -}) -require("conform").setup({ - formatters = { - ["markdown-toc"] = { - condition = function(_, ctx) - for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do - if line:find("") then - return true - end - end - end, - }, - ["markdownlint-cli2"] = { - condition = function(_, ctx) - local diag = vim.tbl_filter(function(d) - return d.source == "markdownlint" - end, vim.diagnostic.get(ctx.buf)) - return #diag > 0 - end, - }, - formatters_by_ft = { - ["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" }, - ["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" }, - lua = { "stulua" }, - swift = { "swiftformat" }, - }, - } -}) - -require("harpoon").setup({ settings = { save_on_toggle = true, sync_on_ui_close = true } }) - --- Set color scheme -vim.cmd([[colorscheme catppuccin-mocha]]) -vim.cmd(":hi statusline guibg=NONE") -vim.cmd [[set completeopt+=menuone,noselect,popup]] - --- LSP --- -vim.lsp.enable({ - "lua_ls", "tinymist", "marksman", "bashls", "hyprls", "docker-language-server", -}) - -vim.lsp.config('bashls', { - filetypes = { "bash", "sh", "zsh" }, - cmd = { 'bash-language-server', 'start' }, -}) - -vim.lsp.config('docker-language-server', { - cmd = { 'docker-language-server', 'start', '--stdio' }, - filetypes = { 'dockerfile', 'yaml.docker-compose' }, - get_language_id = function(_, ftype) - if ftype == 'yaml.docker-compose' or ftype:lower():find('ya?ml') then - return 'dockercompose' - else - return ftype - end - end, - root_markers = { - 'Dockerfile', - 'docker-compose.yaml', - 'docker-compose.yml', - 'compose.yaml', - 'compose.yml', - 'docker-bake.json', - 'docker-bake.hcl', - 'docker-bake.override.json', - 'docker-bake.override.hcl', - }, -}) - --- Fix warnings for 'vim' global keyword. -vim.lsp.config("lua_ls", { - settings = { - Lua = { - workspace = { - library = { - vim.api.nvim_get_runtime_file("", true), - }, - }, - }, - }, -}) - --- Keymaps -local map = vim.keymap.set -local harpoon = require("harpoon") - -map('i', 'jk', '') - -map('n', 'a', function() harpoon:list():add() end, { desc = "[A]dd file to harpoon" }) -map('n', 'bb', ':bprevious', { desc = "[B]uffer [b]ack" }) -map('n', 'bn', ':bnext', { desc = "[B]uffer [n]ext" }) -map('n', 'cf', vim.lsp.buf.format, { desc = "[F]ormat" }) -map('n', '', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, { desc = "Open harpoon menu" }) -map('n', 'e', ':Oil', { desc = "[E]xplore files" }) -map('n', 'ff', ':Pick files', { desc = "[F]ind file" }) -map('n', 'fh', ':Pick help', { desc = "[H]elp search" }) -map('n', 'hb', function() harpoon:list():prev() end, { desc = "[H]arpoon [b]ack" }) -map('n', 'hn', function() harpoon:list():next() end, { desc = "[H]arpoon [n]ext" }) -map('n', 'o', ':update :source', { desc = "Source current file" }) - --- Tmux / pane navigation -map('n', "", "TmuxNavigateLeft") -map('n', "", "TmuxNavigateDown") -map('n', "", "TmuxNavigateUp") -map('n', "", "TmuxNavigateRight") - --- Move line(s) up or down. -map('n', "J", ":move .+1==", { desc = "Move line down" }) -map('n', "K", ":move .-2==", { desc = "Move line up" }) -map("v", "K", ":move '<-2gv=gv", { desc = "Move selected block up.", silent = true, noremap = true }) -map("v", "J", ":move '>+1gv=gv", { desc = "Move selected block up.", silent = true, noremap = true }) - --- Harpoon extensions -harpoon:extend({ - UI_CREATE = function(cx) - vim.keymap.set("n", "", function() - harpoon.ui:select_menu_item({ vsplit = true }) - end, { buffer = cx.buffer, desc = "Open in [V]ertical split" }) - end, -}) - --- Auto commands. -local defaultopts = { clear = true } - --- Force zsh files to use bash syntax highlighting -vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { - group = vim.api.nvim_create_augroup('my.zsh', defaultopts), - pattern = "*", - callback = function(args) - local first_line = vim.api.nvim_buf_get_lines(args.buf, 0, 1, false)[1] or "" - if first_line:match("^#!.*zsh") then - vim.cmd.setlocal("filetype=bash") - end - end, -}) - --- Markdown -vim.api.nvim_create_autocmd("BufEnter", { - pattern = "*.md", - group = vim.api.nvim_create_augroup('my.markdown', defaultopts), - callback = function(_) - -- HACK: Set filetype to markdown for '.md' files. - -- Not sure why it doesn't detect these as markdown files, but this fixes the issue. - vim.cmd.setlocal("filetype=markdown") - vim.cmd.setlocal("textwidth=120") - vim.cmd.setlocal("spell spelllang=en_us") - end, -}) - --- Neomutt -vim.api.nvim_create_autocmd("BufEnter", { - pattern = "neomutt*", - group = vim.api.nvim_create_augroup('my.neomutt', defaultopts), - callback = function(_) - vim.cmd.setlocal("filetype=markdown") - vim.cmd.setlocal("textwidth=120") - vim.cmd.setlocal("spell spelllang=en_us") - end, -}) - --- GoPass -vim.api.nvim_exec2( - [[ - autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada="" - ]], - {} -) - --- Stolen from: https://github.com/SylvanFranklin/.config/blob/main/nvim/init.lua -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('my.lsp', {}), - callback = function(args) - local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) - if client:supports_method('textDocument/completion') then - -- Optional: trigger autocompletion on EVERY keypress. May be slow! - local chars = {}; for i = 32, 126 do table.insert(chars, string.char(i)) end - client.server_capabilities.completionProvider.triggerCharacters = chars - vim.lsp.completion.enable(true, client.id, args.buf, { autotrigger = true }) - end - end, -}) - --- Hyprlang LSP -vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, { - pattern = { "*.hl", "hypr*.conf" }, - callback = function(event) - vim.lsp.start { - name = "hyprlang", - cmd = { "hyprls" }, - root_dir = vim.fn.getcwd(), - } - end -}) - --- Highlight when yanking. -vim.api.nvim_create_autocmd("TextYankPost", { - desc = "Highlight when yanking text.", - group = vim.api.nvim_create_augroup("my.highlight-yank", defaultopts), - callback = function() - vim.highlight.on_yank() - end, -}) - --- Add '-' to be part of words. -vim.api.nvim_create_autocmd("BufEnter", { - desc = "Add '-' to be part of word.", - group = vim.api.nvim_create_augroup('my.iskeyword', defaultopts), - pattern = "*", - callback = function() - vim.cmd.setlocal("iskeyword+=-") - end -}) - -vim.api.nvim_create_autocmd("BufWritePre", { - desc = "Format on write.", - group = vim.api.nvim_create_augroup('my.format-on-write', defaultopts), - pattern = "*", - callback = function() - vim.lsp.buf.format() - end -}) diff --git a/env/.config/nvim/snippets/init.lua b/env/.config/nvim/snippets/init.lua deleted file mode 100644 index 9028086..0000000 --- a/env/.config/nvim/snippets/init.lua +++ /dev/null @@ -1,17 +0,0 @@ --- 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")'), - }), -}) diff --git a/env/.config/nvim/snippets/lua.lua b/env/.config/nvim/snippets/lua.lua deleted file mode 100644 index 8f42afd..0000000 --- a/env/.config/nvim/snippets/lua.lua +++ /dev/null @@ -1,41 +0,0 @@ --- 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 -local fmt = require("luasnip.extras.fmt").fmt - -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, ""), - t({ - '", {', - "\t-- Define snippets here.", - "})", - }), - }), - s("c", { - c(1, { - fmt("{}", { i(1), t("debug") }), - fmt("{}", { i(1), t("warning") }), - }), - }), -}) diff --git a/env/.config/nvim/snippets/swift.lua b/env/.config/nvim/snippets/swift.lua deleted file mode 100644 index b073696..0000000 --- a/env/.config/nvim/snippets/swift.lua +++ /dev/null @@ -1,131 +0,0 @@ --- 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, ""), - i(2, ""), - rep(2), - rep(2), - rep(2), - i(0), - rep(2), - rep(2), - } - ) - ), - - s( - { trig = "str", desc = "Add a struct" }, - fmt( - [[ - struct {}: {} {{ - {} - }} - ]], - { i(1, ""), i(2, ""), 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, ""), i(3, "Describe the parameter.") } - ) - ), - - -- Add a parameter to a documentation string. - s( - { trig = "param", desc = "Add a parameter to documentation" }, - fmt( - [[ - /// - {}: {} - ]], - { i(1, ""), i(2, "") } - ) - ), - - -- Add a withDependencies - s( - { trig = "wd", desc = "withDependencies" }, - fmt( - [[ - withDependencies {{ - $0.{} = {} - }} operation: {{ - @Dependency(\.{}) var {} - {} - }} - ]], - { - i(1, ""), - i(2, ""), - rep(1), - rep(1), - i(0), - } - ) - ), -}) diff --git a/env/.config/nvim/spell/en.utf-8.add b/env/.config/nvim/spell/en.utf-8.add deleted file mode 100755 index a9d67d3..0000000 --- a/env/.config/nvim/spell/en.utf-8.add +++ /dev/null @@ -1,21 +0,0 @@ -MeasureQuick -Housh -sealtite -Subcool -OEM -NEC -AHJ -CFM -Hydronic -subpar -quo -IAQ -wc -HVAC -dehumidification -ansible -orchestrator -ethernet -unifi -wildcard -Housh diff --git a/env/.config/nvim/spell/en.utf-8.add.spl b/env/.config/nvim/spell/en.utf-8.add.spl deleted file mode 100755 index d7da2ca..0000000 Binary files a/env/.config/nvim/spell/en.utf-8.add.spl and /dev/null differ diff --git a/env/.config/nvim/stylua.toml b/env/.config/nvim/stylua.toml deleted file mode 100644 index 5d6c50d..0000000 --- a/env/.config/nvim/stylua.toml +++ /dev/null @@ -1,3 +0,0 @@ -indent_type = "Spaces" -indent_width = 2 -column_width = 120 \ No newline at end of file