vim.g.mapleader = " " -- lua init steeings for vim that shows number and relative number vim.opt.number = true vim.opt.relativenumber = true vim.opt.hlsearch = false vim.opt.incsearch = true vim.opt.colorcolumn = "80" vim.opt.tabstop = 4 vim.opt.softtabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true vim.opt.smartindent = true vim.opt.scrolloff = 8 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ { "ellisonleao/gruvbox.nvim", priority = 1000 , config = true, opts = ...}, {'mg979/vim-visual-multi'}, {'williamboman/mason.nvim'}, {'williamboman/mason-lspconfig.nvim'}, {'VonHeikemen/lsp-zero.nvim', branch = 'v3.x'}, {'neovim/nvim-lspconfig'}, {'hrsh7th/cmp-nvim-lsp'}, {'hrsh7th/nvim-cmp'}, {'L3MON4D3/LuaSnip'}, {'nvim-treesitter/nvim-treesitter'}, {'mbbill/undotree'}, {'nvim-telescope/telescope.nvim', branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim' }}, { "iamcco/markdown-preview.nvim", cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, ft = { "markdown" }, build = function() vim.fn["mkdp#util#install"]() end, }, }) vim.o.background = "dark" -- or "light" for light mode vim.cmd([[colorscheme gruvbox]]) local lsp_zero = require('lsp-zero') lsp_zero.preset('recommended') lsp_zero.on_attach(function(client, bufnr) lsp_zero.default_keymaps({buffer = bufnr}) end) lsp_zero.setup() require('mason').setup({}) require('mason-lspconfig').setup({ ensure_installed = {}, handlers = { lsp_zero.default_setup, }, }) require'nvim-treesitter.configs'.setup { -- A list of parser names, or "all" ensure_installed = { "javascript", "typescript", "c", "lua", "rust", "python", "gdscript", "html", "css", "sql", "markdown" }, -- 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, highlight = { -- `false` will disable the whole extension enable = true, -- 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, }, } local builtin = require('telescope.builtin') vim.keymap.set('n', 'ff', builtin.find_files, {}) vim.keymap.set('n', 'fg', builtin.live_grep, {}) vim.keymap.set('n', 'fb', builtin.buffers, {}) vim.keymap.set('n', 'fh', builtin.help_tags, {}) vim.keymap.set("n", "pv", vim.cmd.Ex) vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) -- markdown vim.g.mkdp_auto_start = 1