From 74c6a66731a96e2dc863b77bcef9d4233be39509 Mon Sep 17 00:00:00 2001 From: Simon O'Shea Date: Tue, 6 Oct 2026 14:23:53 -0400 Subject: windows/work nvim config added --- nvim/windows-init.lua | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 nvim/windows-init.lua diff --git a/nvim/windows-init.lua b/nvim/windows-init.lua new file mode 100644 index 0000000..6dfa6d6 --- /dev/null +++ b/nvim/windows-init.lua @@ -0,0 +1,107 @@ +-- WINDOWS SHELL COMPATIBILITY (needed for sf.nvim command runner) +if vim.fn.has("win32") == 1 then + vim.opt.shell = "cmd.exe" + vim.opt.shellcmdflag = "/s /c" + vim.opt.shellquote = "" + vim.opt.shellxquote = '"' -- Crucial for handling quotes and && properly in cmd +end + +-- plugins -- +vim.pack.add({ + 'https://github.com/stevearc/oil.nvim', + 'https://github.com/nvim-mini/mini.move', + 'https://github.com/nvim-mini/mini.icons', + 'https://github.com/ibhagwan/fzf-lua', + 'https://github.com/xixiaofinland/sf.nvim', + 'https://github.com/nvim-treesitter/nvim-treesitter', +}) + +require("oil").setup() +require("mini.move").setup() +require("mini.icons").setup() +require("fzf-lua").setup() +require("nvim-treesitter").setup() +require("sf").setup({ + types_to_retrieve = { + "ApexClass", + "ApexTrigger", + "CustomPermission", + "CustomApplication", + "CustomMetadata", + "CustomSetting", + "CustomTab", + "CustomObject", + "Flow", + "FlowDefinition", + "Layout", + "LightningComponentBundle", + "PermissionSetGroup", + "PermissionSet", + "Profile", + "StaticResource", + "SharingRule" + }, +}) + +vim.loader.enable() -- speed up launch! + + +-- treesitter - dynamically determine language +vim.api.nvim_create_autocmd("FileType", { + group = vim.api.nvim_create_augroup("tree-sitter-enable", { clear = true }), + callback = function(args) + local lang = vim.treesitter.language.get_lang(args.match) + if not lang then + return + end + if vim.treesitter.query.get(lang, "highlights") then + vim.treesitter.start(args.buf) + end + if vim.treesitter.query.get(lang, "indents") then + vim.opt_local.indentexpr = 'v:lua.require("nvim-treesitter").indentexpr()' + end + + -- from treesitter docs for folding + vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()' + vim.opt.foldmethod = 'expr' + end, +}) + + +-- normal mode +vim.api.nvim_set_keymap('i','jk','',{noremap=true,silent=true}) +vim.api.nvim_set_keymap('i','kj','',{noremap=true,silent=true}) + +-- ui +vim.opt.foldlevelstart = 99 +vim.o.scrolloff = 10 +vim.o.number = true +vim.o.relativenumber = true +vim.o.showmode = false +vim.o.signcolumn = "yes" +vim.o.pumheight = 15 +vim.o.shortmess = "CFOSWaco" + +-- completion +vim.o.autocomplete = true +vim.o.completeopt = "menuone,noinsert,popup,fuzzy,nearest" +vim.o.pumheight = 15 +vim.o.pummaxwidth = 40 + +-- search +vim.o.imsearch = 0 +vim.o.hlsearch = true +vim.o.incsearch = true +vim.o.ignorecase = true +vim.o.smartcase = true + +local map = vim.keymap.set + +-- KEYMAPS - for plugins +map("n", "-", "Oil", { desc = "Open parent directory" }) + +-- KEYMAPS - movement +map("n", "", "zz") +map("n", "", "zz") +map("n", "", "zz") +map("n", "", "zz") -- cgit v1.3.1-4-g156e