commit ea9f53e245a36e7bd8504ff60816dfc34805af10 Author: Patryk Koreń Date: Sun Nov 19 19:14:36 2023 +0100 nvim config diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..4e5dc2c --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,103 @@ +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