diff --git a/nvim/.config/nvim/after/plugin/autoformat.lua b/nvim/.config/nvim/after/plugin/autoformat.lua index 238a78f..50c17cb 100644 --- a/nvim/.config/nvim/after/plugin/autoformat.lua +++ b/nvim/.config/nvim/after/plugin/autoformat.lua @@ -3,7 +3,7 @@ if not enable_autoformat then return end -local exclude_list = { "ccls", "tsserver", "astro", "lua_ls" } +local exclude_list = { "ccls", "tsserver", "astro", "lua_ls", "salt_ls" } local has_value = function(name) for _, value in ipairs(exclude_list) do if value == name then @@ -42,6 +42,9 @@ vim.api.nvim_create_autocmd("LspAttach", { local client_id = args.data.client_id local client = vim.lsp.get_client_by_id(client_id) local bufnr = args.buf + if vim.bo.ft == "sls" then + return + end -- Only attach to clients that support document formatting if not client.server_capabilities.documentFormattingProvider or has_value(client.name) then diff --git a/nvim/.config/nvim/ftdetect/hurl.vim b/nvim/.config/nvim/ftdetect/hurl.vim new file mode 100644 index 0000000..5792b15 --- /dev/null +++ b/nvim/.config/nvim/ftdetect/hurl.vim @@ -0,0 +1,3 @@ +autocmd BufRead,BufNewFile *.hurl set filetype=hurl +autocmd Filetype hurl setlocal commentstring=#\ %s + diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 77c274e..541173b 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -58,6 +58,15 @@ require("nvim-treesitter.configs").setup({ }, }, }) +local parser_config = require("nvim-treesitter.parsers").get_parser_configs() +parser_config.grlx = { + install_info = { + url = "~/Documents/code/work-oss/tree-sitter-grlx", + files = { "src/parser.c" }, + }, + filetype = "grlx", +} +vim.filetype.add({ extension = { grlx = "grlx" } }) require("treesitter-context").setup() local function LoadCoverageOnEnter() @@ -85,9 +94,20 @@ end -- end -- end, -- }) +vim.api.nvim_create_autocmd({ "BufRead, BufNewFile" }, { + pattern = { "*/ansible/*.yml" }, + callback = function() + vim.api.nvim_buf_set_option(0, "filetype", "yaml.ansible") + end, +}) + vim.api.nvim_create_autocmd({ "BufNewFile", "BufRead" }, { pattern = { "*.service" }, callback = function() vim.api.nvim_buf_set_option(0, "filetype", "systemd") end, }) + +if vim.env.ZELLIJ ~= nil then + vim.fn.system({ "zellij", "action", "switch-mode", "locked" }) +end diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index f401817..3d625f7 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -1,7 +1,7 @@ { - "ChatGPT.nvim": { "branch": "main", "commit": "ef0cf1f28a22bbf2e9be531f4856d2cace57e4b2" }, - "Comment.nvim": { "branch": "master", "commit": "176e85eeb63f1a5970d6b88f1725039d85ca0055" }, - "LuaSnip": { "branch": "master", "commit": "45a4e899ca8f54936fe32ead6bba65f2a8d42e12" }, + "ChatGPT.nvim": { "branch": "main", "commit": "8191b4a1faea28483aa3a495d01ade3eb86409fe" }, + "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "LuaSnip": { "branch": "master", "commit": "ea7d7ea510c641c4f15042becd27f35b3e5b3c2b" }, "ansible-vim": { "branch": "master", "commit": "93798e8c89c441d29d4678da0c0d5e1429eb43b0" }, "cmp-git": { "branch": "main", "commit": "f900a4cf117300fdc3ba31d26f8b6223ccd9c574" }, "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, @@ -9,54 +9,47 @@ "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, - "copilot-cmp": { "branch": "master", "commit": "c2cdb3c0f5078b0619055af192295830a7987790" }, - "copilot.lua": { "branch": "master", "commit": "e48bd7020a98be217d85c006a298656294fd6210" }, - "crates.nvim": { "branch": "main", "commit": "4ce7c51b881e58f1e2f8f437f30e4e583cbac319" }, - "dressing.nvim": { "branch": "master", "commit": "e6eff7a5a950a853c3903d906dbcea03f778db5f" }, - "friendly-snippets": { "branch": "main", "commit": "8f5db6c5b691a6bbaa5dabd9afeb164ef8a06d04" }, - "fzf-lua": { "branch": "main", "commit": "19732fdf9b8b038b6a5813b077b382ab2b48e094" }, - "gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" }, - "gitsigns.nvim": { "branch": "main", "commit": "5a04466685008f29c71fa5ec25d421deb1c83fea" }, + "copilot-cmp": { "branch": "master", "commit": "11eb015fbf9f07ad1c72dbdc9d830ebac610b5cd" }, + "copilot.lua": { "branch": "master", "commit": "0fa30d6846aae1af1c94a9ead93fa7dcf8affbe6" }, + "crates.nvim": { "branch": "main", "commit": "d5caf28aba49e81ac4099426231f3cf3c151013a" }, + "dressing.nvim": { "branch": "master", "commit": "b1c7b70e1e0875243ed38f51fe7a61d08e11607e" }, + "friendly-snippets": { "branch": "main", "commit": "ebf6d6e83494cdd88a54a429340256f4dbb6a052" }, + "gitsigns.nvim": { "branch": "main", "commit": "d927caa075df63bf301d92f874efb72fd22fd3b4" }, "gopher.nvim": { "branch": "main", "commit": "03cabf675ce129c28bd855969a3e569edcf63366" }, - "goto-preview": { "branch": "main", "commit": "c5fd9d8d90aef85a97f6abae6f9fe51d445e62b4" }, + "goto-preview": { "branch": "main", "commit": "84532db88f8ee272bcd1c07cda55884e23fd9087" }, "harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" }, - "lazy.nvim": { "branch": "main", "commit": "25beed5e2e935ebc00d7e3eed1dc502df3c40e39" }, + "lazy.nvim": { "branch": "main", "commit": "2a9354c7d2368d78cbd5575a51a2af5bd8a6ad01" }, "lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" }, - "lsp-status.nvim": { "branch": "master", "commit": "54f48eb5017632d81d0fd40112065f1d062d0629" }, - "lsp-trouble.nvim": { "branch": "main", "commit": "20d1b30d6925213abece21d35858a16e11d1e9fc" }, + "lsp-trouble.nvim": { "branch": "main", "commit": "3f85d8ed30e97ceeddbbcf80224245d347053711" }, "lspkind-nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" }, - "lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" }, - "neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" }, - "nightfox.nvim": { "branch": "main", "commit": "77aa7458d2b725c2d9ff55a18befe1b891ac473e" }, - "noice.nvim": { "branch": "main", "commit": "6c87c1d11c38180fb72bf8f45518a0a3e081afc1" }, - "nui.nvim": { "branch": "main", "commit": "d146966a423e60699b084eeb28489fe3b6427599" }, - "null-ls.nvim": { "branch": "main", "commit": "db09b6c691def0038c456551e4e2772186449f35" }, - "nvim-autopairs": { "branch": "master", "commit": "ae5b41ce880a6d850055e262d6dfebd362bb276e" }, - "nvim-cmp": { "branch": "main", "commit": "c4e491a87eeacf0408902c32f031d802c7eafce8" }, - "nvim-coverage": { "branch": "main", "commit": "55f2ed78a2f6b5a93faed18ff2bc1bd707ef336c" }, - "nvim-dap": { "branch": "master", "commit": "3bde6f786057fa29d8356559b2ae3a52d9317fba" }, - "nvim-dap-go": { "branch": "main", "commit": "cdf604a5703838f65fdee7c198f6cb59b563ef6f" }, - "nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" }, - "nvim-lspconfig": { "branch": "master", "commit": "4b26897a80c41eb2f116b271cbdcd4686fb52dd6" }, + "lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" }, + "nightfox.nvim": { "branch": "main", "commit": "a48f6d9a0273101df76eb25d2f5477baa277f935" }, + "noice.nvim": { "branch": "main", "commit": "74c2902146b080035beb19944baf6f014a954720" }, + "nui.nvim": { "branch": "main", "commit": "aa1b4c1e05983ff7debd2b4b2788651db099de2f" }, + "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, + "nvim-autopairs": { "branch": "master", "commit": "a52fc6eeec116746110b703381777c46d89d9e27" }, + "nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" }, + "nvim-coverage": { "branch": "main", "commit": "4634dfb00961a86948518c7e6f85737c24364308" }, + "nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" }, + "nvim-lspconfig": { "branch": "master", "commit": "a27356f1ef9c11e1f459cc96a3fcac5c265e72d6" }, "nvim-notify": { "branch": "master", "commit": "ea9c8ce7a37f2238f934e087c255758659948e0f" }, - "nvim-treesitter": { "branch": "master", "commit": "51ea343f705a89326cff8dd7a0542d7fe0e6699a" }, - "nvim-treesitter-context": { "branch": "master", "commit": "6f8f788738b968f24a108ee599c5be0031f94f06" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "52f1f3280d9092bfaee5c45be5962fabee3d9654" }, + "nvim-treesitter": { "branch": "master", "commit": "17b943e7c5cc2b2db3ac7b5720fbd42e75a00d8d" }, + "nvim-treesitter-context": { "branch": "master", "commit": "31692b26d76ff1f7c6e0ab51814dd55e7417e96c" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "bd103502252027434ec42f628d2dbf54821d4ce6" }, "nvim-ts-rainbow": { "branch": "master", "commit": "8312b513ce930e7669a1721befbe56f2e1853301" }, - "nvim-web-devicons": { "branch": "master", "commit": "efbfed0567ef4bfac3ce630524a0f6c8451c5534" }, - "playground": { "branch": "master", "commit": "2b81a018a49f8e476341dfcb228b7b808baba68b" }, - "plenary.nvim": { "branch": "master", "commit": "1a6a7c929628566cf406aa7da1d048a1ddc7e9a8" }, + "nvim-web-devicons": { "branch": "master", "commit": "bc11ee2498de2310de5776477dd9dce65d03b464" }, + "playground": { "branch": "master", "commit": "429f3e76cbb1c59fe000b690f7a5bea617b890c0" }, + "plenary.nvim": { "branch": "master", "commit": "0dbe561ae023f02c2fb772b879e905055b939ce3" }, "rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" }, "salt-vim": { "branch": "master", "commit": "6ca9e3500cc39dd417b411435d58a1b720b331cc" }, - "telescope-file-browser.nvim": { "branch": "master", "commit": "e03ff55962417b69c85ef41424079bb0580546ba" }, + "telescope-file-browser.nvim": { "branch": "master", "commit": "ad7b637c72549713b9aaed7c4f9c79c62bcbdff0" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" }, "telescope-luasnip.nvim": { "branch": "master", "commit": "849c4ee1951f34041a26744d2a88284545564ff0" }, - "telescope.nvim": { "branch": "master", "commit": "2ea8dcd17b4f9b7714354965a28ae4fef4139c71" }, - "todo-comments.nvim": { "branch": "main", "commit": "09b0b17d824d2d56f02ff15967e8a2499a89c731" }, + "telescope.nvim": { "branch": "master", "commit": "3fae9c1e14910e6669bb8ecbb473aba6a9e13b33" }, "toggleterm.nvim": { "branch": "main", "commit": "b90a1381e9b5b8596f49070ee86c71db267ac868" }, "tree-sitter-just": { "branch": "main", "commit": "4e5f5f3ff37b12a1bbf664eb3966b3019e924594" }, "undotree": { "branch": "master", "commit": "0e11ba7325efbbb3f3bebe06213afa3e7ec75131" }, - "vim-fugitive": { "branch": "master", "commit": "43f18ab9155c853a84ded560c6104e6300ad41da" }, - "vim-just": { "branch": "main", "commit": "f678f5ef3d6bc589e88b7f1da6e969a5f67a99dc" }, - "which-key.nvim": { "branch": "main", "commit": "38b990f6eabf62014018b4aae70a97d7a6c2eb88" } + "vim-fugitive": { "branch": "master", "commit": "572c8510123cbde02e8a1dafcd376c98e1e13f43" }, + "vim-just": { "branch": "main", "commit": "927b41825b9cd07a40fc15b4c68635c4b36fa923" }, + "which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" } } \ No newline at end of file diff --git a/nvim/.config/nvim/lua/custom/diagnostics.lua b/nvim/.config/nvim/lua/custom/diagnostics.lua deleted file mode 100644 index 36bc3d5..0000000 --- a/nvim/.config/nvim/lua/custom/diagnostics.lua +++ /dev/null @@ -1,8 +0,0 @@ -local item = vim.api.nvim_create_user_command("SaltLintVersion", function() - local handle = io.popen("salt-lint --version") - local result = handle:read("*a") - if handle ~= nil then - handle:close() - end - print(result) -end, {}) diff --git a/nvim/.config/nvim/lua/custom/grlx.lua b/nvim/.config/nvim/lua/custom/grlx.lua new file mode 100644 index 0000000..dc8fb6e --- /dev/null +++ b/nvim/.config/nvim/lua/custom/grlx.lua @@ -0,0 +1,12 @@ +vim.api.nvim_create_autocmd("FileType", { + group = vim.api.nvim_create_augroup("grlx", {}), + pattern = "grlx", + callback = function() + vim.lsp.start({ + name = "grlx-lsp", + cmd = { "grlx-lsp" }, + root_dir = vim.loop.cwd(), + flags = { exit_timeout = 1000 }, + }) + end, +}) diff --git a/nvim/.config/nvim/lua/custom/init.lua b/nvim/.config/nvim/lua/custom/init.lua index 3f78284..fbd7472 100644 --- a/nvim/.config/nvim/lua/custom/init.lua +++ b/nvim/.config/nvim/lua/custom/init.lua @@ -10,5 +10,5 @@ require("custom.ui") -- Set LSP vars require("custom.lsp") --- Set diagnostics vars -require("custom.diagnostics") +-- grlx develpment +require("custom.grlx") diff --git a/nvim/.config/nvim/lua/custom/lsp.lua b/nvim/.config/nvim/lua/custom/lsp.lua index 8071328..3668fcc 100644 --- a/nvim/.config/nvim/lua/custom/lsp.lua +++ b/nvim/.config/nvim/lua/custom/lsp.lua @@ -1,5 +1,3 @@ -require("dap-go").setup() -require("dapui").setup() vim.o.completeopt = "menuone,noinsert,noselect" local lspkind = require("lspkind") local nvim_lsp = require("lspconfig") @@ -79,6 +77,10 @@ local servers = { "pyright", "solc", "nixd", + { + "ansiblels", + exec = "ansible-language-server" + }, { "eslint", exec = "vscode-eslint-language-server" @@ -233,6 +235,7 @@ vim.api.nvim_create_autocmd("LspAttach", { end, }) + require("rust-tools").setup(rust_opts) require("trouble").setup({}) @@ -240,9 +243,6 @@ local null_ls = require("null-ls") local formatting = null_ls.builtins.formatting local code_actions = null_ls.builtins.code_actions local diagnostics = null_ls.builtins.diagnostics -local helpers = require("null-ls.helpers") - - null_ls.setup({ -- you can reuse a shared lspconfig on_attach callback here @@ -253,7 +253,7 @@ null_ls.setup({ args = { "-config", vim.fn.expand("~/.config/revive/revive.toml"), "-formatter", "json", "./..." } }), formatting.stylua, - formatting.black, + -- formatting.black, code_actions.gomodifytags, diagnostics.saltlint }, diff --git a/nvim/.config/nvim/lua/custom/packer-plugins.lua b/nvim/.config/nvim/lua/custom/packer-plugins.lua deleted file mode 100644 index 9f12170..0000000 --- a/nvim/.config/nvim/lua/custom/packer-plugins.lua +++ /dev/null @@ -1,164 +0,0 @@ -local is_wsl = require("helper").is_wsl() -local execute = vim.api.nvim_command -local fn = vim.fn --- Bootstrap Packer -local install_path = fn.stdpath("data") .. "/site/pack/packer/opt/packer.nvim" -if fn.empty(fn.glob(install_path)) > 0 then - fn.system({ - "git", - "clone", - "https://github.com/wbthomason/packer.nvim", - install_path, - }) - execute("packadd packer.nvim") -end -vim.cmd([[packadd packer.nvim]]) - -return require("packer").startup({ - function() - -- Manage itself - use({ "wbthomason/packer.nvim", opt = true }) - - -- LSP - use("neovim/nvim-lspconfig") - use("folke/lsp-trouble.nvim") - use("nvim-lua/lsp-status.nvim") - use({ "simrat39/rust-tools.nvim" }) - use("onsails/lspkind-nvim") - use({ - "j-hui/fidget.nvim", - config = function() - require("fidget").setup({}) - end, - }) - - use({ - "windwp/nvim-autopairs", - config = function() - require("nvim-autopairs").setup({}) - end, - }) - - -- Debugging - use("mfussenegger/nvim-dap") - use({ "leoluz/nvim-dap-go", requires = { - "mfussenegger/nvim-dap", - } }) - use({ "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap" } }) - - -- Specific filetypes - use("pearofducks/ansible-vim") - use({ "saltstack/salt-vim" }) - use({ - "Saecki/crates.nvim", - event = "BufRead Cargo.toml", - requires = { "nvim-lua/plenary.nvim" }, - config = function() - require("crates").setup() - end, - }) - - -- CMP - use("hrsh7th/nvim-cmp") - use("hrsh7th/cmp-nvim-lsp") - use("hrsh7th/cmp-nvim-lua") - use("saadparwaiz1/cmp_luasnip") - use("hrsh7th/cmp-path") - use({ "jose-elias-alvarez/null-ls.nvim" }) - - -- Snippets - use("L3MON4D3/LuaSnip") - use("rafamadriz/friendly-snippets") - use { - "danymat/neogen", - requires = "nvim-treesitter/nvim-treesitter", - -- Uncomment next line if you want to follow only stable versions - -- tag = "*" - } - - --Git - use({ "tpope/vim-fugitive" }) - use({ - "lewis6991/gitsigns.nvim", - config = function() - require("gitsigns").setup() - end, - }) - - -- UI - use("lukas-reineke/indent-blankline.nvim") - use("EdenEast/nightfox.nvim") - use("nvim-lualine/lualine.nvim") - use("stevearc/dressing.nvim") - - -- Treesitter - use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" }) - use({ "nvim-treesitter/nvim-treesitter-textobjects" }) - use("p00f/nvim-ts-rainbow") - use({ - "nvim-treesitter/playground", - requires = "nvim-treesitter/nvim-treesitter", - run = ":TSInstall query", - }) - use({ "nvim-treesitter/nvim-treesitter-context", requires = "nvim-treesitter/nvim-treesitter-context" }) - - -- Code help - use({ - "numToStr/Comment.nvim", - config = function() - require("Comment").setup() - end, - }) - use({ - "akinsho/nvim-toggleterm.lua", - config = function() - require("toggleterm").setup() - end, - }) - use({ - "ThePrimeagen/harpoon", - requires = { - { "nvim-lua/plenary.nvim" }, - }, - }) - -- Telescope - use({ - "nvim-telescope/telescope.nvim", - requires = { - { "nvim-lua/popup.nvim" }, - { "nvim-lua/plenary.nvim" }, - }, - }) - use({ - "nvim-telescope/telescope-fzf-native.nvim", - requires = { - { "nvim-telescope/telescope.nvim" }, - }, - run = "make", - }) - use({ "benfowler/telescope-luasnip.nvim", requires = { - { "nvim-telescope/telescope.nvim" }, - } }) - use({ - "ethanholz/nvim-lastplace", - config = function() - require("nvim-lastplace").setup({}) - end, - }) - - use({ "mbbill/undotree" }) - use({ - "folke/which-key.nvim", - config = function() - require("which-key").setup({}) - end, - }) - use({ - "andythigpen/nvim-coverage", - requires = "nvim-lua/plenary.nvim", - config = function() - require("coverage").setup() - end, - }) - end, -}) diff --git a/nvim/.config/nvim/lua/custom/plugins.lua b/nvim/.config/nvim/lua/custom/plugins.lua index 0e8e3f2..d7c8537 100644 --- a/nvim/.config/nvim/lua/custom/plugins.lua +++ b/nvim/.config/nvim/lua/custom/plugins.lua @@ -24,7 +24,6 @@ local plugins = { dependencies = { "nvim-tree/nvim-web-devicons" }, }, "jose-elias-alvarez/null-ls.nvim", - "nvim-lua/lsp-status.nvim", { "lvimuser/lsp-inlayhints.nvim", config = true, @@ -37,6 +36,7 @@ local plugins = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", }, + ft = "go", build = function() if not require("nvim-treesitter.parsers").has_parser("go") then vim.cmd("TSInstall go") @@ -49,18 +49,6 @@ local plugins = { "windwp/nvim-autopairs", config = true, }, - -- Debugging - "mfussenegger/nvim-dap", - { - "leoluz/nvim-dap-go", - dependencies = { - "mfussenegger/nvim-dap", - }, - }, - { - "rcarriga/nvim-dap-ui", - dependencies = { "mfussenegger/nvim-dap" }, - }, -- Filetype plugins { "pearofducks/ansible-vim", @@ -68,6 +56,7 @@ local plugins = { }, { "saltstack/salt-vim", + ft = "sls", }, { "Saecki/crates.nvim", @@ -113,12 +102,6 @@ local plugins = { build = ":TSInstall query", }, "nvim-treesitter/nvim-treesitter-context", - { - "danymat/neogen", - dependencies = { "nvim-treesitter/nvim-treesitter" }, - version = "*", - }, - -- Snippets { "L3MON4D3/LuaSnip", @@ -132,19 +115,11 @@ local plugins = { -- Git "tpope/vim-fugitive", - -- { - -- "NeogitOrg/neogit", - -- dependencies = { - -- "nvim-lua/plenary.nvim", - -- }, - -- config = true, - -- }, { "lewis6991/gitsigns.nvim", event = "BufReadPre", config = true, }, - -- UI { "EdenEast/nightfox.nvim", @@ -162,6 +137,9 @@ local plugins = { }, { "ThePrimeagen/harpoon", + opts = { + tabline = true, + }, dependencies = { { "nvim-lua/plenary.nvim" }, }, @@ -213,12 +191,6 @@ local plugins = { { "ethanholz/nvim-lastplace", config = true, - dir = "/home/ethan/Documents/github/nvim-lastplace", - }, - { - "farmergreg/vim-lastplace", - lazy = false, - enabled = false, }, "mbbill/undotree", { @@ -230,15 +202,6 @@ local plugins = { dependencies = "nvim-lua/plenary.nvim", config = true, }, - { - "folke/todo-comments.nvim", - dependencies = "nvim-lua/plenary.nvim", - config = true, - }, - { - "ibhagwan/fzf-lua", - dependencies = "nvim-tree/nvim-web-devicons", - }, { "IndianBoy42/tree-sitter-just", config = true, @@ -253,11 +216,9 @@ local plugins = { "jackMort/ChatGPT.nvim", -- event = "VeryLazy", cmd = { "ChatGPT", "ChatGPTActAs", "ChatGPTEditWithInstructions", "ChatpGPTRun" }, - config = function() - require("chatgpt").setup({ - api_key_cmd = "op read op://personal-api-auth/ChatGPT/credential --no-newline", - }) - end, + opts = { + api_key_cmd = "op read op://personal-api-auth/ChatGPT/credential --no-newline", + }, dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim", @@ -272,13 +233,10 @@ local plugins = { "rcarriga/nvim-notify", }, }, - { - "ruifm/gitlinker.nvim", - dependencies = { - "nvim-lua/plenary.nvim", - }, - config = true, - }, + -- { + -- "sourcegraph/sg.nvim", + -- dependencies = { "nvim-lua/plenary.nvim" }, + -- }, } require("lazy").setup(plugins) diff --git a/nvim/.config/nvim/lua/custom/ui.lua b/nvim/.config/nvim/lua/custom/ui.lua index 50ec523..2358123 100644 --- a/nvim/.config/nvim/lua/custom/ui.lua +++ b/nvim/.config/nvim/lua/custom/ui.lua @@ -1,7 +1,12 @@ local ok, lualine = pcall(require, "lualine") if ok then local ho, harpoon_mark = pcall(require, "harpoon.mark") - local lualine_config = {} + local lualine_config = { + options = { + component_separators = { left = "|", right = "|" }, + section_separators = "", + }, + } if ho then local function hook() local harpoon_number = harpoon_mark.get_index_of(vim.fn.bufname()) diff --git a/nvim/.config/nvim/lua/mappings.lua b/nvim/.config/nvim/lua/mappings.lua index 82fb4f5..b01b5bd 100644 --- a/nvim/.config/nvim/lua/mappings.lua +++ b/nvim/.config/nvim/lua/mappings.lua @@ -1,8 +1,6 @@ -- Map leader config vim.g.mapleader = "," vim.cmd.timeoutlen = 0 --- local opts = { noremap = true, silent = true } --- local map = vim.keymap.set local wk = require("which-key") local v = { mode = "v", noremap = "true" } local t = { mode = "t", noremap = "true" } @@ -20,24 +18,69 @@ local function gitui_toggle() gitui:toggle() end -local function toggle_jq() - local bufnr = vim.api.nvim_get_current_buf() - local start_line, start_col, end_line, end_col = unpack(vim.fn.getpos("'<")) - local lines = vim.api.nvim_buf_get_lines(bufnr, start_line - 1, end_line, false) - -- io.popen("jq --argjson in '" .. selection .. "'", "w"):close() -end +-- Register LSP mappings +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(args) + wk.register({ + [""] = { + c = { + name = "LSP Code Changes", + a = { vim.lsp.buf.code_action, "Code Action" }, + R = { vim.lsp.buf.rename, "Rename" }, + }, + f = { + l = { require("telescope.builtin").lsp_document_symbols, "LSP Document Symbols" }, + }, + }, + ["g"] = { + d = { vim.lsp.buf.definition, "Goto Definition" }, + r = { require("telescope.builtin").lsp_references, "References" }, + i = { require("telescope.builtin").lsp_implementations, "Implementations" }, + }, + ["K"] = { vim.lsp.buf.hover, "Hover (LSP)" }, + }) + end, +}) -local function gitlinker_callback() - require("gitlinker").get_repo_url({ action_callback = require("gitlinker.actions").open_in_browser }) +-- Register Go mappings +vim.api.nvim_create_autocmd("FileType", { + pattern = { "*.go" }, + group = vim.api.nvim_create_augroup("UserGoConfig", {}), + callback = function(args) + wk.register({ + ["g"] = { + t = { + name = "Go Tags", + a = { + name = "Add Tags", + j = { ":GoTagAdd json ", "JSON" }, + y = { ":GoTagAdd yaml ", "YAML" }, + }, + r = { + name = "Remove Tags", + j = { ":GoTagRm json ", "JSON" }, + y = { ":GoTagRm yaml ", "YAML" }, + }, + f = { ":GoIfErr", "iferr" }, + }, + }, + }) + end, +}) + +local harpoon_table = {} +for i = 1, 9 do + harpoon_table["" .. tostring(i)] = { + function() + require("harpoon.ui").nav_file(i) + end, + "Harpoon " .. tostring(i), + } end -wk.register({ +wk.register(vim.tbl_extend("force", harpoon_table, { [""] = { - c = { - name = "LSP Code Changes", - a = { vim.lsp.buf.code_action, "Code Action" }, - R = { vim.lsp.buf.rename, "Rename" }, - }, f = { name = "Telescope", f = { require("telescope.builtin").find_files, "Find File" }, @@ -45,7 +88,6 @@ wk.register({ b = { require("telescope.builtin").buffers, "Buffer List" }, h = { require("telescope.builtin").help_tags, "Help Tags" }, c = { require("telescope.builtin").colorscheme, "Colorschme" }, - l = { require("telescope.builtin").lsp_document_symbols, "LSP Document Symbols" }, q = { require("telescope").extensions.harpoon.marks, "Harpoon Marks" }, s = { require("telescope.builtin").grep_string, "Grep String" }, }, @@ -59,9 +101,7 @@ wk.register({ }, b = { require("gitsigns").blame_line, "Blame Line" }, u = { gitui_toggle, "gitui toggle" }, - o = { gitlinker_callback, "gitinker" }, }, - j = { toggle_jq, "jq" }, m = { require("harpoon.mark").add_file, "Harpoon Mark" }, p = { '"+p', "Paste from clipboard" }, q = { require("harpoon.ui").toggle_quick_menu, "Harpoon Quick Menu" }, @@ -70,57 +110,15 @@ wk.register({ s = { require("telescope.builtin").spell_suggest, "Spell suggest" }, t = { "ToggleTerm direction=horizontal", "New Terminal" }, }, - ["1"] = { - function() - require("harpoon.ui").nav_file(1) - end, - "Harpoon 1", - }, - ["2"] = { - function() - require("harpoon.ui").nav_file(2) - end, - "Harpoon 2", - }, - ["3"] = { - function() - require("harpoon.ui").nav_file(3) - end, - "Harpoon 3", - }, - ["4"] = { - function() - require("harpoon.ui").nav_file(4) - end, - "Harpoon 4", - }, ["g"] = { - d = { vim.lsp.buf.definition, "Goto Definition" }, j = { vim.diagnostic.goto_next, "Go to Next Diagnostic" }, k = { vim.diagnostic.goto_prev, "Go to Prev Diagnostic" }, - r = { require("telescope.builtin").lsp_references, "References" }, - i = { require("telescope.builtin").lsp_implementations, "Implementations" }, - t = { - name = "Go Tags", - a = { - name = "Add Tags", - j = { ":GoTagAdd json ", "JSON" }, - y = { ":GoTagAdd yaml ", "YAML" }, - }, - r = { - name = "Remove Tags", - j = { ":GoTagRm json ", "JSON" }, - y = { ":GoTagRm yaml ", "YAML" }, - }, - f = { ":GoIfErr", "iferr" }, - }, }, ["space"] = { c = { vim.cmd.cclose, "Close qf list" }, }, - ["K"] = { vim.lsp.buf.hover, "Hover (LSP)" }, [""] = { require("telescope").extensions.file_browser.file_browser, "Open file picker" }, -}) +})) wk.register({ [""] = { y = { '"+y', "Yank to clipboard" }, @@ -129,6 +127,8 @@ wk.register({ s = { require("telescope.builtin").grep_string, "Grep String" }, }, }, + [""] = { ":m '>+gv=gv", "Move down selection" }, + [""] = { ":m '<-2gv=gv", "Move up selection" }, }, v) wk.register({ [""] = { "", "Exit terminal" }, diff --git a/nvim/.config/nvim/lua/snips.lua b/nvim/.config/nvim/lua/snips.lua index 264cbb3..9586b3b 100644 --- a/nvim/.config/nvim/lua/snips.lua +++ b/nvim/.config/nvim/lua/snips.lua @@ -1,5 +1,4 @@ local ls = require("luasnip") -require("neogen").setup({ snippet_engine = "luasnip" }) local helper = require("custom.helper") -- Snippet creator local s = ls.s diff --git a/nvim/.config/nvim/syntax/grlx.vim b/nvim/.config/nvim/syntax/grlx.vim new file mode 100644 index 0000000..ec90728 --- /dev/null +++ b/nvim/.config/nvim/syntax/grlx.vim @@ -0,0 +1,71 @@ +" Vim syntax file +" Language: Salt States template +" Maintainer: Seth House +" Last Change: 2012 June 20 +" +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'yaml' +endif + +let b:current_syntax = '' +unlet b:current_syntax +runtime! syntax/yaml.vim + +let b:current_syntax = '' +unlet b:current_syntax +syntax include @Yaml syntax/yaml.vim + +let b:current_syntax = '' +unlet b:current_syntax + +" Default to look for Jinja syntax file +let s:load_jinja_syntax = 0 +let s:search_for_jinja_syntax = 1 +if exists("g:sls_use_jinja_syntax") + let s:search_for_jinja_syntax = 0 + let s:load_jinja_syntax = g:sls_use_jinja_syntax +endif +if s:search_for_jinja_syntax + let s:jinja_path = findfile("syntax/jinja.vim", &rtp, 1) + if s:jinja_path != "" + let s:load_jinja_syntax = 1 + endif +endif + +if s:load_jinja_syntax + syntax include @Jinja syntax/jinja.vim + + syn cluster jinjaSLSBlocks add=jinjaTagBlock,jinjaVarBlock,jinjaComment + " Mostly copy/pasted from + " https://github.com/mitsuhiko/jinja2/blob/6b7c0c23/ext/Vim/jinja.vim + syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks + syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks + syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,@jinjaSLSBlocks +else + " Fall back to Django template syntax + syntax include @Jinja syntax/django.vim + + syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock + syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks + syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks + syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks +endif + +syn keyword salt_stateInclude include extend containedin=yamlBlockMappingKey +highlight link salt_stateInclude Include + +syn keyword salt_stateSpecialArgs name names check_cmd listen listen_in onchanges onchanges_in onfail onfail_in onlyif prereq prereq_in require require_in unless use use_in watch watch_in containedin=yamlBlockMappingKey +highlight link salt_stateSpecialArgs Special + +syn keyword salt_stateErrors requires requires_in watches watches_in includes extends containedin=yamlBlockMappingKey +highlight link salt_stateErrors Error + +let g:NERDCustomDelimiters = { + \ 'sls': { 'left': '#' }, +\ } + +let b:current_syntax = "grlx" diff --git a/nvim/.config/nvim/syntax/hurl.vim b/nvim/.config/nvim/syntax/hurl.vim new file mode 100644 index 0000000..662398c --- /dev/null +++ b/nvim/.config/nvim/syntax/hurl.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: Hurl (https://hurl.dev) + +if exists("b:current_syntax") + finish +endif + +syntax keyword method GET POST PUT DELETE CONNECT OPTIONS TRACE PATCH LINK UNLINK PURGE LOCK UNLOCK PROPFIND VIEW nextgroup=url skipwhite +syntax match url "\S\+" contained +syntax match version "HTTP" nextgroup=status skipwhite +syntax match version "HTTP/1\.0" nextgroup=status skipwhite +syntax match version "HTTP/1\.1" nextgroup=status skipwhite +syntax match version "HTTP/2" nextgroup=status skipwhite +syntax match version "HTTP/\*" nextgroup=status skipwhite +syntax match status "[0-9]\+" contained +syntax match comment "#.*$" +syntax match section "\[QueryStringParams\]" +syntax match section "\[FormParams\]" +syntax match section "\[MultipartFormData\]" +syntax match section "\[Cookies\]" +syntax match section "\[Captures\]" +syntax match section "\[Asserts\]" +syntax match section "\[Options\]" + +syntax keyword operator == != > >= < <= not +syntax keyword query status url header cookie body jsonpath xpath regex variable duration sha256 md5 bytes +syntax keyword predicate startsWith endsWith matches exists includes isInteger isFloat isBoolean isString isCollection +syntax match predicate "contains" +syntax keyword filter count regex urlEncode urlDecode htmlEscape htmlUnescape +syntax match escapeNumberSign "\\#" +syntax match escapeQuote "\\\"" +syntax region string start='"' end='"' contains=escapeQuote +syntax region string start='```' end='```' +syntax include @jsonSyntax syntax/json.vim +syntax region json start='{' end='}' contains=@jsonSyntax contained +syntax region template start='{{' end='}}' + + +highlight def link comment Comment +highlight def link method Statement +highlight def link url Underlined +highlight def link version Statement +highlight def link status Number +highlight def link section Statement +highlight def link operators Operator +highlight def link string String +highlight def link query Identifier +highlight def link filter Operator +highlight def link predicate Operator +highlight def link template Identifier +highlight def link escapeQuote SpecialChar +highlight def link escapeNumberSign SpecialChar + +let b:current_syntax = "hurl"