From 38b660d7844aecf76fee45af944fd50ac5774acc Mon Sep 17 00:00:00 2001 From: Nicholas Novak Date: Mon, 31 Aug 2026 14:03:25 -0700 Subject: [PATCH] Add gitlinker and oxlint to my config + shackle grammars for minizinc --- nvim/.config/nvim/init.lua | 53 +++++++++++++++++++++++++++++++- nvim/.config/nvim/lazy-lock.json | 31 ++++++++++--------- 2 files changed, 68 insertions(+), 16 deletions(-) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 5e8b587..1723e52 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -41,6 +41,17 @@ require("lazy").setup({ -- "preservim/nerdtree", + -- So that I can copy links to github + { + "linrongbin16/gitlinker.nvim", + cmd = "GitLink", + opts = {}, + keys = { + { "gy", "GitLink", mode = { "n", "v" }, desc = "Yank git link" }, + { "gY", "GitLink!", mode = { "n", "v" }, desc = "Open git link" }, + }, + }, + { -- Adds git releated signs to the gutter, as well as utilities for managing changes "lewis6991/gitsigns.nvim", @@ -336,7 +347,24 @@ require("lazy").setup({ -- tsgo = {}, -- eslint = {}, - biome = {}, + -- biome = {}, + + oxlint = { + root_dir = function(bufnr, on_dir) + -- prefer the top-level oxlint config if it exists (monorepo support) + local git = vim.fs.root(bufnr, ".git") + local markers = { ".oxlintrc.json", ".oxlintrc.jsonc", "oxlint.config.ts" } + local root = git and vim.fs.root(git, markers) or vim.fs.root(bufnr, markers) + if root then + on_dir(root) + end + end, + settings = { + fixKind = "all", + }, + }, + --- disable the oxfmt lsp server since we use conform for formatting + oxfmt = { enabled = false }, lua_ls = { -- cmd = { ... }, @@ -753,6 +781,28 @@ require("lazy").setup({ branch = "main", -- [[ Configure Treesitter ]] See `:help nvim-treesitter-intro` config = function() + -- Register the MiniZinc parser from the local shackle clone. + -- Must use a User TSUpdate autocmd because nvim-treesitter clears and + -- reloads the parsers module (firing TSUpdate) on every install call. + vim.api.nvim_create_autocmd("User", { + pattern = "TSUpdate", + callback = function() + require("nvim-treesitter.parsers").minizinc = { + install_info = { + path = "/home/pylon/shackle/parsers/tree-sitter-minizinc", + queries = "queries", + }, + } + end, + }) + + vim.filetype.add({ + extension = { + mzn = "minizinc", + fzn = "minizinc", + }, + }) + -- ensure basic parser are installed local parsers = { "bash", @@ -763,6 +813,7 @@ require("lazy").setup({ "luadoc", "markdown", "markdown_inline", + "minizinc", "query", "vim", "vimdoc", diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index ce24f9a..8626205 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -2,29 +2,30 @@ "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "642b0c595e11608b4c18219e93b88d7637af27bc" }, "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, - "conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" }, - "fidget.nvim": { "branch": "main", "commit": "889e2e96edef4e144965571d46f7a77bcc4d0ddf" }, - "gitsigns.nvim": { "branch": "main", "commit": "6d808f99bd63303646794406e270bd553ad7792e" }, - "gruvbox": { "branch": "master", "commit": "697c00291db857ca0af00ec154e5bd514a79191f" }, + "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" }, + "fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" }, + "gitlinker.nvim": { "branch": "master", "commit": "a1b74070bbd5e50128190c85b09f1431ea5fbd83" }, + "gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" }, + "gruvbox": { "branch": "master", "commit": "5d15b2765f59754d7ac263c88a0f6e3e58124951" }, "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, - "lualine.nvim": { "branch": "master", "commit": "a905eeebc4e63fdc48b5135d3bf8aea5618fb21c" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "0a3b42c3e503df87aef6d6513e13148381495c3a" }, + "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "7adc933dabcc7c86ae6b07aff7ee68eac398491f" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" }, - "mason.nvim": { "branch": "main", "commit": "12ddd182d9efbdc848b540f16484a583d52da0fb" }, + "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, "nerdtree": { "branch": "master", "commit": "690d061b591525890f1471c6675bcb5bdc8cdff9" }, - "nvim-lspconfig": { "branch": "master", "commit": "e146efacbafed3789ac568abcc5a981c5decaa58" }, - "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" }, - "nvim-web-devicons": { "branch": "master", "commit": "c72328a5494b4502947a022fe69c0c47e53b6aa6" }, + "nvim-lspconfig": { "branch": "master", "commit": "d592c1e6ad9a0a01b3d5ed3f0345d68407167181" }, + "nvim-treesitter": { "branch": "main", "commit": "bd41519ff7901da11ba6e1c8f419f17f2d94305a" }, + "nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "028d9a0695a0cc4cfa893889f8c408ed7ccc8adc" }, + "telescope.nvim": { "branch": "master", "commit": "427b576c16792edad01a92b89721d923c19ad60f" }, "typescript-tools.nvim": { "branch": "master", "commit": "c2f5910074103705661e9651aa841e0d7eea9932" }, - "ultisnips": { "branch": "master", "commit": "10fc6cb2a48aa24d72894f71fceaa43a0432f287" }, + "ultisnips": { "branch": "master", "commit": "62aca2a735b76d24a8fc7862f902330ac688849b" }, "vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" }, - "vim-go": { "branch": "master", "commit": "f4b4ba17035aebcd222df90375c1cbb1dc4d8c5b" }, + "vim-go": { "branch": "master", "commit": "d69962d20a2a60e4bdc92a2281e5f0aaaa109635" }, "vim-rhubarb": { "branch": "master", "commit": "5496d7c94581c4c9ad7430357449bb57fc59f501" }, "vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }