diff options
Diffstat (limited to 'vim/.config/nvim/init.lua')
| -rw-r--r-- | vim/.config/nvim/init.lua | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/vim/.config/nvim/init.lua b/vim/.config/nvim/init.lua new file mode 100644 index 0000000..3fa4cb9 --- /dev/null +++ b/vim/.config/nvim/init.lua @@ -0,0 +1,159 @@ +-- +-- nvim init script by grace +-- + +-- Get hostname +local handle = io.popen("hostname") +local hostname = handle:read("*a") or "" +handle:close() +hostname = hostname:gsub("%s+", "") +vim.g.hostname = hostname +if string.match(hostname, "cs.purdue.edu") then + vim.g.is_purdue = true +else + vim.g.is_purdue = false +end + +-- add required things to path +if vim.g.is_purdue then + vim.env.PATH = vim.env.PATH .. ':' .. os.getenv("HOME") .. '/clangd/bin:/u/riker/u98/cs240/bin' +end + +require("plugins") +require("native-lsp") +require("diagnostics") +require("remap") + + +if vim.g.is_purdue then + require("westwood-lint") +end + +require("standard-lint") + +vim.cmd("source ~/.vim/settings.vim") + +vim.api.nvim_create_autocmd("BufWritePre", { + pattern = "*", + callback = function() + local save = vim.fn.winsaveview() + vim.cmd([[%s/\s\+$//e]]) + vim.fn.winrestview(save) + end, +}) + + +-- File IO can be slow and this might help idk +if vim.g.is_purdue then + vim.cmd("set noundofile") -- i forgor how to do this in lua so i didnt +end + +-- +-- vim.opt.spell = true +-- vim.opt.spelllang = "en_us" +-- + +vim.api.nvim_create_autocmd("FileType", { + pattern = "markdown", + callback = function() + vim.opt_local.textwidth = 80 + vim.opt_local.formatoptions = "atcqjnl" + vim.opt_local.wrap = true + vim.opt_local.linebreak = true + + -- Show column guide + vim.opt_local.colorcolumn = "80" + end, +}) + +-- Typst configuration +vim.api.nvim_create_autocmd("FileType", { + pattern = "typst", + callback = function() + -- Line wrapping settings + vim.opt_local.textwidth = 80 + vim.opt_local.formatoptions = "tcqjnl" + vim.opt_local.wrap = true + vim.opt_local.linebreak = true + -- Show column guide + vim.opt_local.colorcolumn = "80" + + -- Toggle 'a' in formatoptions + vim.keymap.set("n", "<leader>a", function() + local fo = vim.opt_local.formatoptions:get() + if fo.a then + vim.opt_local.formatoptions:remove("a") + print("Auto-formatting disabled") + else + vim.opt_local.formatoptions:append("a") + print("Auto-formatting enabled") + end + end, { buffer = true, desc = "Toggle auto-formatting" }) + end, +}) +-- Setup formatting on LSP attach +-- vim.api.nvim_create_autocmd("LspAttach", { +-- callback = function(args) +-- local client = vim.lsp.get_client_by_id(args.data.client_id) +-- +-- if client and client.supports_method("textDocument/formatting") then +-- vim.api.nvim_create_autocmd({ "TextChanged", "TextChangedI" }, { +-- buffer = args.buf, +-- callback = function() +-- vim.lsp.buf.format({ +-- async = true, +-- bufnr = args.buf, +-- }) +-- end, +-- }) +-- end +-- end, +-- }) + +vim.api.nvim_create_autocmd("TermOpen", { + pattern = "*", + callback = function() + vim.opt_local.spell = false + end, +}) + +vim.o.clipboard = "unnamedplus" + +-- vim.g.clipboard = { +-- name = "OSC 52", +-- copy = { +-- ["+"] = require("vim.ui.clipboard.osc52").copy("+"), +-- ["*"] = require("vim.ui.clipboard.osc52").copy("*"), +-- }, +-- paste = { +-- ["+"] = require("vim.ui.clipboard.osc52").paste("+"), +-- ["*"] = require("vim.ui.clipboard.osc52").paste("*"), +-- }, +-- } +vim.g.clipboard = "osc52" +vim.keymap.set("n", "p", '"+p') +vim.keymap.set("n", "P", '"+P') + + +-- stupid hacky workaround to make it so i can paste from tmux with OSC52 +-- https://github.com/neovim/neovim/discussions/29350#discussioncomment-10299517 +-- tracking issue about tmux behavior: https://github.com/tmux/tmux/issues/4275 +if vim.env.TMUX ~= nil then + local copy = { 'tmux', 'load-buffer', '-w', '-' } + local paste = { 'bash', '-c', 'tmux refresh-client -l && sleep 0.05 && tmux save-buffer -' } + vim.g.clipboard = { + name = 'tmux', + copy = { + ['+'] = copy, + ['*'] = copy, + }, + paste = { + ['+'] = paste, + ['*'] = paste, + }, + cache_enabled = 0, + } +end + +-- https://simondalvai.org/blog/godot-neovim/ +require("godot") |
