4U7EI3UFCICTPJR67H73GZWH25W42MNABJSKVFW6ARLFR5XJTCQQC SADFTQUDBFM4AIQSWTJTU63UUBUOXWPRLIT46MG532JZHA3LZ5MQC POB6RZFEMX7C7HYYNEBM425NQDNAL4CDLWH4EUES2WLZTJY555LAC KRTIBTY7O2CRBMST4CUPSXDUWI2GL65JWH36MSO6HUKSWVYWT4IQC P5VKMF56NCALVNHIH2UMG5U73XGGS3RENTRD2QZHK6LLOOSGT6AQC XQD63RAJU5FUZXMP2WXIHHNFFSEP7TNHYZFO3DCPPYFBHWLXW6DAC V25EMEXKG34L4VU2O5RGZ4OASPXX3MG6E7VAH42WXY7Y4WFJ4GLAC ZIRKOYP2ZVP3QUD72GGWFTM5KS45QYORLD56Q63EWTSNYGI6DMAQC 3BVKY2TFXIDKNDTN4BYY26WEYM3GEVKBQCEZAW4ADECJA25NAKMAC KIYATYOLHDMF6YCCP4SXKCJ5YXIJQFXZJD7OAZA37WAU6YGGMM3AC CBL5HZKPBD63W2IZ76TTD2W2GXMOEKAIQFLCWNB2EUO6V3PX2IOAC PS5PXTHFTQDM4WVNMXEJUPLQVGQWULYJ5IVAXZ7LJX4ZUSICUKDAC 4LSO4STLQJZ7TXVI3BYUXAG7UV3LAICU65B52RUKABD3KHQ2G7GAC 3BK5VANZFIJ3MOFXL66FHO372G3XSVJP6YJFXW24KY4QL62MHLTAC DEVZGQYDMMD2ZMJKQX5M72L4LTYAZEIVEDXSYNIMHMRBT5CJIERAC ULKBUZEBFCZOZ5BTUW6262LG5DK6BUOVN6STTKCFLZFG3EE6PFPAC QWJ5FBQ7ZL75GTXLYEVPTLK7AEMBMBEYE7536WFLGINTG332LAIAC UNMO22GQRCYHMIXPFTZTQVVPCOFSBVU2YV5CKLO72ZRDZ2AJ46WQC YSKR5RAG56GA3T554X2S5QNFQSHAYFXU3QT5QMU5A5OUGLPAMJ2AC HWLVSY6UL5VDMK7NLQB2LJYEHV6KNKP4QIUWJKYTKKYW3L5ZLQBAC AD3GGMJYYDKYXMTBCQK7IHKTVSM75XFTBHZSMFXFAQYWSPRHSCBAC JTTWOADMNTGEUL5TBJSC5PEXSW6GMBZLY6TWLN2DHV26REVMZOZAC XCR34YPGC3GY7CKQTQX4WUEKLRLAZKNSUPWOKGD5HUHK2RN7RKGAC 7YSLKSMDJDEUEBZWYJG5N2TCLIWW5CUWRYFXCUACBLGLWKW4OY2QC ODCMJEPVOBW3GNAN5F5TVT7WN6JZGGAF6YBGJZMSZX7ZLUFEHABQC source "$HOME/.cargo/env"
export DOTNET_ROOT=/snap/dotnet-sdk/current
[diff]guitool = kdiff3[difftool "kdiff3"]trustExitCode = false
" First, setup pluginscall plug#begin('~/.local/share/nvim/plugged')" UI ElementsPlug 'junegunn/fzf', { 'do': { -> fzf#install() } }Plug 'junegunn/fzf.vim'Plug 'nvim-lua/telescope.nvim'Plug 'nvim-lua/plenary.nvim' " dependency for telescopePlug 'nvim-lua/popup.nvim' " dependency for telescopePlug 'airblade/vim-gitgutter'Plug 'hoob3rt/lualine.nvim'Plug 'romgrk/barbar.nvim'Plug 'lambdalisue/fern.vim'Plug 'voldikss/vim-floaterm'Plug 'mfussenegger/nvim-dap'" GitPlug 'tpope/vim-fugitive'Plug 'rbong/vim-flog'" Editing functionalityPlug 'tomtom/tcomment_vim'Plug 'tpope/vim-obsession'Plug 'tpope/vim-surround'Plug 'tpope/vim-repeat'" LSP supportPlug 'neovim/nvim-lspconfig'Plug 'nvim-lua/lsp_extensions.nvim'Plug 'nvim-lua/completion-nvim'Plug 'kosayoda/nvim-lightbulb'" Aesthetic pluginsPlug 'joshdick/onedark.vim'" Plug 'sheerun/vim-polyglot'Plug 'arm9/arm-syntax-vim'Plug 'lervag/vimtex'Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}Plug 'nvim-treesitter/playground'call plug#end()
lua require 'plugins'lua require 'options'lua require 'lsp'lua require 'mappings'lua require 'treesitter'lua require 'statusline'lua require 'dap-config'
" use double-slash comments in c filescall tcomment#type#Define('c', '// %s')call tcomment#type#Define('c_block', '/* %s */\n * ')call tcomment#type#Define('c_inline', '/* %s */')
local options = require 'options'---- options.merge_into(vim.opt_local, {-- tabstop = 2,-- shiftwidth = 2,-- })
local options = require 'options'options.merge_into(vim.opt, {wrap = false,})
-- only redraw when necessary (makes macros run faster)o.lazyredraw = true
merge_into(vim.opt, {guifont = 'UbuntuMono Nerd Font Mono:h15', -- set the font when using a graphical interfacemouse = 'a', -- support mouse selection, clicking, etctextwidth = 0, -- no automatic word-wrappinglazyredraw = true, -- only redraw when necessary (makes macros run faster)
-- show whitespacewo.list = trueo.listchars = 'tab:→ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»'-- show line numbers relative to the current positionwo.number = truewo.relativenumber = true
-- show whitespacelist = true,listchars = {tab = '→ ',space = '·',nbsp = '␣',trail = '•',eol = '¶',precedes = '«',extends = '»',},
-- Keep the cursor 10 lines from the top/bottom of the screeno.scrolloff = 10
foldcolumn = '1', -- Show when I'm in an open foldfoldclose = 'all', -- Automatically close folds when leaving themscrolloff = 10, -- Keep the cursor 10 lines from the top/bottom of the screentextwidth = 80, -- Automatically hit enter for mehidden = true, -- Required for operations modifying multiple buffers like rename.cursorline = true, -- Highlight the line your cursor is onsigncolumn = 'yes', -- Prevent the window from resizing due to the gitgutter being addedshowmode = false, -- hide the mode in the command line row (already shown by lualine)undofile = true, -- persist undo history between sessions-- shell = 'nu', -- use a specific default shell (this breaks fugitive)
-- Required for operations modifying multiple buffers like rename.o.hidden = true
require'nvim-lightbulb'.update_lightbulb {sign = {enabled = true,-- Priority of the gutter signpriority = 100,text = 'A'},float = {enabled = true,-- Text to show in the popup floattext = "A",win_opts = {},},virtual_text = {enabled = false,-- Text to show at virtual texttext = "A",}}
-- Highlight the line your cursor is onwo.cursorline = true
require'compe'.setup {enabled = true,autocomplete = true,debug = false,min_length = 1,preselect = 'disable',throttle_time = 80,source_timeout = 200,incomplete_delay = 400,max_abbr_width = 100,max_kind_width = 100,max_menu_width = 100,documentation = true,
require'nvim-lightbulb'.update_lightbulb {sign = {enabled = true,-- Priority of the gutter signpriority = 100,text = 'A'},float = {enabled = false,-- Text to show in the popup floattext = "💡",-- Available keys for window options:-- - height of floating window-- - width of floating window-- - wrap_at character to wrap at for computing height-- - max_width maximal width of floating window-- - max_height maximal height of floating window-- - pad_left number of columns to pad contents at left-- - pad_right number of columns to pad contents at right-- - pad_top number of lines to pad contents at top-- - pad_bottom number of lines to pad contents at bottom-- - offset_x x-axis offset of the floating window-- - offset_y y-axis offset of the floating window-- - anchor corner of float to place at the cursor (NW, NE, SW, SE)-- - winblend transparency of the window (0-100)win_opts = {},},virtual_text = {enabled = false,-- Text to show at virtual texttext = "💡",}}
-- require 'nvim-gps'.setup {-- icons = {-- ['class-name'] = 'C',-- ['function-name'] = 'f',-- ['method-name'] = 'm',-- }-- }
local execute = vim.api.nvim_commandlocal fn = vim.fnlocal install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'if fn.empty(fn.glob(install_path)) > 0 thenfn.system({'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path})execute 'packadd packer.nvim'endreturn require('packer').startup(function(use)use 'wbthomason/packer.nvim'-- UI Elementsuse { 'junegunn/fzf', run = function() vim.cmd[[fzf#install()]] end }use 'junegunn/fzf.vim'use {'nvim-telescope/telescope.nvim',requires = {{'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}}}use 'airblade/vim-gitgutter'use 'hoob3rt/lualine.nvim'use 'romgrk/barbar.nvim'use 'lambdalisue/fern.vim'use 'voldikss/vim-floaterm'use 'mfussenegger/nvim-dap'use 'rcarriga/nvim-notify'use 'AckslD/nvim-neoclip.lua'use 'SmiteshP/nvim-gps'-- Gituse 'tpope/vim-fugitive'use 'rbong/vim-flog'-- Editing functionalityuse 'b3nj5m1n/kommentary'use 'tpope/vim-obsession'use 'tpope/vim-surround'use 'tpope/vim-repeat'use 'nvim-treesitter/nvim-treesitter-textobjects'use 'windwp/nvim-autopairs'-- LSP supportuse 'neovim/nvim-lspconfig'use 'nvim-lua/lsp_extensions.nvim'use 'kosayoda/nvim-lightbulb'use 'hrsh7th/nvim-compe'use 'ray-x/lsp_signature.nvim'-- Language-specific pluginsuse 'simrat39/rust-tools.nvim'use 'arm9/arm-syntax-vim'use 'lervag/vimtex'-- Aesthetic pluginsuse 'eddyekofo94/gruvbox-flat.nvim'use 'sheerun/vim-polyglot'use { 'nvim-treesitter/nvim-treesitter', branch = '0.5-compat', run = ':TSUpdate' }use 'nvim-treesitter/playground'end)
local diff = {'diff',color_added = '#98c379',color_removed = '#e06c65'}function filetype_or_lsp()local servers = vim.lsp.buf_get_clients()for _, server in ipairs(servers) dolocal ok, server_name = pcall(function()return server.config.nameend)if ok thenreturn server_nameendendreturn vim.bo.filetype or ''end
}
},textobjects = {select = {enable = true,keymaps = {-- You can use the capture groups defined in textobjects.scm["af"] = "@function.outer",["if"] = "@function.inner",["ac"] = "@class.outer",["ic"] = "@class.inner",-- Or you can define your own textobjects like this-- ["iF"] = {-- python = "(function_definition) @function",-- cpp = "(function_definition) @function",-- c = "(function_definition) @function",-- java = "(method_declaration) @function",-- },}},swap = {enable = true,swap_next = {["<c-.>"] = "@parameter.inner",},swap_previous = {["<c-,>"] = "@parameter.inner",}},move = {enable = true,set_jumps = false, -- whether to set jumps in the jumplistgoto_next_start = {["]]"] = "@function.outer",["]m"] = "@class.outer",},goto_next_end = {["]["] = "@function.outer",["]M"] = "@class.outer",},goto_previous_start = {["[["] = "@function.outer",["[m"] = "@class.outer",},goto_previous_end = {["[]"] = "@function.outer",["[M"] = "@class.outer",},},},