diff options
Diffstat (limited to '.config/nvim/after')
| -rw-r--r-- | .config/nvim/after/plugin/lsp.lua | 58 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/luasnip.lua | 10 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/mini.lua | 24 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/neopywal.lua | 338 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/nvim-cmp.lua | 74 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/toggleterm.lua | 47 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/treesitter.lua | 21 | ||||
| -rw-r--r-- | .config/nvim/after/plugin/vimtex.lua | 8 |
8 files changed, 580 insertions, 0 deletions
diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua new file mode 100644 index 0000000..ed2c940 --- /dev/null +++ b/.config/nvim/after/plugin/lsp.lua @@ -0,0 +1,58 @@ +local lspconfig = require('lspconfig') +local lsp_defaults = lspconfig.util.default_config + +lsp_defaults.capabilities = vim.tbl_deep_extend( + 'force', + lsp_defaults.capabilities, + require('cmp_nvim_lsp').default_capabilities() +) + +vim.api.nvim_create_autocmd('LspAttach', { + desc = 'LSP actions', + callback = function(event) + -- Enable completion triggered by <c-x><c-o> + vim.api.nvim_buf_set_option(event.buf, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=event.buf } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set('n', '<leader>wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', '<leader>f', function() vim.lsp.buf.format { async = true } end, bufopts) + end +}) + +require('mason').setup() +require('mason-lspconfig').setup({ + ensure_installed = { + 'julials', + } +}) + +require("mason-lspconfig").setup { + function (server_name) + lspconfig[server_name].setup {} + end, + + ["julials"] = function () + lspconfig.julials.setup { + on_attach = on_attach, + julia_env_path = "/home/josh/.julia/environments/v1.10/", + filetypes = { "julia", "jl" }, + single_file_support = true + } + end +} + diff --git a/.config/nvim/after/plugin/luasnip.lua b/.config/nvim/after/plugin/luasnip.lua new file mode 100644 index 0000000..140d9b2 --- /dev/null +++ b/.config/nvim/after/plugin/luasnip.lua @@ -0,0 +1,10 @@ +-- Somewhere in your Neovim startup, e.g. init.lua +require("luasnip").config.set_config({ -- Setting LuaSnip config + enable_autosnippets = true, + store_selection_keys = "<Tab>", + region_check_events = 'InsertEnter', + delete_check_events = 'InsertLeave' +}) + +-- Load all snippets from the nvim/LuaSnip directory at startup +require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/snips/"}) diff --git a/.config/nvim/after/plugin/mini.lua b/.config/nvim/after/plugin/mini.lua new file mode 100644 index 0000000..76acdd6 --- /dev/null +++ b/.config/nvim/after/plugin/mini.lua @@ -0,0 +1,24 @@ +require('mini.files').setup({ + mappings = { + close = '<C-c>', + go_in = '<Right>', + go_in_plus = '<S-Right>', + go_out = '<Left>', + go_out_plus = '<S-Left>', + }, +}) + +require('mini.trailspace').setup() +require('mini.move').setup({ + mappings = { + left = '<M-Left>', + right = '<M-Right>', + down = '<M-Down>', + up = '<M-Up>', + + line_left = '<M-Left>', + line_right = '<M-Right>', + line_down = '<M-Down>', + line_up = '<M-Up>', + }, +}) diff --git a/.config/nvim/after/plugin/neopywal.lua b/.config/nvim/after/plugin/neopywal.lua new file mode 100644 index 0000000..5f15c32 --- /dev/null +++ b/.config/nvim/after/plugin/neopywal.lua @@ -0,0 +1,338 @@ +-- make a rainbow out of the brighter colors rather than the darker ones +function my_rainbow() + local C = require("neopywal.lib.palette").get() + local U = require("neopywal.utils.color") + + return { + C.color9, + U.blend(C.color9, C.color11, 0.5), + C.color11, + C.color10, + C.color14, + C.color12, + C.color13, + } +end + +-- highlights taken from pywal16.nvim +function highlights (C) + return { + Boolean = { fg = C.color5 }, + Character = { fg = C.color12 }, + CmpDocumentationBorder = { fg = C.foreground, bg = C.none }, + CmpItemAbbr = { fg = C.foreground, bg = C.none }, + CmpItemAbbrDeprecated = { fg = C.color2, bg = C.none }, + CmpItemAbbrMatch = { fg = C.color7, bg = C.none }, + CmpItemAbbrMatchFuzzy = { fg = C.color7, bg = C.none }, + CmpItemKind = { fg = C.color4, bg = C.none }, + CmpItemMenu = { fg = C.color2, bg = C.none }, + ColorColumn = { bg = C.background }, + Comment = { fg = C.color8 }, + Conceal = { fg = C.color4, bg = C.none }, + Conditional = { fg = C.color2 }, + Constant = { fg = C.color9 }, + Cursor = { fg = C.foreground, bg = C.cursor }, + CursorColumn = { bg = C.none }, + CursorIM = { fg = C.foreground, bg = C.cursor }, + CursorLine = { bg = C.none }, + CursorLineNr = { fg = C.color1 }, + Debug = { fg = C.color11 }, + Define = { fg = C.color6 }, + Delimiter = { fg = C.foreground }, + DiffAdd = { fg = C.foreground, bg = C.color2 }, + DiffChange = { fg = C.none, bg = C.color0 }, + DiffDelete = { fg = C.foreground, bg = C.color1 }, + DiffText = { fg = C.foreground, bg = C.color1 }, + Directory = { fg = C.color4 }, + EndOfBuffer = { fg = C.background, bg = C.none }, + Error = { fg = C.color11, bg = C.none }, + ErrorMsg = { fg = C.color11, bg = C.none }, + Exception = { fg = C.color6 }, + Float = { fg = C.color5 }, + FloatBorder = { fg = C.foreground, bg = C.none }, + FoldColumn = { fg = C.color4, bg = C.none }, + Folded = { fg = C.color4, bg = C.none }, + Function = { fg = C.color3 }, + Identifier = { fg = C.color5 }, + Ignore = { fg = C.color7, bg = C.none }, + IncSearch = { fg = C.foreground, bg = C.color3 }, + Include = { fg = C.color6 }, + Keyword = { fg = C.color4 }, + Label = { fg = C.color4 }, + LineNr = { fg = C.color8, bg = C.none }, + Macro = { fg = C.color6 }, + MatchParen = { fg = C.color4, bg = C.none }, + ModeMsg = { fg = C.foreground, bg = C.none }, + MoreMsg = { fg = C.color5 }, + MsgArea = { fg = C.foreground, bg = C.none }, + MsgSeparator = { fg = C.color8, bg = C.none }, + NonText = { fg = C.background }, + Normal = { fg = C.foreground, bg = C.none }, + NormalFloat = { fg = C.foreground, bg = C.background }, + NormalNC = { fg = C.foreground, bg = C.none }, + Number = { fg = C.color5 }, + Operator = { fg = C.color6 }, + Pmenu = { fg = C.foreground, bg = C.none }, + PmenuSbar = { bg = C.none }, + PmenuSel = { fg = C.none, bg = C.color0 }, + PmenuThumb = { bg = C.color2 }, + PreCondit = { fg = C.color6 }, + PreProc = { fg = C.color6 }, + Question = { fg = C.color5 }, + QuickFixLine = { bg = C.color2 }, + Repeat = { fg = C.color6 }, + Search = { fg = C.foreground, bg = C.color2 }, + SignColumn = { fg = C.none, bg = C.none }, + Special = { fg = C.color6 }, + SpecialChar = { fg = C.foreground }, + SpecialComment = { fg = C.color2 }, + SpecialKey = { fg = C.color4 }, + SpellBad = { fg = C.color2 }, + SpellCap = { fg = C.color6 }, + SpellLocal = { fg = C.color4 }, + SpellRare = { fg = C.color6 }, + Statement = { fg = C.color6 }, + StatusLine = { fg = C.none, bg = C.none }, + StatusLineNC = { fg = C.none, bg = C.none }, + StorageClass = { fg = C.color7 }, + String = { fg = C.color6 }, + Structure = { fg = C.color6 }, + Substitute = { fg = C.color1, bg = C.color6 }, + Tag = { fg = C.color4 }, + TermCursor = { fg = C.foreground, bg = C.cursor }, + TermCursorNC = { fg = C.foreground, bg = C.cursor }, + Title = { fg = C.color4 }, + Todo = { fg = C.color11, bg = C.none }, + Type = { fg = C.color5 }, + Typedef = { fg = C.color6 }, + Variable = { fg = C.color9 }, + VertSplit = { fg = C.color4, bg = C.none }, + Visual = { fg = C.foreground, bg = C.color5 }, + VisualNOS = { bg = C.none }, + WarningMsg = { fg = C.color3, bg = C.none }, + Whitespace = { fg = C.color8, bg = C.background }, + WildMenu = { fg = C.color7, bg = C.color4 }, + WinBar = { bg = C.none }, + WinBarNC = { bg = C.none }, + WinSeparator = { fg = C.color8, bg = C.none }, + healthError = { fg = C.color11 }, + healthSuccess = { fg = C.color4 }, + healthWarning = { fg = C.color5 }, + lCursor = { fg = C.foreground, bg = C.cursor }, + + -- BetterWhitespace + ExtraWhitespace = { fg = C.color8, bg = C.background }, + + -- BufferLine + BufferLineFill = { bg = C.none }, + BufferLineIndicatorSelected = { fg = C.color5 }, + + -- diagnostics + DiagnosticError = { fg = C.color9 }, + DiagnosticHint = { fg = C.color14 }, + DiagnosticInfo = { fg = C.color15 }, + DiagnosticWarn = { fg = C.color11 }, + DiagnosticUnderlineError = { undercurl = true, fg = C.color9 }, + DiagnosticUnderlineHint = { undercurl = true, fg = C.color14 }, + DiagnosticUnderlineInfo = { undercurl = true, fg = C.color15 }, + DiagnosticUnderlineWarn = { undercurl = true, fg = C.color11 }, + + -- diff + diffAdded = { fg = C.color2 }, + diffChanged = { fg = C.color3 }, + diffFile = { fg = C.color7 }, + diffIndexLine = { fg = C.color6 }, + diffLine = { fg = C.color1 }, + diffNewFile = { fg = C.color6 }, + diffOldFile = { fg = C.color5 }, + diffRemoved = { fg = C.color1 }, + + -- GitGutter + GitGutterAdd = { fg = C.color4 }, -- diff mode: Added line |diff.txt| + GitGutterChange = { fg = C.color5 }, -- diff mode: Changed line |diff.txt| + GitGutterDelete = { fg = C.color11 }, -- diff mode: Deleted line |diff.txt| + + -- GitSigns + GitSignsAdd = { fg = C.color2 }, -- diff mode: Added line |diff.txt| + GitSignsChange = { fg = C.color3 }, -- diff mode: Changed line |diff.txt| + GitSignsCurrentLineBlame = { fg = C.color8, bg = C.none }, + GitSignsDelete = { fg = C.color1 }, -- diff mode: Deleted line |diff.txt| + + -- Illuminate + illuminatedCurWord = { bg = C.foreground }, + illuminatedWord = { bg = C.foreground }, + + -- Indent Blank Line + IblIndent = { fg = C.color8, bg = C.none }, + IblScope = { fg = C.color7, bg = C.none }, + -- IblWhitespace = { fg = C.color8, bg = C.background }, + + -- LspSaga + DefinitionCount = { fg = C.color6 }, + DefinitionIcon = { fg = C.color7 }, + LspFloatWinBorder = { fg = C.foreground }, + LspFloatWinNormal = { bg = C.none }, + LspSagaBorderTitle = { fg = C.color7 }, + LspSagaCodeActionBorder = { fg = C.color7 }, + LspSagaCodeActionContent = { fg = C.color6 }, + LspSagaCodeActionTitle = { fg = C.color7 }, + LspSagaDefPreviewBorder = { fg = C.color4 }, + LspSagaFinderSelection = { fg = C.color1 }, + LspSagaHoverBorder = { fg = C.color7 }, + LspSagaRenameBorder = { fg = C.color4 }, + LspSagaSignatureHelpBorder = { fg = C.color11 }, + ReferencesCount = { fg = C.color6 }, + ReferencesIcon = { fg = C.color7 }, + TargetWord = { fg = C.color7 }, + + -- LspTrouble + LspTroubleCount = { fg = C.color6, bg = C.foreground }, + LspTroubleNormal = { fg = C.foreground, bg = C.none }, + LspTroubleText = { fg = C.foreground }, + + -- Neogit + NeogitBranch = { fg = C.color6 }, + NeogitDiffAddHighlight = { fg = C.color4, bg = C.color4 }, + NeogitDiffContextHighlight = { bg = C.none, fg = C.foreground }, + NeogitDiffDeleteHighlight = { fg = C.color11, bg = C.color11 }, + NeogitHunkHeader = { bg = C.none, fg = C.foreground }, + NeogitHunkHeaderHighlight = { bg = C.foreground, fg = C.color7 }, + NeogitRemote = { fg = C.color6 }, + + -- nvim-navic + NavicIconsArray = { bg = C.none, fg = C.color3 }, + NavicIconsBoolean = { bg = C.none, fg = C.color2 }, + NavicIconsClass = { bg = C.none, fg = C.color2 }, + NavicIconsConstant = { bg = C.none, fg = C.color14 }, + NavicIconsConstructor = { bg = C.none, fg = C.color9 }, + NavicIconsEnum = { bg = C.none, fg = C.color10 }, + NavicIconsEnumMember = { bg = C.none, fg = C.color7 }, + NavicIconsEvent = { bg = C.none, fg = C.color9 }, + NavicIconsField = { bg = C.none, fg = C.color8 }, + NavicIconsFile = { bg = C.none, fg = C.color2 }, + NavicIconsFunction = { bg = C.none, fg = C.color12 }, + NavicIconsInterface = { bg = C.none, fg = C.color11 }, + NavicIconsKey = { bg = C.none, fg = C.color5 }, + NavicIconsMethod = { bg = C.none, fg = C.color3 }, + NavicIconsModule = { bg = C.none, fg = C.color3 }, + NavicIconsNamespace = { bg = C.none, fg = C.color2 }, + NavicIconsNull = { bg = C.none, fg = C.color6 }, + NavicIconsNumber = { bg = C.none, fg = C.color1 }, + NavicIconsObject = { bg = C.none, fg = C.color4 }, + NavicIconsOperator = { bg = C.none, fg = C.color10 }, + NavicIconsPackage = { bg = C.none, fg = C.color3 }, + NavicIconsProperty = { bg = C.none, fg = C.color7 }, + NavicIconsString = { bg = C.none, fg = C.color15 }, + NavicIconsStruct = { bg = C.none, fg = C.color8 }, + NavicIconsTypeParameter = { bg = C.none, fg = C.color11 }, + NavicIconsVariable = { bg = C.none, fg = C.color13 }, + NavicSeparator = { bg = C.none, fg = C.foreground }, + NavicText = { bg = C.none, fg = C.foreground }, + + -- nvim-scrollbar + ScrollbarCursorHandle = { bg = C.color12 }, + ScrollbarHandle = { bg = C.color2 }, + + -- NvimTree + NvimTreeFolderIcon = { fg = C.color2, bg = C.none }, + NvimTreeGitDeleted = { fg = C.color11 }, + NvimTreeGitDirty = { fg = C.color5 }, + NvimTreeGitNew = { fg = C.color4 }, + NvimTreeImageFile = { fg = C.foreground }, + NvimTreeIndentMarker = { fg = C.foreground }, + NvimTreeNormal = { fg = C.foreground, bg = C.none }, + NvimTreeNormalNC = { fg = C.foreground, bg = C.none }, + NvimTreeRootFolder = { fg = C.color6 }, + NvimTreeSpecialFile = { fg = C.color6 }, + NvimTreeStatusLineNC = { bg = C.none, fg = C.none }, + NvimTreeSymlink = { fg = C.color7 }, + + -- Telescope + TelescopeBorder = { fg = C.color5, bg = C.none }, + TelescopeNormal = { fg = C.foreground, bg = C.none }, + TelescopeSelection = { fg = C.none, bg = C.color2 }, + + -- treesitter + -- These groups are for the neovim tree-sitter highlights. + -- As of writing, tree-sitter support is a WIP, group names may color5. + -- By default, most of these groups link to an appropriate Vim group, + -- TSError -> Error for example, so you do not have to define these unless + -- you explicitly want to support Treesitter's improved syntax awareness. + + -- TSAnnotation = { }; -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information. + -- TSAttribute = { }; -- (unstable) TODO: docs + -- TSBoolean = { }; -- For booleans. + -- TSCharacter = { }; -- For characters. + -- TSComment = { }; -- For color1 blocks. + TSComment = { fg = C.color8 }, + TSConstructor = { fg = C.color6 }, -- For constructor calls and definitions: `= { }` in Lua, and Java constructors. + TSDanger = { fg = C.none, bg = C.color3 }, + TSNote = { fg = C.none, bg = C.color5 }, + TSWarning = { fg = C.none, bg = C.color5 }, + -- TSConditional = { }; -- For keywords related to conditionnals. + -- TSConstant = { }; -- For constants + -- TSConstBuiltin = { }; -- For constant that are built in the language: `nil` in Lua. + -- TSConstMacro = { }; -- For constants that are defined by macros: `NULL` in C. + -- TSError = { }; -- For syntax/parser errors. + -- TSException = { }; -- For exception related keywords. + TSField = { fg = C.color12 }, -- For fields. + -- TSFloat = { }; -- For floats. + -- TSFunction = { }; -- For function (calls and definitions). + -- TSFuncBuiltin = { }; -- For builtin functions: `table.insert` in Lua. + -- TSFuncMacro = { }; -- For macro defined fuctions (calls and definitions): each `macro_rules` in Rust. + -- TSInclude = { }; -- For includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua. + TSKeyword = { fg = C.color6 }, -- For keywords that don't fall in previous categories. + TSKeywordFunction = { fg = C.color6 }, -- For keywords used to define a fuction. + TSLabel = { fg = C.color7 }, -- For labels: `label:` in C and `:label:` in Lua. + -- TSMethod = { }; -- For method calls and definitions. + -- TSNamespace = { }; -- For identifiers referring to modules and namespaces. + -- TSNone = { }; -- TODO: docs + -- TSNumber = { }; -- For all numbers + TSOperator = { fg = C.color7 }, -- For any operator: `+`, but also `->` and `*` in C. + TSParameter = { fg = C.color5 }, -- For parameters of a function. + -- TSParameterReference= { }; -- For references to parameters of a function. + TSProperty = { fg = C.color4 }, -- Same as `TSField`. + TSPunctDelimiter = { fg = C.color7 }, -- For delimiters ie: `.` + TSPunctBracket = { fg = C.foreground }, -- For brackets and parens. + TSPunctSpecial = { fg = C.color7 }, -- For special punctutation that does not fall in the catagories before. + -- TSRepeat = { }; -- For keywords related to loops. + -- TSString = { }; -- For strings. + TSStringRegex = { fg = C.color7 }, -- For regexes. + TSStringEscape = { fg = C.color6 }, -- For escape characters within a string. + -- TSSymbol = { }; -- For identifiers referring to symbols or atoms. + -- TSType = { }; -- For types. + -- TSTypeBuiltin = { }; -- For builtin types. + TSVariableBuiltin = { fg = C.color11 }, -- Variable names that are defined by the languages, like `this` or `self`. + + -- TSTag = { }; -- Tags like html tag names. + -- TSTagDelimiter = { }; -- Tag delimiter like `<` `>` `/` + -- TSText = { }; -- For strings considered text in a markup language. + TSTextReference = { fg = C.color8 }, + -- TSEmphasis = { }; -- For text to be represented with emphasis. + -- TSUnderline = { }; -- For text to be represented with an underline. + -- TSStrike = { }; -- For strikethrough text. + -- TSTitle = { }; -- Text that is part of a title. + -- TSLiteral = { }; -- Literal text. + -- TSURI = { }; -- Any URI like a link or email. + + -- (brighter) Rainbow + rainbow1 = { fg = my_rainbow()[1] }, + rainbow2 = { fg = my_rainbow()[2] }, + rainbow3 = { fg = my_rainbow()[3] }, + rainbow4 = { fg = my_rainbow()[4] }, + rainbow5 = { fg = my_rainbow()[5] }, + rainbow6 = { fg = my_rainbow()[6] }, + + } +end + +require("neopywal").setup({ + use_palette = 'wallust', + custom_highlights = function(C) + return { + all = highlights(C) + } + end, +}) + +vim.cmd.colorscheme("neopywal") diff --git a/.config/nvim/after/plugin/nvim-cmp.lua b/.config/nvim/after/plugin/nvim-cmp.lua new file mode 100644 index 0000000..40cb605 --- /dev/null +++ b/.config/nvim/after/plugin/nvim-cmp.lua @@ -0,0 +1,74 @@ +local cmp = require'cmp' +local luasnip = require'luasnip' + +local check_backspace = function() + local col = vim.fn.col "." - 1 + return col == 0 or vim.fn.getline("."):sub(col, col):match "%s" +end + +cmp.setup.filetype({ 'tex' } , { + enabled = false +}) + +cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + mapping = cmp.mapping.preset.insert({ + ['<C-b>'] = cmp.mapping.scroll_docs(-4), + ['<C-f>'] = cmp.mapping.scroll_docs(4), + ['<C-Space>'] = cmp.mapping.complete(), + ['<C-c>'] = cmp.mapping.abort(), + ['<CR>'] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + ["<Tab>"] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expandable() then + luasnip.expand() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif check_backspace() then + fallback() + else + fallback() + end + end, { "i", "s", }), + ["<S-Tab>"] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s", }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, -- For luasnip users. + }, { + { name = 'buffer' }, + { name = 'path' }, + { name = 'luasnip', option = { use_show_condition = false } }, + }) +}) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) +}) diff --git a/.config/nvim/after/plugin/toggleterm.lua b/.config/nvim/after/plugin/toggleterm.lua new file mode 100644 index 0000000..61742f6 --- /dev/null +++ b/.config/nvim/after/plugin/toggleterm.lua @@ -0,0 +1,47 @@ +local Terminal = require('toggleterm.terminal').Terminal + +-- lazygit +local lazygit = Terminal:new({ + cmd = 'lazygit', + display_name = 'lazygit', + dir = 'git_dir', + hidden = true, + direction = 'float', + winbar = { enabled = false, }, + float_opts = { + border = 'rounded', + } +}) + +function _lazygit_toggle() + lazygit:toggle() +end + +-- julia +local jlrepl = Terminal:new({ + cmd = 'julia', + on_open = function() + local key = vim.api.nvim_replace_termcodes([[<C-\><C-n><C-w><C-p>]], true, false, true) + vim.api.nvim_feedkeys(key, 'n', false) + vim.keymap.set('n', '<leader>jr', '<cmd>lua _jlrepl_exec()<CR>', { noremap = true, silent = true }) + end, + on_close = function() + vim.keymap.set('n', '<leader>jr', '<Nop>') + end, +}) + +function _jlrepl_exec() + jlrepl:send(string.format('include("%s")', vim.fn.expand('%:p')), true) +end + +function _jlrepl_open() + if not jlrepl:is_open() then + jlrepl:open() + end +end + +-- repl send +local trim_spaces = true +vim.keymap.set("v", "<space>s", function() + require("toggleterm").send_lines_to_terminal("single_line", trim_spaces, { args = vim.v.count }) +end) diff --git a/.config/nvim/after/plugin/treesitter.lua b/.config/nvim/after/plugin/treesitter.lua new file mode 100644 index 0000000..1a5631c --- /dev/null +++ b/.config/nvim/after/plugin/treesitter.lua @@ -0,0 +1,21 @@ +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" (the five listed parsers should always be installed) + ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "julia", "rust", "latex" }, + + -- 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 = { + 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 = true, + }, +} diff --git a/.config/nvim/after/plugin/vimtex.lua b/.config/nvim/after/plugin/vimtex.lua new file mode 100644 index 0000000..28500da --- /dev/null +++ b/.config/nvim/after/plugin/vimtex.lua @@ -0,0 +1,8 @@ +vim.g.vimtex_view_general_viewer = 'zathura' +vim.g.vimtex_quickfix_open_on_warning = 0 +vim.g.vimtex_imaps_enabled = 0 +vim.cmd([[ +let g:vimtex_compiler_latexmk_engines = { + \ '_' : '-shell-escape', + \} +]]) |