diff --git a/README.md b/README.md index 2e2bd0b..10bc1ea 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,17 @@ ``` - Clone my config into `~/.config/nvim/lua/user` + - For NeoVim >= 8.0 -```bash -git clone https://github.com/jiriks74/astronvim_config ~/.config/nvim/lua/user -``` + ```bash + git clone https://github.com/jiriks74/astronvim_config ~/.config/nvim/lua/user + ``` + + - For NeoVim < 8.0 use `neovim7.2` branch + + ```bash + git clone -b neovim7.2 https://github.com/jiriks74/astronvim_config ~/.config/nvim/lua/user + ``` - Open nvim and run `:PackerSync` diff --git a/init.lua.bac b/init.lua.bac deleted file mode 100644 index f981ab0..0000000 --- a/init.lua.bac +++ /dev/null @@ -1,414 +0,0 @@ --- AstroNvim Configuration Table --- All configuration changes should go inside of the table below - --- You can think of a Lua "table" as a dictionary like data structure the --- normal format is "key = value". These also handle array like data structures --- where a value with no key simply has an implicit numeric key -local config = { - - -- Configure AstroNvim updates - updater = { - remote = "origin", -- remote to use - channel = "nightly", -- "stable" or "nightly" - version = "latest", -- "latest", tag name, or regex search like "v1.*" to only do updates before v2 (STABLE ONLY) - branch = "main", -- branch name (NIGHTLY ONLY) - commit = nil, -- commit hash (NIGHTLY ONLY) - pin_plugins = nil, -- nil, true, false (nil will pin plugins on stable only) - skip_prompts = false, -- skip prompts about breaking changes - show_changelog = true, -- show the changelog after performing an update - auto_reload = false, -- automatically reload and sync packer after a successful update - auto_quit = false, -- automatically quit the current session after a successful update - -- remotes = { -- easily add new remotes to track - -- ["remote_name"] = "https://remote_url.come/repo.git", -- full remote url - -- ["remote2"] = "github_user/repo", -- GitHub user/repo shortcut, - -- ["remote3"] = "github_user", -- GitHub user assume AstroNvim fork - -- }, - }, - - -- Set colorscheme to use - colorscheme = "default_theme", - - -- Override highlight groups in any theme - highlights = { - -- duskfox = { -- a table of overrides/changes to the default - -- Normal = { bg = "#000000" }, - -- }, - default_theme = function(highlights) -- or a function that returns a new table of colors to set - local C = require "default_theme.colors" - - highlights.Normal = { fg = C.fg, bg = C.bg } - return highlights - end, - }, - - -- set vim options here (vim.. = value) - options = { - opt = { - relativenumber = true, -- sets vim.opt.relativenumber - }, - g = { - mapleader = " ", -- sets vim.g.mapleader - copilot_no_tab_map = true, - copilot_assume_mapped = true, - copilot_tab_fallback = "", - vimspector_enable_mappings = 'VISUAL_STUDIO', - }, - }, - -- If you need more control, you can use the function()...end notation - -- options = function(local_vim) - -- local_vim.opt.relativenumber = true - -- local_vim.g.mapleader = " " - -- local_vim.opt.whichwrap = vim.opt.whichwrap - { 'b', 's' } -- removing option from list - -- local_vim.opt.shortmess = vim.opt.shortmess + { I = true } -- add to option list - -- - -- return local_vim - -- end, - - -- Set dashboard header - header = { - " █████ ███████ ████████ ██████ ██████", - "██ ██ ██ ██ ██ ██ ██ ██", - "███████ ███████ ██ ██████ ██ ██", - "██ ██ ██ ██ ██ ██ ██ ██", - "██ ██ ███████ ██ ██ ██ ██████", - " ", - " ███  ██ ██  ██ ██ ███  ███", - " ████  ██ ██  ██ ██ ████  ████", - " ██ ██  ██ ██  ██ ██ ██ ████ ██", - " ██  ██ ██  ██  ██  ██ ██  ██  ██", - " ██   ████   ████   ██ ██      ██", - }, - - -- Default theme configuration - default_theme = { - -- set the highlight style for diagnostic messages - diagnostics_style = { italic = true }, - -- Modify the color palette for the default theme - colors = { - fg = "#abb2bf", - bg = "#1e222a", - }, - -- enable or disable highlighting for extra plugins - plugins = { - aerial = true, - beacon = false, - bufferline = true, - dashboard = true, - highlighturl = true, - hop = false, - indent_blankline = true, - lightspeed = false, - ["neo-tree"] = true, - notify = true, - ["nvim-tree"] = false, - ["nvim-web-devicons"] = true, - rainbow = true, - symbols_outline = false, - telescope = true, - vimwiki = false, - ["which-key"] = true, - }, - }, - - -- Diagnostics configuration (for vim.diagnostics.config({...})) - diagnostics = { - virtual_text = true, - underline = true, - }, - - -- Extend LSP configuration - lsp = { - -- enable servers that you already have installed without mason - servers = { - -- "pyright" - }, - -- easily add or disable built in mappings added during LSP attaching - mappings = { - n = { - -- ["lf"] = false -- disable formatting keymap - }, - }, - -- add to the global LSP on_attach function - -- on_attach = function(client, bufnr) - -- end, - - -- override the mason server-registration function - -- server_registration = function(server, opts) - -- require("lspconfig")[server].setup(opts) - -- end, - - -- Add overrides for LSP server settings, the keys are the name of the server - ["server-settings"] = { - -- example for addings schemas to yamlls - -- yamlls = { -- override table for require("lspconfig").yamlls.setup({...}) - -- settings = { - -- yaml = { - -- schemas = { - -- ["http://json.schemastore.org/github-workflow"] = ".github/workflows/*.{yml,yaml}", - -- ["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}", - -- ["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}", - -- }, - -- }, - -- }, - -- }, - -- Example disabling formatting for a specific language server - -- gopls = { -- override table for require("lspconfig").gopls.setup({...}) - -- on_attach = function(client, bufnr) - -- client.resolved_capabilities.document_formatting = false - -- end - -- } - clangd = { - capabilities = { offsetEncoding = "utf-8" }, - }, - }, - }, - - -- Mapping data with "desc" stored directly by vim.keymap.set(). - -- - -- Please use this mappings table to set keyboard mapping since this is the - -- lower level configuration and more robust one. (which-key will - -- automatically pick-up stored data by this setting.) - mappings = { - -- first key is the mode - n = { - -- second key is the lefthand side of the map - -- mappings seen under group name "Buffer" - ["a"] = { "Alpha", desc = "Alpha Dashboard" }, - ["bb"] = { "tabnew", desc = "New tab" }, - ["bc"] = { "BufferLinePickClose", desc = "Pick to close" }, - ["bj"] = { "BufferLinePick", desc = "Pick to jump" }, - ["bt"] = { "BufferLineSortByTabs", desc = "Sort by tabs" }, - - ["dd"] = { "call vimspector#Launch()", desc = "Launch" }, - ["dS"] = { "call vimspector#Stop()", desc = "Stop" }, - ["dc"] = { "call vimspector#Continue()", desc = "Continue" }, - ["dp"] = { "call vimspector#Pause()", desc = "Pause" }, - ["de"] = { "call vimspector#Reset()", desc = "Reset" }, - ["dr"] = { "call vimspector#Restart()", desc = "Restart" }, - ["dR"] = { "call vimspector#RunToCursor()", desc = "Run to cursor" }, - ["dC"] = { "call vimspector#GoToCurrentLine()", desc = "Go to current line" }, - ["dP"] = { "call vimspector#JumpToProgramCounter()", desc = "Move Cursor to the program counter in current frame" }, - - -- Breakpoints - ["dbt"] = { "call vimspector#ToggleBreakpoint()", desc = "Toggle breakpoint" }, - ["dbl"] = { "call vimspector#ListBreakpoints()", desc = "List breakpoints" }, - ["dbc"] = { "call vimspector#ClearBreakpoints()", desc = "Clear breakpoints" }, - ["dbC"] = { "call vimspector#ToggleBreakpoint( { trigger expr, hit count expr } )", desc = "Toggle CBreakpoint or LogPoint on current line"}, - ["dbf"] = { "call vimspector#AddFunctionBreakpoint( '' )", desc = "Add a function breakpoint for expression under cursor"}, - ["dbn"] = { "call vimspector#JumpToNextBreakpoint()", desc = "Jump to next breakpoint" }, - ["dbp"] = { "call vimspector#JumpToPreviousBreakpoint()", desc = "Jump to previous breakpoint" }, - - -- Step - ["dss"] = { "call vimspector#StepOver()", desc = "Step over" }, - ["dsi"] = { "call vimspector#StepOver()", desc = "Step into" }, - ["dso"] = { "call vimspector#StepOut()", desc = "Step out" }, - - -- Frames - ["dfu"] = { "call vimspector#UpFrame()", desc = "Up frame" }, - ["dfd"] = { "call vimspector#DownFrame()", desc = "Down frame" }, - - -- Mardown preview - ["mp"] = { "MarkdownPreview", desc = "Markdown preview" }, - ["ms"] = { "MarkdownPreviewStop", desc = "Markdown preview stop" }, - ["mt"] = { "MarkdownPreviewToggle", desc = "Markdown preview toggle" }, - - -- Vimtex mappings - ["xi"] = { "VimtexInfo", desc = "Info" }, - ["xI"] = { "VimtexInfoFull", desc = "Full info" }, - ["xt"] = { "VimtexTocOpen", desc = "Open table of contents" }, - ["xT"] = { "VimtexTocToggle", desc = "Toggle table of contents" }, - ["xq"] = { "VimtexLog", desc = "Log" }, - ["xv"] = { "VimtexView", desc = "View" }, - ["xr"] = { "VimtexReverseSearch", desc = "Reverse search" }, - ["xl"] = { "VimtexCompile", desc = "Compile (toggle)" }, - ["xL"] = { "VimtexCompileSelected", desc = "Compile selected" }, - ["xk"] = { "VimtexStop", desc = "Stop compilation" }, - ["xK"] = { "VimtexStopAll", desc = "Stop all compilations" }, - ["xe"] = { "VimtexErrors", desc = "Open quickfix window" }, - ["xo"] = { "VimtexCompileOutput", desc = "Open compiler output" }, - ["xg"] = { "VimtexStatus", desc = "Compilation status" }, - ["xG"] = { "VimtexStatusAll", desc = "Show all compilations' status" }, - ["xc"] = { "VimtexClean", desc = "Clean auxiliary files" }, - ["xC"] = { "VimtexClean!", desc = "As Clean, but also remove output files" }, - ["xm"] = { "VimtexImapsList", desc = "Show list of mappings created by vimtex-imaps" }, - ["xx"] = { "VimtexReload", desc = "Reload vimtex" }, - ["xX"] = { "VimtexReloadState", desc = "Reload the state for the current buffer" }, - ["xs"] = { "VimtexToggleMain", desc = "Set current file as 'current project'" }, - ["xa"] = { "VimtexContextMenu", desc = "Show context menu" }, - - -- Autosave - [""] = { "ASToggle", desc = "Toggle autosave" }, - - -- quick save - -- [""] = { ":w!", desc = "Save File" }, -- change description but the same command - }, - t = { - -- setting a mapping to false will disable it - -- [""] = false, - }, - i = { - [""] = { "copilot#Accept('')", silent = true, expr = true }, - }, - v = { - }, - }, - - -- Configure plugins - plugins = { - init = { - -- You can disable default plugins as follows: - -- ["goolord/alpha-nvim"] = { disable = true }, - - -- You can also add new plugins here as well: - -- Add plugins, the packer syntax without the "use" - -- { "andweeb/presence.nvim" }, - -- { - -- "ray-x/lsp_signature.nvim", - -- event = "BufRead", - -- config = function() - -- require("lsp_signature").setup() - -- end, - -- }, - {"github/copilot.vim"}, - {"puremourning/vimspector"}, - {"lervag/vimtex"}, - {"jiriks74/vim-pio"}, - { - "iamcco/markdown-preview.nvim", - run = function() vim.fn["mkdp#util#install"]() end, - }, - { - "Pocco81/auto-save.nvim", - config = function() - require("auto-save").setup() - end, - }, - - -- We also support a key value style plugin definition similar to NvChad: - -- ["ray-x/lsp_signature.nvim"] = { - -- event = "BufRead", - -- config = function() - -- require("lsp_signature").setup() - -- end, - -- }, - }, - -- All other entries override the require("").setup({...}) call for default plugins - ["null-ls"] = function(config) -- overrides `require("null-ls").setup(config)` - -- config variable is the default configuration table for the setup function call - -- local null_ls = require "null-ls" - - -- Check supported formatters and linters - -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting - -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics - config.sources = { - -- Set a formatter - -- null_ls.builtins.formatting.stylua, - -- null_ls.builtins.formatting.prettier, - } - -- set up null-ls's on_attach function - -- NOTE: You can uncomment this on attach function to enable format on save - -- config.on_attach = function(client) - -- if client.resolved_capabilities.document_formatting then - -- vim.api.nvim_create_autocmd("BufWritePre", { - -- desc = "Auto format before save", - -- pattern = "", - -- callback = vim.lsp.buf.formatting_sync, - -- }) - -- end - -- end - return config -- return final config table to use in require("null-ls").setup(config) - end, - treesitter = { -- overrides `require("treesitter").setup(...)` - -- ensure_installed = { "lua" }, - }, - -- use mason-lspconfig to configure LSP installations - ["mason-lspconfig"] = { -- overrides `require("mason-lspconfig").setup(...)` - -- ensure_installed = { "sumneko_lua" }, - }, - -- use mason-tool-installer to configure DAP/Formatters/Linter installation - ["mason-tool-installer"] = { -- overrides `require("mason-tool-installer").setup(...)` - -- ensure_installed = { "prettier", "stylua" }, - }, - packer = { -- overrides `require("packer").setup(...)` - compile_path = vim.fn.stdpath "data" .. "/packer_compiled.lua", - }, - }, - - -- LuaSnip Options - luasnip = { - -- Add paths for including more VS Code style snippets in luasnip - vscode_snippet_paths = {}, - -- Extend filetypes - filetype_extend = { - javascript = { "javascriptreact" }, - }, - }, - - -- CMP Source Priorities - -- modify here the priorities of default cmp sources - -- higher value == higher priority - -- The value can also be set to a boolean for disabling default sources: - -- false == disabled - -- true == 1000 - cmp = { - source_priority = { - nvim_lsp = 1000, - luasnip = 750, - buffer = 500, - path = 250, - }, - }, - - -- Modify which-key registration (Use this with mappings table in the above.) - ["which-key"] = { - -- Add bindings which show up as group name - register_mappings = { - -- first key is the mode, n == normal mode - n = { - -- second key is the prefix, prefixes - [""] = { - -- third key is the key to bring up next level and its displayed - -- group name in which-key top level menu - ["b"] = { name = "Buffer" }, - ["d"] = { - name = "Debugging", - ["b"] = { name = "Breakpoints" }, - ["s"] = { name = "Step" }, - ["f"] = { name = "Frames" }, - }, - ["m"] = { name = "Markdown" }, - }, - }, - }, - }, - - -- This function is run last and is a good place to configuring - -- augroups/autocommands and custom filetypes also this just pure lua so - -- anything that doesn't fit in the normal config locations above can go here - polish = function() - -- Set key binding - -- Set autocommands - -- vim.api.nvim_create_augroup("packer_conf", { clear = true }) - -- vim.api.nvim_create_autocmd("BufWritePost", { - -- desc = "Sync packer after modifying plugins.lua", - -- group = "packer_conf", - -- pattern = "plugins.lua", - -- command = "source | PackerSync", - -- }) - - -- Set up custom filetypes - -- vim.filetype.add { - -- extension = { - -- foo = "fooscript", - -- }, - -- filename = { - -- ["Foofile"] = "fooscript", - -- }, - -- pattern = { - -- ["~/%.config/foo/.*"] = "fooscript", - -- }, - -- } - end, -} - -return config