From bdf3cdecda3d112b14e3ceb50ce4f88862813270 Mon Sep 17 00:00:00 2001 From: gyoder <70408179+gyoder@users.noreply.github.com> Date: Sat, 14 Jun 2025 11:41:23 +0200 Subject: added existing nvim config --- vim/.config/nvim/lua/plugins/blink_config.lua | 11 ++ vim/.config/nvim/lua/plugins/init.lua | 157 ++++++++++++++++++++++++ vim/.config/nvim/lua/plugins/lualine-config.lua | 4 + vim/.config/nvim/lua/plugins/marks-config.lua | 36 ++++++ vim/.config/nvim/lua/plugins/rust-config.lua | 30 +++++ vim/.config/nvim/lua/plugins/ts.lua | 41 +++++++ 6 files changed, 279 insertions(+) create mode 100644 vim/.config/nvim/lua/plugins/blink_config.lua create mode 100644 vim/.config/nvim/lua/plugins/init.lua create mode 100644 vim/.config/nvim/lua/plugins/lualine-config.lua create mode 100644 vim/.config/nvim/lua/plugins/marks-config.lua create mode 100644 vim/.config/nvim/lua/plugins/rust-config.lua create mode 100644 vim/.config/nvim/lua/plugins/ts.lua (limited to 'vim/.config/nvim/lua/plugins') diff --git a/vim/.config/nvim/lua/plugins/blink_config.lua b/vim/.config/nvim/lua/plugins/blink_config.lua new file mode 100644 index 0000000..3c8f4cb --- /dev/null +++ b/vim/.config/nvim/lua/plugins/blink_config.lua @@ -0,0 +1,11 @@ +require("blink.cmp").setup({ + fuzzy = { + implementation = "prefer_rust", + prebuilt_binaries = { + download = true, + force_version = 'v1.2.0', + }, + }, + keymap = { preset = "enter" }, +}) + diff --git a/vim/.config/nvim/lua/plugins/init.lua b/vim/.config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..c6a418d --- /dev/null +++ b/vim/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,157 @@ +vim.cmd [[packadd packer.nvim]] + +local ensure_packer = function() + local fn = vim.fn + local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' + if fn.empty(fn.glob(install_path)) > 0 then + fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) + vim.cmd [[packadd packer.nvim]] + return true + end + return false +end + +local packer_bootstrap = ensure_packer() + +return require('packer').startup(function(use) + use 'wbthomason/packer.nvim' + + + + use { + 'maxmx03/solarized.nvim', + config = function() + vim.o.background = 'dark' + ---@type solarized + local solarized = require('solarized') + vim.o.termguicolors = true + vim.o.background = 'dark' + solarized.setup({}) + vim.cmd.colorscheme 'solarized' + end + } + use { + 'nvim-telescope/telescope.nvim', tag = '0.1.x', + requires = { {'nvim-lua/plenary.nvim'} } + } + + use { + 'nvim-treesitter/nvim-treesitter', + config = function() require("plugins/ts") end + } + + use 'mbbill/undotree' + use 'mfussenegger/nvim-lint' + use { + 'nvim-lualine/lualine.nvim', + requires = { 'nvim-tree/nvim-web-devicons', opt = true }, + config = function() require('plugins/lualine-config') end + } + use { + 'm4xshen/autoclose.nvim', + config = function() require("autoclose").setup() end + } + + use { + 'CRAG666/betterTerm.nvim', + config = function() require('betterTerm').setup() end + } + + use { + 'anurag3301/nvim-platformio.lua', + requires = { + {'akinsho/nvim-toggleterm.lua'}, + {'nvim-telescope/telescope.nvim'}, + {'nvim-lua/plenary.nvim'}, + }, + config = function() + if not vim.g.is_purdue then + require('platformio').setup({ + lsp = "clangd" --default: ccls, other option: clangd + -- If you pick clangd, it also creates compile_commands.json + }) + end + end + } + + use { + "chentoast/marks.nvim", + config = function() require('plugins/marks-config') end + } + + use { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + requires = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended + "MunifTanjim/nui.nvim", + -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information + } + } + + + use { "nvim-tree/nvim-web-devicons" } + use { "MunifTanjim/nui.nvim" } + + use { 'rafamadriz/friendly-snippets' } + use { + 'saghen/blink.cmp', + run = 'cargo build --release', + config = function() + require("plugins/blink_config") + end + } + + use { + 'f-person/git-blame.nvim', + config = function () + require("gitblame").setup { + gitblame_delay = 1 + } + end + } + + use { + 'mrcjkb/rustaceanvim', + config = function() require('plugins/rust-config') end + } + use { + 'pwntester/octo.nvim', + requires = { + 'nvim-lua/plenary.nvim', + 'nvim-telescope/telescope.nvim', + -- OR 'ibhagwan/fzf-lua', + -- OR 'folke/snacks.nvim', + 'nvim-tree/nvim-web-devicons', + }, + config = function () + require"octo".setup() + end + } + + use { + "NeogitOrg/neogit", + config = function () + require("neogit").setup {} + end + } + + use "mfussenegger/nvim-dap" + use 'theHamsta/nvim-dap-virtual-text' + use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} } + + use 'wakatime/vim-wakatime' + + use { "geigerzaehler/tree-sitter-jinja2" } + + use "echasnovski/mini.base16" + + + ------------------------ + + if packer_bootstrap then + require('packer').sync() + end +end) + diff --git a/vim/.config/nvim/lua/plugins/lualine-config.lua b/vim/.config/nvim/lua/plugins/lualine-config.lua new file mode 100644 index 0000000..f8a6442 --- /dev/null +++ b/vim/.config/nvim/lua/plugins/lualine-config.lua @@ -0,0 +1,4 @@ +require('lualine').setup { + options = { theme = "solarized" } +} + diff --git a/vim/.config/nvim/lua/plugins/marks-config.lua b/vim/.config/nvim/lua/plugins/marks-config.lua new file mode 100644 index 0000000..d1b4c82 --- /dev/null +++ b/vim/.config/nvim/lua/plugins/marks-config.lua @@ -0,0 +1,36 @@ +require'marks'.setup { + -- whether to map keybinds or not. default true + default_mappings = true, + -- which builtin marks to show. default {} + builtin_marks = { ".", "<", ">", "^" }, + -- whether movements cycle back to the beginning/end of buffer. default true + cyclic = true, + -- whether the shada file is updated after modifying uppercase marks. default false + force_write_shada = false, + -- how often (in ms) to redraw signs/recompute mark positions. + -- higher values will have better performance but may cause visual lag, + -- while lower values may cause performance penalties. default 150. + refresh_interval = 250, + -- sign priorities for each type of mark - builtin marks, uppercase marks, lowercase + -- marks, and bookmarks. + -- can be either a table with all/none of the keys, or a single number, in which case + -- the priority applies to all marks. + -- default 10. + sign_priority = { lower=10, upper=15, builtin=8, bookmark=20 }, + -- disables mark tracking for specific filetypes. default {} + excluded_filetypes = {}, + -- disables mark tracking for specific buftypes. default {} + excluded_buftypes = {}, + -- marks.nvim allows you to configure up to 10 bookmark groups, each with its own + -- sign/virttext. Bookmarks can be used to group together positions and quickly move + -- across multiple buffers. default sign is '!@#$%^&*()' (from 0 to 9), and + -- default virt_text is "". + bookmark_0 = { + sign = "⚑", + virt_text = "hello world", + -- explicitly prompt for a virtual line annotation when setting a bookmark from this group. + -- defaults to false. + annotate = false, + }, + mappings = {} +} diff --git a/vim/.config/nvim/lua/plugins/rust-config.lua b/vim/.config/nvim/lua/plugins/rust-config.lua new file mode 100644 index 0000000..e83007c --- /dev/null +++ b/vim/.config/nvim/lua/plugins/rust-config.lua @@ -0,0 +1,30 @@ +local bufnr = vim.api.nvim_get_current_buf() +vim.keymap.set( + "n", + "a", + function() + vim.cmd.RustLsp('codeAction') -- supports rust-analyzer's grouping + -- or vim.lsp.buf.codeAction() if you don't want grouping. + end, + { silent = true, buffer = bufnr } +) +vim.keymap.set( + "n", + "K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions + function() + vim.cmd.RustLsp({'hover', 'actions'}) + end, + { silent = true, buffer = bufnr } +) + +vim.g.rustaceanvim = { + server = { + settings = { + ["rust-analyzer"] = { + checkOnSave = { + command = "clippy", + }, + }, + }, + }, +} diff --git a/vim/.config/nvim/lua/plugins/ts.lua b/vim/.config/nvim/lua/plugins/ts.lua new file mode 100644 index 0000000..5f1b8b0 --- /dev/null +++ b/vim/.config/nvim/lua/plugins/ts.lua @@ -0,0 +1,41 @@ +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" (the listed parsers MUST always be installed) + ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally + auto_install = true, + + -- List of parsers to ignore installing (or "all") + -- ignore_install = { "javascript" }, + + ---- If you need to change the installation directory of the parsers (see -> Advanced Setup) + -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! + + highlight = { + enable = true, + + -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to + -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is + -- the name of the parser) + -- list of language that will be disabled + -- disable = { "c", "rust" }, + -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files + disable = function(lang, buf) + local max_filesize = 100 * 1024 -- 100 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > max_filesize then + return true + end + end, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} -- cgit v1.3.1