--[[ THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT `lvim` is the global options object ]] lvim.transparent_window = true lvim.plugins = { { "catppuccin/nvim" }, { "gpanders/editorconfig.nvim" }, { "windwp/nvim-ts-autotag", config = function() require("nvim-ts-autotag").setup() end, }, { "mrjones2014/nvim-ts-rainbow" }, { "romgrk/nvim-treesitter-context", config = function() require("treesitter-context").setup { enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) throttle = true, -- Throttles plugin updates (may improve performance) max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit. patterns = { -- Match patterns for TS nodes. These get wrapped to match at word boundaries. -- For all filetypes -- Note that setting an entry here replaces all other patterns for this entry. -- By setting the 'default' entry below, you can control which nodes you want to -- appear in the context window. default = { 'class', 'function', 'method', }, }, } end }, { "ray-x/lsp_signature.nvim", event = "BufRead", config = function() require "lsp_signature".on_attach() end, }, { "folke/todo-comments.nvim", event = "BufRead", config = function() require("todo-comments").setup() end, }, { "f-person/git-blame.nvim" }, } -- vim options --vim.opt.shiftwidth = 2 --vim.opt.tabstop = 2 vim.opt.relativenumber = true vim.opt.clipboard = "unnamedplus" vim.opt.wrap = true vim.opt.spell = true vim.opt.spelllang = "en" -- general lvim.log.level = "info" lvim.format_on_save = { enabled = true, pattern = "*.lua", timeout = 1000, } -- to disable icons and use a minimalist setup, uncomment the following -- lvim.use_icons = false -- keymappings lvim.leader = "space" -- add your own keymapping lvim.keys.normal_mode[""] = ":w" -- lvim.keys.normal_mode[""] = ":BufferLineCycleNext" -- lvim.keys.normal_mode[""] = ":BufferLineCyclePrev" -- -- Use which-key to add extra bindings with the leader-key prefix -- lvim.builtin.which_key.mappings["W"] = { "noautocmd w", "Save without formatting" } -- lvim.builtin.which_key.mappings["P"] = { "Telescope projects", "Projects" } -- -- Change theme settings -- lvim.colorscheme = "lunar" -- After changing plugin config exit and reopen LunarVim, Run :PackerSync lvim.builtin.alpha.active = true lvim.builtin.alpha.mode = "dashboard" lvim.builtin.terminal.active = true lvim.builtin.nvimtree.setup.view.side = "left" lvim.builtin.nvimtree.setup.renderer.icons.show.git = true -- Automatically install missing parsers when entering buffer lvim.builtin.treesitter.auto_install = true lvim.builtin.treesitter.rainbow.enable = true -- lvim.builtin.treesitter.ignore_install = { "haskell" } -- -- generic LSP settings -- --- disable automatic installation of servers -- lvim.lsp.installer.setup.automatic_installation = false -- ---configure a server manually. IMPORTANT: Requires `:LvimCacheReset` to take effect -- ---see the full default list `:lua =lvim.lsp.automatic_configuration.skipped_servers` -- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" }) -- local opts = {} -- check the lspconfig documentation for a list of all possible options -- require("lvim.lsp.manager").setup("pyright", opts) -- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. IMPORTANT: Requires `:LvimCacheReset` to take effect -- ---`:LvimInfo` lists which server(s) are skipped for the current filetype -- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) -- return server ~= "emmet_ls" -- end, lvim.lsp.automatic_configuration.skipped_servers) -- -- you can set a custom on_attach function that will be used for all the language servers -- -- See -- lvim.lsp.on_attach_callback = function(client, bufnr) -- local function buf_set_option(...) -- vim.api.nvim_buf_set_option(bufnr, ...) -- end -- --Enable completion triggered by -- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") -- end -- -- linters and formatters -- local formatters = require "lvim.lsp.null-ls.formatters" -- formatters.setup { -- { command = "stylua" }, -- { -- command = "prettier", -- extra_args = { "--print-width", "100" }, -- filetypes = { "typescript", "typescriptreact" }, -- }, -- } -- local linters = require "lvim.lsp.null-ls.linters" -- linters.setup { -- { command = "flake8", filetypes = { "python" } }, -- { -- command = "shellcheck", -- args = { "--severity", "warning" }, -- }, -- } -- -- Additional Plugins -- lvim.plugins = { -- { -- "folke/trouble.nvim", -- cmd = "TroubleToggle", -- }, -- } -- -- Autocommands (`:help autocmd`) -- vim.api.nvim_create_autocmd("FileType", { -- pattern = "zsh", -- callback = function() -- -- let treesitter use bash highlight for zsh files as well -- require("nvim-treesitter.highlight").attach(0, "bash") -- end, -- })