-- Read the docs: https://www.lunarvim.org/docs/configuration -- Video Tutorials: https://www.youtube.com/watch?v=sFA9kX-Ud_c&list=PLhoH5vyxr6QqGu0i7tt_XoVK9v-KvZ3m6 -- Forum: https://www.reddit.com/r/lunarvim/ -- Discord: https://discord.com/invite/Xb9B4Ny lvim.plugins = { { "EdenEast/nightfox.nvim", lazy=false, priority=1000 }, { "folke/todo-comments.nvim", dependencies = { "nvim-lua/plenary.nvim" }, opts = { signs = true, -- show icons in the signs column sign_priority = 8, -- sign priority -- keywords recognized as todo comments keywords = { FIX = { icon = " ", color = "error", alt = {"FIXME", "BUG", "FIXIT", "ISSUE"}, }, TODO = { icon = " ", color = "info" }, HACK = { icon = " ", color = "hack" }, WARN = { icon = " ", color = "warning", alt = {"WARNING", "XXX"} }, PERF = { icon = "󰓅 ", color = "perf", alt = {"OPTIM", "PERFORMANCE", "OPTIMIZE"} }, NOTE = { icon = "󱞂 ", color = "hint", alt = {"INFO", "HINT"} }, TEST = { icon = " ", color = "test", alt = {"TESTING", "PASSED"} }, FAILED = { icon = " ", color = "fail" }, }, merge_keywords = true, highlight = { multiline = true, multiline_pattern = "^.", multiline_context = 10, before = "", keyword = "wide", after = "fg", pattern = [[.*<(KEYWORDS)\s*:]], comments_only = true, max_line_len = 400, exclude = {}, }, colors = { error = {"DiagnosticError", "ErrorMsg", "#c94f6d"}, warning = {"DiagnosticWarn", "WarningMsg", "#dbc074"}, info = {"DiagnosticInfo", "#719cd6"}, perf = {"Keyword", "#9d79d6"}, hint = {"DiagnosticHint", "#81b29a"}, default = {"Identifier", "#63cdcf"}, test = {"Func", "#97c2fc"}, fail = {"Builtin3", "#ef7593"}, hack = {"Number", "#f4a261"} }, search = { command = "rg", args = { "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", }, pattern = [[\b(KEYWORDS):]], }, } }, {"uga-rosa/ccc.nvim"}, { "axieax/urlview.nvim", config = function() require('urlview').setup({ default_picker = "telescope" }) end, }, {"nvim-telescope/telescope-ui-select.nvim"}, { 'saecki/crates.nvim', dependencies = { 'nvim-lua/plenary.nvim' }, config = function() require('crates').setup({ src = { cmp = { enabled = true, }, }, }) end, }, {"prochri/telescope-all-recent.nvim"}, {"barrett-ruth/telescope-http.nvim"}, {"nvim-telescope/telescope-frecency.nvim"}, {"HUAHUAI23/telescope-session.nvim"}, {"brookhong/telescope-pathogen.nvim"}, {"nvim-telescope/telescope-project.nvim"}, {"chip/telescope-code-fence.nvim"}, {"chip/telescope-software-licenses.nvim"}, {"nvim-telescope/telescope-media-files.nvim"}, {"nvim-telescope/telescope-fzf-writer.nvim"}, {"nvim-telescope/telescope-symbols.nvim"}, {"cljoly/telescope-repo.nvim"}, {"nvim-telescope/telescope-node-modules.nvim"}, {"bi0ha2ard/telescope-ros.nvim"}, {"luc-tielen/telescope_hoogle"}, {"TC72/telescope-tele-tabby.nvim"}, {"gbrlsnchs/telescope-lsp-handlers.nvim"}, {"dhruvmanila/browser-bookmarks.nvim"}, {"crispgm/telescope-heading.nvim"}, {"xiyaowong/telescope-emoji.nvim"}, {"ghassan0/telescope-glyph.nvim"}, {"kolja/telescope-opds"}, {"edolphin-ydf/goimpl.nvim"}, {"sshelll/telescope-gott.nvim"}, {"AckslD/nvim-neoclip.lua"}, {"danielpieper/telescope-tmuxinator.nvim"}, {"doctorfree/cheatsheet.nvim"}, {"nvim-telescope/telescope-hop.nvim"}, {"fcying/telescope-ctags-outline.nvim"}, {"LinArcX/telescope-command-palette.nvim"}, {"LinArcX/telescope-scriptnames.nvim"}, {"LinArcX/telescope-changes.nvim"}, {"olacin/telescope-cc.nvim"}, {"FeiyouG/command_center.nvim"}, {"nvim-telescope/telescope-file-browser.nvim"}, {"otavioschwanck/telescope-alternate.nvim"}, {"LukasPietzschmann/telescope-tabs"}, {"nat-418/telescope-color-names.nvim"}, {"octarect/telescope-menu.nvim"}, {"debugloop/telescope-undo.nvim"}, {"lpoto/telescope-docker.nvim"}, {"lpoto/telescope-tasks.nvim"}, {"piersolenski/telescope-import.nvim"}, {"cagve/telescope-texsuite"}, {"tyru/open-browser.vim"}, {"tamago324/telescope-openbrowser.nvim"}, {"MattesGroeger/vim-bookmarks"}, {"tom-anders/telescope-vim-bookmarks.nvim"}, {"camgraff/telescope-tmux.nvim"}, {"sindrets/diffview.nvim"}, {"paopaol/telescope-git-diffs.nvim"}, {"tsakirist/telescope-lazy.nvim"}, {"preservim/vim-pencil"}, {"pocco81/high-str.nvim"}, { "nvim-neotest/neotest", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", "antoinemadec/FixCursorHold.nvim", "nvim-neotest/neotest-python", "nvim-neotest/neotest-plenary", "akinsho/neotest-go", "haydenmeade/neotest-jest", "marilari88/neotest-vitest", "thenbe/neotest-playwright", "olimorris/neotest-rspec", "zidhuss/neotest-minitest", "sidlatau/neotest-dart", "shunsambongi/neotest-testthat", "olimorris/neotest-phpunit", "theutz/neotest-pest", "rouge8/neotest-rust", "jfpedroza/neotest-elixir", "llllvvuu/neotest-foundry", "lawrence-laz/neotest-zig", "nvim-neotest/neotest-vim-test", "vim-test/vim-test" }, config = function() require("neotest").setup({ adapters = { require("neotest-python")({ dap = { justMyCode = false }, }), require("neotest-plenary"), require("neotest-vim-test"), require("neotest-go"), require("neotest-jest"), require("neotest-vitest"), require("neotest-playwright"), require("neotest-rspec"), require("neotest-minitest"), require("neotest-dart"), require("neotest-testthat"), require("neotest-phpunit"), require("neotest-pest"), require("neotest-rust"), require("neotest-elixir"), require("neotest-foundry"), require("neotest-zig"), }, }) end, }, {"dhruvasagar/vim-table-mode"}, {"salkin-mada/openscad.nvim", event="BufRead"}, {"ChiliConSql/neovim-stylus", event="BufRead"}, {"digitaltoad/vim-pug", event="BufRead"}, {"pirmd/gemini.vim", event="BufRead"}, {"vmchale/ion-vim", event="BufRead"}, {"dpelle/vim-Grammalecte"}, {"vigoux/LanguageTool.nvim"}, {"chaimleib/vim-renpy", event="BufRead"}, {"meatballs/vim-xonsh", event="BufRead"} } vim.opt.clipboard = 'unnamedplus' vim.opt.tabstop = 4 vim.opt.softtabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true vim.opt.number = false vim.opt.cursorline = true vim.opt.splitbelow = true vim.opt.splitright = true vim.opt.termguicolors = true vim.opt.showmode = false vim.opt.textwidth=78 vim.opt.colorcolumn = "29,30,71,72,79,80,119,120,139,140" vim.opt.incsearch = true vim.opt.hlsearch = false vim.opt.ignorecase = true vim.opt.smartcase = true vim.opt.wrap = true vim.opt.fdm = 'indent' vim.opt.listchars = {eol = '¶', tab = '⁝‧' , extends = '…', precedes= '…', trail = '˽', nbsp = '⎵' } vim.opt.showbreak = "……" vim.opt.list = true vim.opt.spelllang = 'fr' vim.g.grammalecte_cli_py = '/usr/bin/grammalecte-cli' vim.g.languagetool_jar = 'REPLACEHOME/.bin/languagetool-commandline.jar' local opts = {noremap=true, silent=true} local crates = require('crates') vim.keymap.set('n', '', "gt", opts) vim.keymap.set('n', '', "gT", opts) vim.keymap.set('v', 'gle', ":'<,'>!lou_translate en-us-brf.dis,braille-patterns.cti", opts) vim.keymap.set('v', 'gLe', ":'<,'>!lou_translate --backward en-us-brf.dis,braille-patterns.cti", opts) vim.keymap.set('v', 'glf', ":'<,'>!lou_translate fr-bfu-comp6.utb,braille-patterns.cti", opts) vim.keymap.set('v', 'gLf', ":'<,'>!lou_translate --backward fr-bfu-comp6.utb,braille-patterns.cti", opts) vim.keymap.set("n", "\\u", "UrlView", { desc = "View buffer URLs" }) vim.keymap.set("n", "\\U", "UrlView lazy", { desc = "View Packer plugin URLs" }) vim.keymap.set("v", "\\1", ":HSHighlight 1", { desc = "Highlight"}) vim.keymap.set("v", "\\2", ":HSHighlight 2", { desc = "Highlight"}) vim.keymap.set("v", "\\3", ":HSHighlight 3", { desc = "Highlight"}) vim.keymap.set("v", "\\4", ":HSHighlight 4", { desc = "Highlight"}) vim.keymap.set("v", "\\5", ":HSHighlight 5", { desc = "Highlight"}) vim.keymap.set("v", "\\6", ":HSHighlight 6", { desc = "Highlight"}) vim.keymap.set("v", "\\7", ":HSHighlight 7", { desc = "Highlight"}) vim.keymap.set("v", "\\8", ":HSHighlight 8", { desc = "Highlight"}) vim.keymap.set("v", "\\9", ":HSHighlight 9", { desc = "Highlight"}) vim.keymap.set("v", "\\0", ":HSHighlight 0", { desc = "Highlight"}) vim.keymap.set("n", "\\r", ":HSRmHighlight rm_all", { desc = "Remove highlight"}) vim.keymap.set("v", "\\r", ":HSRmHighlight", { desc = "Remove highlight"}) vim.keymap.set('n', 'ct', crates.toggle, opts) vim.keymap.set('n', 'cr', crates.reload, opts) vim.keymap.set('n', 'cv', crates.show_versions_popup, opts) vim.keymap.set('n', 'cf', crates.show_features_popup, opts) vim.keymap.set('n', 'cd', crates.show_dependencies_popup, opts) vim.keymap.set('n', 'cu', crates.update_crate, opts) vim.keymap.set('v', 'cu', crates.update_crates, opts) vim.keymap.set('n', 'ca', crates.update_all_crates, opts) vim.keymap.set('n', 'cU', crates.upgrade_crate, opts) vim.keymap.set('v', 'cU', crates.upgrade_crates, opts) vim.keymap.set('n', 'cA', crates.upgrade_all_crates, opts) vim.keymap.set('n', 'ce', crates.expand_plain_crate_to_inline_table, opts) vim.keymap.set('n', 'cE', crates.extract_crate_into_table, opts) vim.keymap.set('n', 'cH', crates.open_homepage, opts) vim.keymap.set('n', 'cR', crates.open_repository, opts) vim.keymap.set('n', 'cD', crates.open_documentation, opts) vim.keymap.set('n', 'cC', crates.open_crates_io, opts) lvim.colorscheme="nightfox" lvim.transparent_window = true vim.diagnostic.config({ virtual_text = false }) vim.o.updatetime = 2500 vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]] local high_str = require("high-str") high_str.setup({ verbosity = 0, saving_path = "REPLACEHOME/.local/share/lvim/highstr/", highlight_colors = { -- color_id = {"bg_hex_code",<"fg_hex_code"/"smart">} color_0 = {"#9d79d6", "smart"}, -- Cosmic charcoal color_1 = {"#719cd6", "smart"}, -- Pastel yellow color_2 = {"#81b29a", "smart"}, -- Aqua menthe color_3 = {"#dbc074", "smart"}, -- Proton purple color_4 = {"#f4a261", "smart"}, -- Orange red color_5 = {"#c94f6d", "smart"}, -- Office green color_6 = {"#d67ad2", "smart"}, -- Just blue color_7 = {"#dfdfe0", "smart"}, -- Blush pink color_8 = {"#63cdcf", "smart"}, -- Cosmic latte color_9 = {"#71839b", "smart"}, -- Fallow brown } })