diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 64cf010..0a8d285 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,11 +1,11 @@ { "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, - "LuaSnip": { "branch": "master", "commit": "2b6860d15aaab01d3fb90859c0ba97f20ad7bc5f" }, + "LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" }, "NeoColumn.nvim": { "branch": "main", "commit": "db7695c7c70fcacd290712deef659bca464634ee" }, "arshamiser.nvim": { "branch": "dev", "commit": "53a73d60d426cb17860d4de169bce00ec3996c16" }, "arshlib.nvim": { "branch": "master", "commit": "111fd439268adda206a24b133096893869a50764" }, "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, - "barbar.nvim": { "branch": "master", "commit": "dd852401ee902745b67fc09a83d113b3fe82a96f" }, + "barbar.nvim": { "branch": "master", "commit": "79f7d16578a167bdf5355725551ef7d90613a601" }, "barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" }, "better-escape.vim": { "branch": "master", "commit": "6b16a45a839727977277f6ab11bded63e9ed86bb" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, @@ -22,48 +22,49 @@ "eslint.nvim": { "branch": "main", "commit": "158f2289907d377018752fcfe0d61b746dc11767" }, "feline.nvim": { "branch": "master", "commit": "3587f57480b88e8009df7b36dc84e9c7ff8f2c49" }, "fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" }, - "fzf-lua": { "branch": "main", "commit": "b92220ec838c195eb1c711daa69c905b1d7b8d8c" }, + "fzf-lua": { "branch": "main", "commit": "2e88254c2045e14c712ee09f1e461c6056a2b18c" }, + "gatekeeper.nvim": { "branch": "main", "commit": "fa33c5c2dc13f0c25384c3c9e6621c7426d80d25" }, "git-conflict.nvim": { "branch": "main", "commit": "bfd9fe6fba9a161fc199771d85996236a0d0faad" }, - "gitsigns.nvim": { "branch": "main", "commit": "75dc649106827183547d3bedd4602442340d2f7f" }, + "gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" }, "goto-preview": { "branch": "main", "commit": "3552fad4a0244ffd9ac86508e29ccc5166f19eb8" }, "heirline.nvim": { "branch": "master", "commit": "0d797435e54645a5f98bad7ad6046aac1ef95c1e" }, "hlargs.nvim": { "branch": "main", "commit": "30fe1b3de2b7614f061be4fc9c71984a2b87e50a" }, "hop.nvim": { "branch": "master", "commit": "036462a345792279c58f2f6445756efab706f04a" }, - "image.nvim": { "branch": "master", "commit": "645f997d171ea3d2505986a0519755600a26f02f" }, + "image.nvim": { "branch": "master", "commit": "a2a0849e0b3dbed90f9283603cedb683bda5d4d1" }, "indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" }, - "lazy.nvim": { "branch": "main", "commit": "0fc34a0cf5f5f6f998a0897119a7d846b47eaa9d" }, - "lazydev.nvim": { "branch": "main", "commit": "e2bc1915b1056c422256f58025ff9a1e0488018c" }, - "legendary.nvim": { "branch": "master", "commit": "ed71afddfbe70493cbbc6a51ec3433840913a3e2" }, + "lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" }, + "lazydev.nvim": { "branch": "main", "commit": "107231114623e2c4f90c626ec83b3120816b554e" }, + "legendary.nvim": { "branch": "master", "commit": "280d5ffa73927317ff44d781ac1becdec6415540" }, "listish.nvim": { "branch": "master", "commit": "3bc4bb02036f3802c6428c6232633d3192ac3604" }, "lsp_signature.nvim": { "branch": "master", "commit": "2ec2ba23882329c1302dff773b0d3620371d634f" }, "lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "marks.nvim": { "branch": "master", "commit": "74e8d01b2a2131b6e46354cffc553aa7f81bcf5b" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "8db12610bcb7ce67013cfdfaba4dd47a23c6e851" }, "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, "melange-nvim": { "branch": "master", "commit": "800490ee87ce3e1b4afe751ff81f2864cb01937d" }, "modicator.nvim": { "branch": "main", "commit": "780ea1e98c9bee8f3816685213b0aac42b34cd75" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" }, - "neogit": { "branch": "master", "commit": "3d58bf1d548f6fafdaab8ce4d75e25c438aee92c" }, - "nui.nvim": { "branch": "main", "commit": "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae" }, + "neogit": { "branch": "master", "commit": "ade9858cb6c434f3642f0b6296ac8d9d4ee51935" }, + "nui.nvim": { "branch": "main", "commit": "322978c734866996274467de084a95e4f9b5e0b1" }, "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, - "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, - "nvim-lspconfig": { "branch": "master", "commit": "74e14808cdb15e625449027019406e1ff6dda020" }, + "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-neoclip.lua": { "branch": "main", "commit": "709c97fabec9da7d04f7d2f5e207423af8c02871" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-numbertoggle": { "branch": "main", "commit": "c5827153f8a955886f1b38eaea6998c067d2992f" }, - "nvim-origami": { "branch": "main", "commit": "fd3036a2235d188dce43274fed8392795a0cd392" }, - "nvim-surround": { "branch": "main", "commit": "f1f0699a1d49f28e607ffa4361f1bbe757ac5ebc" }, - "nvim-treesitter": { "branch": "master", "commit": "5a8e9644c49f992f47bacd7900f4404df6fd9d38" }, + "nvim-origami": { "branch": "main", "commit": "c824f470e0c177707822c37b13087ab1dd7ddf91" }, + "nvim-surround": { "branch": "main", "commit": "6a8f0f1e7e6e8facc9ba7c8f217daf84122b7a9b" }, + "nvim-treesitter": { "branch": "master", "commit": "c1e1e24b6433d4539bad9f5daa207df39633071b" }, "nvim-treesitter-context": { "branch": "master", "commit": "5efba33af0f39942e426340da7bc15d7dec16474" }, "nvim-treesitter-endwise": { "branch": "master", "commit": "8b34305ffc28bd75a22f5a0a9928ee726a85c9a6" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "fd41b7ccc5490a3a99c734d1ee418b68d06c48a9" }, - "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" }, - "outline.nvim": { "branch": "main", "commit": "6a91568110684ac056e62e3b2d7409d7c8b2e5e1" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" }, + "nvim-web-devicons": { "branch": "master", "commit": "b4b302d6ae229f67df7a87ef69fa79473fe788a9" }, + "outline.nvim": { "branch": "main", "commit": "028e0bc8ad3d511e9fc1f0678594a608eb908ee5" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "prettier.nvim": { "branch": "main", "commit": "d98e732cb73690b07c00c839c924be1d1d9ac5c2" }, "search.nvim": { "branch": "main", "commit": "7b8f2315d031be73e14bc2d82386dfac15952614" }, @@ -76,9 +77,9 @@ "telescope-git-file-history.nvim": { "branch": "master", "commit": "f94fab1d5a51fa28dd95b1a6bd377505dc1a8e82" }, "telescope-undo.nvim": { "branch": "main", "commit": "95b61c01ea3a4c9e8747731148e905bbcf0ccaee" }, "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, - "tiny-devicons-auto-colors.nvim": { "branch": "main", "commit": "f57c4fa6a22a1c940fa63750c107217f6d88a7dd" }, + "tiny-devicons-auto-colors.nvim": { "branch": "main", "commit": "13f9391c2bf43df5224924667bdb66cedea37484" }, "todo-comments.nvim": { "branch": "main", "commit": "70a93ce66083699571adc361166504b03cc39c2b" }, - "trouble.nvim": { "branch": "main", "commit": "915179759c9459b69faae90a38da6fc1ca6b90d7" }, + "trouble.nvim": { "branch": "main", "commit": "806c50491078b66daf13c408042f2e74da46d0ff" }, "twilight.nvim": { "branch": "main", "commit": "8b7b50c0cb2dc781b2f4262a5ddd57571556d1e4" }, "vim-cursorword": { "branch": "master", "commit": "34852083276c1fd9ff4cccaf052111e7d5a2472e" }, "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, @@ -87,5 +88,5 @@ "vim-visual-multi": { "branch": "master", "commit": "b84a6d42c1c10678928b0bf8327f378c8bc8af5a" }, "vim-vsnip": { "branch": "master", "commit": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9" }, "vim-wakatime": { "branch": "master", "commit": "3cb40867cb5a3120f9bef76eff88edc7f1dc1a23" }, - "which-key.nvim": { "branch": "main", "commit": "4b7167f8fb2dba3d01980735e3509e172c024c29" } + "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } } \ No newline at end of file diff --git a/nvim/lua/config.lua b/nvim/lua/config.lua index af597b3..42be794 100644 --- a/nvim/lua/config.lua +++ b/nvim/lua/config.lua @@ -411,6 +411,9 @@ local plugins = { { 'lewis6991/spaceless.nvim', -- Automatically remove trailing space }, + { + 'augustocdias/gatekeeper.nvim', -- Set buffer to RO when editing external files + }, } require("lazy").setup(plugins, {}) @@ -567,6 +570,7 @@ lspconfig.rust_analyzer.setup { ['rust-analyzer'] = {}, }, } +lspconfig.hls.setup {} lspconfig.lua_ls.setup { capabilities = capabilities } @@ -641,11 +645,10 @@ vim.keymap.set('v', "", "dpV`]") vim.keymap.set('v', "", "dkPV`]") vim.keymap.set('n', '', 'Legendary', {noremap=true}) vim.keymap.set({'n', 'v', 'x'}, 'h', 'HopWord') -vim.keymap.set('n', 'dd', 'TroubleToggle document_diagnostics'); -vim.keymap.set('n', 'dw', 'TroubleToggle workspace_diagnostics'); -vim.keymap.set('n', 'dq', 'TroubleToggle quickfix'); -vim.keymap.set('n', 'w', 'TroubleToggle lsp_definitions'); -vim.keymap.set('n', 'r', 'TroubleToggle lsp_references'); +vim.keymap.set('n', 'dd', 'Trouble diagnostics toggle focus=true filter.buf=0'); +vim.keymap.set('n', 'dw', 'Trouble diagnostics toggle focus=true'); +vim.keymap.set('n', 'dq', 'Trouble qflist toggle focus=true'); +vim.keymap.set('n', 'w', 'Trouble lsp toggle focus=true'); vim.keymap.set('n', '', 'BufferPick', {noremap=true}); vim.keymap.set('n', '', 'Neogit kind=split_above', {noremap=true}); vim.keymap.set({'v', 'x'}, 'cc', 'CodeSnap', {noremap=true}); @@ -656,10 +659,11 @@ vim.keymap.set('n', '', 'd0il', {noremap=true}) vim.keymap.set('i', '', '', {noremap=true}) vim.keymap.set('n', '', 'Telescope help_tags', {noremap=true}) vim.keymap.set('n', 'p', 'Telescope neoclip a extra=plus,unnamedplus', {noremap=true}) +vim.keymap.set('n', 'k', 'SearchInCurrentFile') -- vim.keymap.set('n', ) vim.api.nvim_create_user_command('SearchInCurrentFile', function() - vim.ui.input({ prompt = 'Grep > '}, function(input) + vim.ui.input({ prompt = 'Grep ...'}, function(input) if input ~= nil then vim.cmd('vimgrep /' .. input .. '/j %') vim.cmd('horizontal copen') @@ -988,3 +992,12 @@ vim.api.nvim_create_autocmd("LspAttach", { }) require('neoclip').setup {} + +require('gatekeeper').setup({ +-- default values + exclude = { + vim.fn.expand('~/.config/nvim'), + }, + exclude_regex = {}, + debug = false, -- will call vim.notify with info when it is being evaluated +}) diff --git a/nvim/lua/snippets/hash-vec.lua b/nvim/lua/snippets/hash-vec.lua index f9e295a..f761435 100644 --- a/nvim/lua/snippets/hash-vec.lua +++ b/nvim/lua/snippets/hash-vec.lua @@ -69,4 +69,25 @@ struct hash_vec { } }; +struct range_hash { + vector, MLL>> hp; + template + range_hash(const T& vec) { + hp.emplace_back(); + hash_vec hs(vec.size()); + for (auto&& x : vec) { + hs.push_back(x); + hp.emplace_back(hs.hash()); + } + } + + /// query hash of subarray [l, r]. Index starts from 0. + pair, MLL> range_query(size_t l, size_t r) { + return { + (hp[r + 1].first - hp[l].first * power1[r + 1 - l]), + (hp[r + 1].second - hp[l].second * power2[r + 1 - l]), + }; + } +}; + ]]