From b7ac0d5d1dac7930268155f7a0ad400450cc177a Mon Sep 17 00:00:00 2001 From: Noam Favier <95364866+NoamFav@users.noreply.github.com> Date: Wed, 19 Feb 2025 09:26:24 +0100 Subject: [PATCH 01/83] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 38 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 434d2ddf6c3301e1f425eca2e3aa79062eb77ff8 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Tue, 25 Feb 2025 18:55:50 +0100 Subject: [PATCH 02/83] minor updates --- lua/plugins.lua | 34 ---------------------------------- lua/plugins/blink-cmp.lua | 1 - lua/plugins/colorschemes.lua | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 35 deletions(-) create mode 100644 lua/plugins/colorschemes.lua diff --git a/lua/plugins.lua b/lua/plugins.lua index 0266c43..e78fc42 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -1,38 +1,4 @@ return { - -- Color scheme - { - "navarasu/onedark.nvim", - opts = { - transparent = true, - styles = { - sidebars = "transparent", - floats = "transparent", - }, - }, - }, - { - "akai54/2077.nvim", - }, - { - "sainnhe/sonokai", - opts = { - transparent = true, - styles = { - sidebars = "transparent", - floats = "transparent", - }, - }, - }, - { - "folke/tokyonight.nvim", - opts = { - transparent = true, - styles = { - sidebars = "transparent", - floats = "transparent", - }, - }, - }, { "maxmellon/vim-jsx-pretty" }, diff --git a/lua/plugins/blink-cmp.lua b/lua/plugins/blink-cmp.lua index 911d9d1..ca510cc 100644 --- a/lua/plugins/blink-cmp.lua +++ b/lua/plugins/blink-cmp.lua @@ -258,7 +258,6 @@ return { require("luasnip").jump(direction) end, } - -- The default preset used by lazyvim accepts completions with enter -- I don't like using enter because if on markdown and typing -- something, but you want to go to the line below, if you press enter, diff --git a/lua/plugins/colorschemes.lua b/lua/plugins/colorschemes.lua new file mode 100644 index 0000000..8352e86 --- /dev/null +++ b/lua/plugins/colorschemes.lua @@ -0,0 +1,36 @@ +return { + { + "navarasu/onedark.nvim", + opts = { + transparent = true, + styles = { + sidebars = "transparent", + floats = "transparent", + }, + }, + }, + { + "akai54/2077.nvim", + }, + { + "sainnhe/sonokai", + opts = { + transparent = true, + styles = { + sidebars = "transparent", + floats = "transparent", + }, + }, + }, + { + "folke/tokyonight.nvim", + opts = { + transparent = true, + styles = { + sidebars = "transparent", + floats = "transparent", + }, + }, + }, + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, +} From 2554d33b6065cacd22d732879b8d5ee3d7927cdb Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Tue, 25 Feb 2025 19:23:13 +0100 Subject: [PATCH 03/83] added more colorscheme --- init.lua | 2 +- lazy-lock.json | 1 + lua/plugins/catpuccin.lua | 38 ----------- lua/plugins/colorschemes.lua | 122 ++++++++++++++++++++++++++++++++++- 4 files changed, 123 insertions(+), 40 deletions(-) delete mode 100644 lua/plugins/catpuccin.lua diff --git a/init.lua b/init.lua index 0656e22..688b146 100644 --- a/init.lua +++ b/init.lua @@ -11,7 +11,7 @@ if not vim.loop.fs_stat(lazypath) then end vim.g.mapleader = " " - +vim.opt.termguicolors = true vim.opt.rtp:prepend(lazypath) require("lazy").setup("plugins") diff --git a/lazy-lock.json b/lazy-lock.json index 12974de..37e0ae6 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -9,6 +9,7 @@ "blink.cmp": { "branch": "main", "commit": "82d0720e7d6931c4fc7e3b37e536d1c37cb1ca6f" }, "catppuccin": { "branch": "main", "commit": "4bb938bbba41d306db18bf0eb0633a5f28fd7ba0" }, "copilot.vim": { "branch": "release", "commit": "cd7f01009fb7b30e22840cadc4faad88b05c6eef" }, + "cyberdream.nvim": { "branch": "main", "commit": "b02c977aaf0283a0ec7a0184e6a459366325c93b" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "formatter.nvim": { "branch": "master", "commit": "eb89a1f3e079f1b9680bc7293b75fffccb5e1598" }, "git-blame.nvim": { "branch": "master", "commit": "2883a7460f611c2705b23f12d58d398d5ce6ec00" }, diff --git a/lua/plugins/catpuccin.lua b/lua/plugins/catpuccin.lua deleted file mode 100644 index c8b04fd..0000000 --- a/lua/plugins/catpuccin.lua +++ /dev/null @@ -1,38 +0,0 @@ -return { - "catppuccin/nvim", - name = "catppuccin", - lazy = true, - opts = { - flavour = "mocha", - styles = { - comments = { "italic" }, - functions = { "italic" }, - keywords = { "italic" }, - variables = { "NONE" }, - }, - integrations = { - treesitter = true, - native_lsp = { - enabled = true, - virtual_text = { - errors = "italic", - hints = "italic", - warnings = "italic", - information = "italic", - }, - underlines = { - errors = "underline", - hints = "underline", - warnings = "underline", - information = "underline", - }, - }, - lsp_trouble = true, - cmp = true, - telescope = true, - gitsigns = true, - nvimtree = true, - which_key = true, - }, - }, -} diff --git a/lua/plugins/colorschemes.lua b/lua/plugins/colorschemes.lua index 8352e86..6c33738 100644 --- a/lua/plugins/colorschemes.lua +++ b/lua/plugins/colorschemes.lua @@ -32,5 +32,125 @@ return { }, }, }, - { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, + { + "scottmckendry/cyberdream.nvim", + lazy = false, + priority = 1000, + opts = { + -- Set light or dark variant + variant = "default", -- use "light" for the light variant. Also accepts "auto" to set dark or light colors based on the current value of `vim.o.background` + + -- Enable transparent background + transparent = true, + + -- Reduce the overall saturation of colours for a more muted look + saturation = 1, -- accepts a value between 0 and 1. 0 will be fully desaturated (greyscale) and 1 will be the full color (default) + + -- Enable italics comments + italic_comments = false, + + -- Replace all fillchars with ' ' for the ultimate clean look + hide_fillchars = false, + + -- Apply a modern borderless look to pickers like Telescope, Snacks Picker & Fzf-Lua + borderless_pickers = false, + + -- Set terminal colors used in `:terminal` + terminal_colors = true, + + -- Improve start up time by caching highlights. Generate cache with :CyberdreamBuildCache and clear with :CyberdreamClearCache + cache = false, + + -- Override highlight groups with your own colour values + highlights = { + -- Highlight groups to override, adding new groups is also possible + -- See `:h highlight-groups` for a list of highlight groups or run `:hi` to see all groups and their current values + + -- Example: + Comment = { fg = "#696969", bg = "NONE", italic = true }, + + -- More examples can be found in `lua/cyberdream/extensions/*.lua` + }, + + -- Override a highlight group entirely using the built-in colour palette + overrides = function(colors) -- NOTE: This function nullifies the `highlights` option + -- Example: + return { + Comment = { fg = colors.green, bg = "NONE", italic = true }, + ["@property"] = { fg = colors.magenta, bold = true }, + } + end, + + -- Override a color entirely + colors = { + -- For a list of colors see `lua/cyberdream/colours.lua` + -- Example: + bg = "#000000", + green = "#00ff00", + magenta = "#ff00ff", + }, + + -- Disable or enable colorscheme extensions + extensions = { + telescope = true, + notify = true, + mini = true, + }, + }, + }, + { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + opts = { + flavour = "auto", -- latte, frappe, macchiato, mocha + background = { -- :h background + light = "latte", + dark = "mocha", + }, + transparent_background = true, -- disables setting the background color. + show_end_of_buffer = false, -- shows the '~' characters after the end of buffers + term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`) + dim_inactive = { + enabled = false, -- dims the background color of inactive window + shade = "dark", + percentage = 0.15, -- percentage of the shade to apply to the inactive window + }, + no_italic = false, -- Force no italic + no_bold = false, -- Force no bold + no_underline = false, -- Force no underline + styles = { -- Handles the styles of general hi groups (see `:h highlight-args`): + comments = { "italic" }, -- Change the style of comments + conditionals = { "italic" }, + loops = {}, + functions = {}, + keywords = {}, + strings = {}, + variables = {}, + numbers = {}, + booleans = {}, + properties = {}, + types = {}, + operators = {}, + -- miscs = {}, -- Uncomment to turn off hard-coded styles + }, + color_overrides = {}, + custom_highlights = {}, + default_integrations = true, + }, + integrations = { + blink_cmp = true, + nvimtree = true, + treesitter = true, + notify = true, + harpoon = true, + indent_blankline = true, + mason = true, + copilot_vim = true, + snacks = { + enabled = true, + indent_scope_color = "", + }, + }, + }, } From 2d356b4941943605b9d99e9c3233a6b35677cac8 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Fri, 28 Feb 2025 23:18:49 +0100 Subject: [PATCH 04/83] just an update --- lazy-lock.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 37e0ae6..6f8e1e9 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -4,10 +4,10 @@ "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, "apple_music.nvim": { "branch": "main", "commit": "8a21cd4731384d5628c3e2c0b2b88ff5c9e674c1" }, "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, - "blink-cmp-dictionary": { "branch": "master", "commit": "97c060e0751e95d2a1fbffe2871712bb676092ab" }, + "blink-cmp-dictionary": { "branch": "master", "commit": "3d49f934059fb59f657b547d90a526d00540634e" }, "blink-emoji.nvim": { "branch": "master", "commit": "a77aebc092ebece1eed108f301452ae774d6b67a" }, - "blink.cmp": { "branch": "main", "commit": "82d0720e7d6931c4fc7e3b37e536d1c37cb1ca6f" }, - "catppuccin": { "branch": "main", "commit": "4bb938bbba41d306db18bf0eb0633a5f28fd7ba0" }, + "blink.cmp": { "branch": "main", "commit": "1e96d6451805209357c4fec2f7b29f916d560f9f" }, + "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, "copilot.vim": { "branch": "release", "commit": "cd7f01009fb7b30e22840cadc4faad88b05c6eef" }, "cyberdream.nvim": { "branch": "main", "commit": "b02c977aaf0283a0ec7a0184e6a459366325c93b" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, @@ -19,22 +19,22 @@ "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, "impatient.nvim": { "branch": "main", "commit": "47302af74be7b79f002773011f0d8e85679a7618" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, - "lazy.nvim": { "branch": "main", "commit": "a8c6db5da7bd382094606340eed015d14fbb5654" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, - "lspsaga.nvim": { "branch": "main", "commit": "da8a66c53241876bba140980469876db3a183604" }, + "lspsaga.nvim": { "branch": "main", "commit": "6063935cf68de9aa6dd79f8e1caf5df0a9385de3" }, "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, - "markview.nvim": { "branch": "main", "commit": "f1e2a57388b61fff8e9d7519ce05cee27a59a57e" }, + "markview.nvim": { "branch": "main", "commit": "386a98e88e021a79df7f0494d8eb4145a78f59ae" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "374c78d3ebb5c53f43ea6bd906b6587b5e899b9e" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "5639d58a3d11ff7c05c8e31e159bfedae55d7961" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, "nerdicons.nvim": { "branch": "main", "commit": "2d257ff9b00b7d1510704e0a565a6a7ede76b79a" }, "noisemachine.nvim": { "branch": "main", "commit": "18b81cdf914bc400e56b1f95a4fde3eab03dd758" }, "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, "nvim-code-action-menu": { "branch": "main", "commit": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b" }, - "nvim-lspconfig": { "branch": "master", "commit": "99c75820f2606b6b446cad7c75ec2ef7ee8a1317" }, + "nvim-lspconfig": { "branch": "master", "commit": "62c5fac4c59be9e41b92ef62f3bb0fbdae3e2d9e" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, - "nvim-treesitter": { "branch": "master", "commit": "93ce9feb4fabbb37b3e7f47d80f27be778f4d956" }, + "nvim-treesitter": { "branch": "master", "commit": "99487eb34a397befce8182ff63347a21c5f4b881" }, "nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" }, "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "ec1a2431f8872f650a85ed71c24f0715df2e49c2" }, @@ -42,7 +42,7 @@ "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "semantic-highlight.vim": { "branch": "master", "commit": "7e141c2b7be0f2600276004fd2e7382a3fa0f690" }, - "snacks.nvim": { "branch": "main", "commit": "bd0f46be9ae963d1a2ea12e53aedc633e1d726db" }, + "snacks.nvim": { "branch": "main", "commit": "07f4b9adff7af45a7e0eb22d85a422e32ed4b1ca" }, "sonokai": { "branch": "master", "commit": "9679341d4141ed81376f2bdf5e69b78dc348d212" }, "tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" }, "tailwind-tools": { "branch": "master", "commit": "abe7368392345c53174979c2cf033e832de80ef8" }, From fa64620ec74fbe42a67e40bfec46e0b5d2136ae5 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Sun, 2 Mar 2025 00:11:02 +0100 Subject: [PATCH 05/83] again an update --- lazy-lock.json | 12 ++++++------ lua/plugins/blink-cmp.lua | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 6f8e1e9..5215add 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -6,7 +6,7 @@ "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, "blink-cmp-dictionary": { "branch": "master", "commit": "3d49f934059fb59f657b547d90a526d00540634e" }, "blink-emoji.nvim": { "branch": "master", "commit": "a77aebc092ebece1eed108f301452ae774d6b67a" }, - "blink.cmp": { "branch": "main", "commit": "1e96d6451805209357c4fec2f7b29f916d560f9f" }, + "blink.cmp": { "branch": "main", "commit": "f29498e5f0f9a78bddb9d1c03c67e213896291d3" }, "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, "copilot.vim": { "branch": "release", "commit": "cd7f01009fb7b30e22840cadc4faad88b05c6eef" }, "cyberdream.nvim": { "branch": "main", "commit": "b02c977aaf0283a0ec7a0184e6a459366325c93b" }, @@ -31,10 +31,10 @@ "noisemachine.nvim": { "branch": "main", "commit": "18b81cdf914bc400e56b1f95a4fde3eab03dd758" }, "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, "nvim-code-action-menu": { "branch": "main", "commit": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b" }, - "nvim-lspconfig": { "branch": "master", "commit": "62c5fac4c59be9e41b92ef62f3bb0fbdae3e2d9e" }, + "nvim-lspconfig": { "branch": "master", "commit": "a3f8422b752e03334dbaf4a46940d8aee0acdebf" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, - "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, - "nvim-treesitter": { "branch": "master", "commit": "99487eb34a397befce8182ff63347a21c5f4b881" }, + "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" }, + "nvim-treesitter": { "branch": "master", "commit": "c1efc9a9058bb54cfcb6f0a4fc14a4ac8a66bdaa" }, "nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" }, "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "ec1a2431f8872f650a85ed71c24f0715df2e49c2" }, @@ -42,7 +42,7 @@ "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, "semantic-highlight.vim": { "branch": "master", "commit": "7e141c2b7be0f2600276004fd2e7382a3fa0f690" }, - "snacks.nvim": { "branch": "main", "commit": "07f4b9adff7af45a7e0eb22d85a422e32ed4b1ca" }, + "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "sonokai": { "branch": "master", "commit": "9679341d4141ed81376f2bdf5e69b78dc348d212" }, "tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" }, "tailwind-tools": { "branch": "master", "commit": "abe7368392345c53174979c2cf033e832de80ef8" }, @@ -55,6 +55,6 @@ "vim-gradle": { "branch": "master", "commit": "508629fa2a3be1b2052e4e553593f60d12dfc090" }, "vim-jsx-pretty": { "branch": "master", "commit": "6989f1663cc03d7da72b5ef1c03f87e6ddb70b41" }, "vim-matlab": { "branch": "master", "commit": "eafe639be77454b6bf46f149a7695de773b702b9" }, - "vimtex": { "branch": "master", "commit": "096a0450261abccb7944630fae66788712be46a8" }, + "vimtex": { "branch": "master", "commit": "31250a81132181577a5abe800fac92879cc61e0d" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/lua/plugins/blink-cmp.lua b/lua/plugins/blink-cmp.lua index ca510cc..9922a17 100644 --- a/lua/plugins/blink-cmp.lua +++ b/lua/plugins/blink-cmp.lua @@ -40,7 +40,6 @@ return { end return true end - -- NOTE: The new way to enable LuaSnip -- Merge custom sources with the existing ones from lazyvim -- NOTE: by default lazyvim already includes the lazydev source, so not adding it here again From d49741ee0326b7a64f1922e6a9db2e111a4a7547 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:07:12 +0200 Subject: [PATCH 06/83] removed noise machine until fixed --- lazy-lock.json | 39 +++++++++++++++++++-------------------- lua/plugins.lua | 1 - 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 5215add..c82be95 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -6,37 +6,36 @@ "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, "blink-cmp-dictionary": { "branch": "master", "commit": "3d49f934059fb59f657b547d90a526d00540634e" }, "blink-emoji.nvim": { "branch": "master", "commit": "a77aebc092ebece1eed108f301452ae774d6b67a" }, - "blink.cmp": { "branch": "main", "commit": "f29498e5f0f9a78bddb9d1c03c67e213896291d3" }, + "blink.cmp": { "branch": "main", "commit": "ea29ab1620de5e61284abc01ae39e56df5a5fe53" }, "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, - "copilot.vim": { "branch": "release", "commit": "cd7f01009fb7b30e22840cadc4faad88b05c6eef" }, - "cyberdream.nvim": { "branch": "main", "commit": "b02c977aaf0283a0ec7a0184e6a459366325c93b" }, + "copilot.vim": { "branch": "release", "commit": "a9228e015528c9307890c48083c925eb98a64a79" }, + "cyberdream.nvim": { "branch": "main", "commit": "c07db2e6cab236ead328afc2ae4e0e1e1c69cd68" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "formatter.nvim": { "branch": "master", "commit": "eb89a1f3e079f1b9680bc7293b75fffccb5e1598" }, - "git-blame.nvim": { "branch": "master", "commit": "2883a7460f611c2705b23f12d58d398d5ce6ec00" }, + "git-blame.nvim": { "branch": "master", "commit": "b12da2156ec1c3f53f42c129201ff0bfed69c86e" }, "git-conflict.nvim": { "branch": "main", "commit": "a1badcd070d176172940eb55d9d59029dad1c5a6" }, - "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" }, - "glow.nvim": { "branch": "main", "commit": "238070a686c1da3bccccf1079700eb4b5e19aea4" }, + "gitsigns.nvim": { "branch": "main", "commit": "3c76f7fabac723aa682365ef782f88a83ccdb4ac" }, + "glow.nvim": { "branch": "main", "commit": "5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, "impatient.nvim": { "branch": "main", "commit": "47302af74be7b79f002773011f0d8e85679a7618" }, - "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, + "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, - "lspsaga.nvim": { "branch": "main", "commit": "6063935cf68de9aa6dd79f8e1caf5df0a9385de3" }, - "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, + "lspsaga.nvim": { "branch": "main", "commit": "778d56ff9b387dacd14ae648ed5604394b486f51" }, + "lualine.nvim": { "branch": "master", "commit": "1517caa8fff05e4b4999857319d3b0609a7f57fa" }, "markview.nvim": { "branch": "main", "commit": "386a98e88e021a79df7f0494d8eb4145a78f59ae" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "5639d58a3d11ff7c05c8e31e159bfedae55d7961" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "4aa03a08c3705e622f2e7886783fd450f7749cdd" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, "nerdicons.nvim": { "branch": "main", "commit": "2d257ff9b00b7d1510704e0a565a6a7ede76b79a" }, - "noisemachine.nvim": { "branch": "main", "commit": "18b81cdf914bc400e56b1f95a4fde3eab03dd758" }, - "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, + "nvim-autopairs": { "branch": "master", "commit": "84a81a7d1f28b381b32acf1e8fe5ff5bef4f7968" }, "nvim-code-action-menu": { "branch": "main", "commit": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b" }, - "nvim-lspconfig": { "branch": "master", "commit": "a3f8422b752e03334dbaf4a46940d8aee0acdebf" }, + "nvim-lspconfig": { "branch": "master", "commit": "40f120c10ea4b87311175539a183c3b75eab95a3" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, - "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" }, - "nvim-treesitter": { "branch": "master", "commit": "c1efc9a9058bb54cfcb6f0a4fc14a4ac8a66bdaa" }, + "nvim-tree.lua": { "branch": "master", "commit": "c3c193594213c5e2f89ec5d7729cad805f76b256" }, + "nvim-treesitter": { "branch": "master", "commit": "997288c55253e27f782d991099490f80205d65bf" }, "nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" }, - "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, + "nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" }, "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "ec1a2431f8872f650a85ed71c24f0715df2e49c2" }, "onedark.nvim": { "branch": "master", "commit": "67a74c275d1116d575ab25485d1bfa6b2a9c38a6" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, @@ -45,16 +44,16 @@ "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "sonokai": { "branch": "master", "commit": "9679341d4141ed81376f2bdf5e69b78dc348d212" }, "tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" }, - "tailwind-tools": { "branch": "master", "commit": "abe7368392345c53174979c2cf033e832de80ef8" }, + "tailwind-tools": { "branch": "master", "commit": "2bd8ef6e96d07df83c0b785c40416b98607b2f93" }, "telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" }, - "telescope.nvim": { "branch": "master", "commit": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4" }, + "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "toggleterm.nvim": { "branch": "main", "commit": "e76134e682c1a866e3dfcdaeb691eb7b01068668" }, + "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" }, "tokyonight.nvim": { "branch": "main", "commit": "c8ea87cd34b0267c44a67e90ff8f6e7d6af46ff9" }, "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, "vim-gradle": { "branch": "master", "commit": "508629fa2a3be1b2052e4e553593f60d12dfc090" }, "vim-jsx-pretty": { "branch": "master", "commit": "6989f1663cc03d7da72b5ef1c03f87e6ddb70b41" }, "vim-matlab": { "branch": "master", "commit": "eafe639be77454b6bf46f149a7695de773b702b9" }, - "vimtex": { "branch": "master", "commit": "31250a81132181577a5abe800fac92879cc61e0d" }, + "vimtex": { "branch": "master", "commit": "a531f6bf9ce61172e4ea8eea2ecbf59fd08c232a" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/lua/plugins.lua b/lua/plugins.lua index e78fc42..71e2cbf 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -50,5 +50,4 @@ return { { "OXY2DEV/markview.nvim" }, { "NoamFav/apple_music.nvim" }, - { "Matchiye/noisemachine.nvim", dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" } }, } From a5b98b41097ffd51f4d3be62aaf09ba189685db8 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Thu, 10 Apr 2025 22:50:40 +0200 Subject: [PATCH 07/83] disable copilot by default --- init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init.lua b/init.lua index 688b146..0618031 100644 --- a/init.lua +++ b/init.lua @@ -17,6 +17,8 @@ require("lazy").setup("plugins") vim.cmd("source ~/.config/nvim/keymaps.vim") +vim.g.copilot_enabled = false + vim.diagnostic.config({ virtual_text = true, update_in_insert = true, From 9c150d7b1ff9b86895485727ffee3ea0156987a5 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Wed, 16 Apr 2025 19:28:57 +0200 Subject: [PATCH 08/83] updated Readme --- README.md | 1050 +++++++++++++++++++++++++---------------------------- 1 file changed, 499 insertions(+), 551 deletions(-) diff --git a/README.md b/README.md index 942706a..ae5ae7d 100644 --- a/README.md +++ b/README.md @@ -1,356 +1,284 @@ -# Neovim Configuration +
-This repository contains my Neovim setup, optimized for development with rich features like LSP support, auto-completion, Git integration, file exploration, and more. The configuration leverages `lazy.nvim` for efficient plugin management and `mason.nvim` for managing language servers. Below is an overview of the features, plugin list, installation instructions, and specific plugin configurations. +# 🚀 Neovim Configuration -## Features +[![Neovim](https://img.shields.io/badge/NeoVim-%2357A143.svg?&style=for-the-badge&logo=neovim&logoColor=white)](https://neovim.io/) +[![Lua](https://img.shields.io/badge/Lua-2C2D72?style=for-the-badge&logo=lua&logoColor=white)](https://www.lua.org/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT) -1. **Plugin Management** +**A powerful, feature-rich Neovim setup for modern development** - - **Lazy Loading and Performance**: Uses `lazy.nvim` to efficiently load plugins only when required, speeding up startup time and optimizing resource usage. +![Neovim Screenshot](https://i.imgur.com/placeholder-image.png) -2. **LSP and Autocompletion** +
- - **LSP Support**: Powered by `mason.nvim` and `nvim-lspconfig`, providing autocompletion, diagnostics, and jump-to-definition for multiple programming languages. - - **Autocompletion with Snippets**: `nvim-cmp` offers intelligent autocompletion, integrated with `LuaSnip` and sources like buffer, path, and LSP. - - **AI Code Suggestions**: `copilot.vim` and `ChatGPT.nvim` provide AI-driven autocompletion and code suggestions. +--- -3. **Code Navigation and Search** +## 📚 Overview - - **Fuzzy Finder**: `telescope.nvim` enables quick file, buffer, and symbol searching, with additional media file search via `telescope-media-files.nvim`. - - **File Explorer**: `nvim-tree.lua` provides a navigable file tree with icons for files and folders. - - **Semantic Highlighting**: `semantic-highlight.vim` adds semantic code highlighting, enhancing code readability and structure understanding. - - **Tag Navigation**: `tagbar` plugin offers a sidebar for navigating functions, classes, and other tags in your code. +This repository contains a comprehensive Neovim configuration optimized for development with rich features including LSP support, intelligent code completion, Git integration, and much more. The setup leverages `lazy.nvim` for efficient plugin management and `mason.nvim` for handling language servers. -4. **Git Integration** +
+✨ Key highlights - - **Git Blame**: `git-blame.nvim` displays blame information inline, showing who last modified each line. - - **Git Diff and Review**: `diffview.nvim` provides a visual diff of changes and review capabilities within Neovim. - - **Conflict Management**: `git-conflict.nvim` helps manage and resolve Git merge conflicts directly in Neovim. - - **LazyGit Integration**: `lazygit.nvim` provides an interface to use LazyGit directly within Neovim. +- **Modern plugin manager** with lazy-loading for fast startup +- **Intelligent code completion** with LSP integration +- **AI-powered assistance** via Copilot and ChatGPT integration +- **Beautiful UI** with customizable themes and status line +- **Git integration** for seamless version control workflow +- **Enhanced productivity** with quick navigation and search +- **Specialized language support** for diverse programming needs -5. **Editing and Productivity Enhancements** +
- - **Commenting**: `Comment.nvim` allows easy toggling of comments in code. - - **Auto-Save**: `auto-save.nvim` automatically saves files when they are modified. - - **Auto Pairs**: `nvim-autopairs` automatically closes brackets and quotes as you type. - - **Indentation Guides**: `indent-blankline.nvim` shows indentation levels for better code structure visualization. - - **Todo Management**: `todo-comments.nvim` highlights and organizes TODO comments for easy tracking of tasks. - - **Session Management**: `impatient.nvim` caches plugins for faster startup times. +--- -6. **UI and Aesthetic Customization** +## 🌟 Features - - **Status Line**: `lualine.nvim` provides a customizable and minimal status line. - - **Icons**: `nvim-web-devicons` adds file-type icons, enhancing the look of Neovim's interface. - - **Color Schemes**: Includes themes like `onedark.nvim`, `sonokai`, and `2077.nvim` for aesthetic customization. - - **Dashboard**: `dashboard-nvim` provides a start screen with quick access to frequently used files and sessions. - - **Notifications**: `nvim-notify` manages pop-up notifications with customizable visuals. +
+🧩 Plugin Management -7. **Terminal Integration** +- **Lazy Loading**: Uses `lazy.nvim` to efficiently load plugins only when required +- **Performance Optimization**: Minimizes startup time and resource usage +- **Module Organization**: Clean, modular configuration structure - - **Toggleable Terminal**: `toggleterm.nvim` adds a terminal inside Neovim that can be toggled on and off with a keybind. +
-8. **Specialized Language Support** +
+🧠 LSP and Autocompletion - - **LaTeX Support**: `vimtex` provides rich LaTeX support for compiling and navigating LaTeX projects. - - **Matlab Support**: `vim-matlab` offers Matlab language support, including syntax highlighting and file structure navigation. - - **JavaScript JSX Enhancements**: `vim-jsx-pretty` improves JSX syntax highlighting for JavaScript projects. +- **LSP Support**: Powered by `mason.nvim` and `nvim-lspconfig` +- **Intelligent Autocompletion**: Using `nvim-cmp` with multiple sources +- **Snippet Integration**: Enhanced with `LuaSnip` for code snippets +- **AI Coding Assistants**: + - `copilot.vim` for AI-powered code suggestions + - `ChatGPT.nvim` for AI-driven assistance -9. **Other Utilities** - - **Snippet Management**: `vim-vsnip` manages code snippets for quick insertion. - - **Media File Search**: `telescope-media-files.nvim` allows searching within media files. - - **Which Key**: `which-key.nvim` shows possible keybindings, improving discoverability of shortcuts. +
-## Installation +
+🔍 Code Navigation and Search -### Prerequisites +- **Fuzzy Finding**: `telescope.nvim` for quick file and symbol search +- **File Explorer**: `nvim-tree.lua` with file icons and navigation +- **Semantic Highlighting**: Enhanced code readability with `semantic-highlight.vim` +- **Tag Navigation**: Code structure browsing with `tagbar` +- **Fast File Switching**: Quick file marking and jumping with `harpoon` -#### Neovim +
-Ensure you have **Neovim v0.5+** installed. You can install or update Neovim with the following commands based on your system: +
+📝 Git Integration -- **macOS (Homebrew)** - ```bash - brew install neovim - ``` -- **Ubuntu (APT)** - ```bash - sudo apt update - sudo apt install neovim - ``` -- **Windows** - - Download the latest release from the [Neovim GitHub Releases](https://github.com/neovim/neovim/releases) page. - - Extract the contents and add the `nvim` executable to your system path. - -#### Package Managers (for Dependencies) - -- **Homebrew (macOS and Linux)**: Recommended for managing dependencies and installations. - - - Install Homebrew if you haven’t already: - ```bash - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - ``` - -- **APT (Ubuntu/Debian)** - - For Ubuntu and Debian users, most packages can be installed via APT. - -#### Additional Dependencies - -These dependencies are needed for certain features and languages supported by your Neovim setup: - -- **Java**: Required for Java development and some plugins that rely on Java runtime. - - - **macOS**: - ```bash - brew install java - ``` - - **Ubuntu**: - ```bash - sudo apt install default-jdk - ``` - - **Windows**: - - Download and install Java from [Oracle’s website](https://www.oracle.com/java/technologies/javase-downloads.html) or [AdoptOpenJDK](https://adoptopenjdk.net/). - -- **Python**: Required for Python development and some plugins. - - - **macOS**: - ```bash - brew install python - ``` - - **Ubuntu**: - ```bash - sudo apt install python3 - ``` - - **Windows**: - - Download from [python.org](https://www.python.org/downloads/) and install it. - -- **SQL**: Required for SQLite database support. - - - **macOS**: - ```bash - brew install sqlite - ``` - - **Ubuntu**: - ```bash - sudo apt install sqlite3 - ``` - - **Windows**: - - Download the latest version from [sqlite.org](https://www.sqlite.org/download.html) and add it to your system path. - -- **PHP**: Required for PHP development. - - - **macOS**: - ```bash - brew install php - ``` - - **Ubuntu**: - ```bash - sudo apt install php - ``` - - **Windows**: - - Download from [php.net](https://www.php.net/downloads) and install it. - -- **Go**: Required for Go development. - - - **macOS**: - ```bash - brew install go - ``` - - **Ubuntu**: - ```bash - sudo apt install golang - ``` - - **Windows**: - - Download from [golang.org](https://golang.org/dl/). - -- **Rust**: Required for Rust development. - - - **macOS**: - ```bash - brew install rust - ``` - - **Ubuntu**: - ```bash - sudo apt install rustc - ``` - - **Windows**: - - Download and install Rust from [rust-lang.org](https://www.rust-lang.org/). - -- **Ruby**: Required for Ruby development and some plugins. - - - **macOS**: - ```bash - brew install ruby - ``` - - **Ubuntu**: - ```bash - sudo apt install ruby-full - ``` - - **Windows**: - - Download from [ruby-lang.org](https://www.ruby-lang.org/en/downloads/) and install it. - -- **Haskell**: Required for Haskell development. - - - **macOS**: - ```bash - brew install ghc cabal-install - ``` - - **Ubuntu**: - ```bash - sudo apt install ghc cabal-install - ``` - - **Windows**: - - Download from [haskell.org](https://www.haskell.org/platform/windows.html) and install it. - -- **Node.js & npm**: Required for JavaScript, TypeScript development, and many language servers. - - - **macOS**: - ```bash - brew install node - ``` - - **Ubuntu**: - ```bash - sudo apt install nodejs npm - ``` - - **Windows**: - - Download from [nodejs.org](https://nodejs.org/). - -- **LaTeX** (for `vimtex` and `latexindent` formatting): Required for LaTeX development. - - - **macOS**: - ```bash - brew install --cask mactex - ``` - - **Ubuntu**: - ```bash - sudo apt install texlive-full - ``` - - **Windows**: - - Install MiKTeX from [miktex.org](https://miktex.org/). - -- **Perl**: Required for Perl development. - - - **macOS**: - ```bash - brew install perl - ``` - - **Ubuntu**: - ```bash - sudo apt install perl - ``` - -- **Kotlin**: Required for Kotlin development. - - - **macOS**: - ```bash - brew install kotlin - ``` - - **Ubuntu**: - ```bash - sudo apt install kotlin - ``` - -- **Docker**: Required for Docker-related development. - - - **macOS**: - ```bash - brew install --cask docker - ``` - - **Ubuntu**: - ```bash - sudo apt install docker.io - ``` - - **Windows**: - - Install Docker Desktop from [docker.com](https://www.docker.com/products/docker-desktop). - -- **Git**: Necessary for version control and Git-related plugins. - - - **macOS**: - ```bash - brew install git - ``` - - **Ubuntu**: - ```bash - sudo apt install git - ``` - - **Windows**: - - Download from [git-scm.com](https://git-scm.com/download/win). - -- **LazyGit**: For a more visual Git experience within Neovim. - - - **macOS**: - ```bash - brew install lazygit - ``` - - **Ubuntu**: - ```bash - sudo add-apt-repository ppa:lazygit-team/release - sudo apt update - sudo apt install lazygit - ``` - - **Windows**: - - Download from [LazyGit Releases](https://github.com/jesseduffield/lazygit/releases). - -- **Ripgrep**: Required by Telescope for live grep functionality. - - **macOS**: - ```bash - brew install ripgrep - ``` - - **Ubuntu**: - ```bash - sudo apt install ripgrep - ``` - - **Windows**: - - Download from [Ripgrep GitHub Releases](https://github.com/BurntSushi/ripgrep/releases). - -### Language Support Requirements - -The following additional language server binaries are required for `mason.nvim` to provide support for specific programming languages. Run these commands as needed to install servers or formatters for each language. - -- **Python** +- **Inline Blame**: See commit information with `git-blame.nvim` +- **Change Visualization**: View diffs with `diffview.nvim` +- **Conflict Resolution**: Handle merge conflicts via `git-conflict.nvim` +- **Git UI**: Full Git experience with `lazygit.nvim` integration +- **Change Indicators**: Track changes in the gutter with `gitsigns.nvim` - ```bash - # Install python3 and pip if not installed - sudo apt install python3 python3-pip # Ubuntu - brew install python # macOS +
- # Install Python language server - pip install 'python-lsp-server[all]' - ``` +
+⚡ Editing and Productivity -- **JavaScript/TypeScript** +- **Smart Commenting**: Toggle comments easily with `Comment.nvim` +- **Auto-saving**: Automatic file saving with `auto-save.nvim` +- **Bracket Pairing**: Auto-close brackets with `nvim-autopairs` +- **Code Structure**: Visual indentation with `indent-blankline.nvim` +- **Task Management**: Highlighted TODOs with `todo-comments.nvim` +- **Performance**: Faster startup with `impatient.nvim` - ```bash - npm install -g typescript typescript-language-server - ``` +
-- **Go** +
+🎨 UI and Aesthetics - ```bash - go install golang.org/x/tools/gopls@latest - ``` +- **Status Line**: Customizable interface with `lualine.nvim` +- **File Icons**: Enhanced visuals with `nvim-web-devicons` +- **Theme Selection**: Multiple themes including `onedark.nvim`, `sonokai`, and `2077.nvim` +- **Welcome Screen**: Custom dashboard with `dashboard-nvim` +- **Notifications**: Stylish alerts with `nvim-notify` + +
+ +
+💻 Terminal Integration + +- **Integrated Terminal**: Toggle-able terminal with `toggleterm.nvim` +- **Visual Terminal**: Beautifully integrated within the editor + +
+ +
+🔧 Specialized Language Support -- **Rust** +- **LaTeX**: Rich typesetting with `vimtex` +- **MATLAB**: Syntax and navigation via `vim-matlab` +- **JSX/React**: Enhanced highlighting with `vim-jsx-pretty` +- **Gradle**: Build automation support with `vim-gradle` +
+ +--- + +## 🔧 Installation + +### Prerequisites + +
+Neovim Requirements + +Ensure you have **Neovim v0.5+** installed: + +| OS | Installation Command | +|----|---------------------| +| **macOS** | `brew install neovim` | +| **Ubuntu** | `sudo apt update && sudo apt install neovim` | +| **Windows** | Download from [Neovim Releases](https://github.com/neovim/neovim/releases) | + +
+ +
+Package Managers + +- **Homebrew (macOS/Linux):** ```bash - # Install rust-analyzer - brew install rust-analyzer # macOS - sudo apt install rust-analyzer # Ubuntu + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` -- **LaTeX (if using `vimtex`)** - - You’ll need a LaTeX distribution installed: - - **macOS**: - ```bash - brew install --cask mactex - ``` - - **Ubuntu**: - ```bash - sudo apt install texlive-full - ``` - - **Windows**: - - Install MiKTeX from [miktex.org](https://miktex.org/). - -### Installing the Configuration +- **APT (Ubuntu/Debian):** + Most packages can be installed via the default package manager. + +
+ +
+Language Dependencies + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LanguagemacOSUbuntuWindows
Javabrew install javasudo apt install default-jdkInstall from AdoptOpenJDK
Pythonbrew install pythonsudo apt install python3Install from python.org
Node.jsbrew install nodesudo apt install nodejs npmInstall from nodejs.org
Gobrew install gosudo apt install golangInstall from golang.org
Rustbrew install rustsudo apt install rustcInstall from rust-lang.org
Rubybrew install rubysudo apt install ruby-fullInstall from ruby-lang.org
LaTeXbrew install --cask mactexsudo apt install texlive-fullInstall from miktex.org
+ +
+ +
+Additional Tools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ToolmacOSUbuntuWindows
Gitbrew install gitsudo apt install gitInstall from git-scm.com
LazyGitbrew install lazygitsudo add-apt-repository ppa:lazygit-team/release
sudo apt update
sudo apt install lazygit
Download from LazyGit Releases
Ripgrepbrew install ripgrepsudo apt install ripgrepDownload from Ripgrep Releases
Dockerbrew install --cask dockersudo apt install docker.ioInstall Docker Desktop
+ +
+ +
+Language Server Setup + + + + + + + + + + + + + + + + + + + + + + +
LanguageInstallation
Pythonpip install 'python-lsp-server[all]'
JavaScript/TypeScriptnpm install -g typescript typescript-language-server
Gogo install golang.org/x/tools/gopls@latest
Rustbrew install rust-analyzer (macOS)
sudo apt install rust-analyzer (Ubuntu)
+ +Most language servers can be installed directly through Mason (`:Mason`) once Neovim is configured. + +
+ +### Configuration Installation + +
+Setup Steps 1. **Clone the Repository** @@ -359,257 +287,277 @@ The following additional language server binaries are required for `mason.nvim` ``` 2. **Open Neovim and Install Plugins** - Open Neovim and use `lazy.nvim` to install plugins: ```vim :Lazy install ``` 3. **Verify Language Server Installation** - Run `:Mason` in Neovim to open Mason’s interface. Install or update any required language servers from within Mason's menu. + + Run `:Mason` in Neovim to install or update language servers. + +
--- -## Plugin List - -| Plugin | Description | -| ---------------------------- | ------------------------------------------------------ | -| `2077.nvim` | Cyberpunk-themed colorscheme for Neovim | -| `auto-save.nvim` | Automatically saves files when changes are detected | -| `ChatGPT.nvim` | ChatGPT integration for code suggestions and AI help | -| `cmp-buffer` | Source for buffer words in autocompletion | -| `cmp-cmdline` | Source for Neovim command-line completion | -| `cmp-nvim-lsp` | Provides LSP completion source for `nvim-cmp` | -| `cmp-path` | File path source for autocompletion | -| `cmp-vsnip` | Snippet support for `nvim-cmp` with `vim-vsnip` | -| `Comment.nvim` | Plugin for easy commenting in code | -| `copilot.vim` | GitHub Copilot integration for AI-driven suggestions | -| `dashboard-nvim` | Customizable start screen dashboard | -| `diffview.nvim` | Git diff viewer for comparing file changes | -| `git-blame.nvim` | Shows Git blame info inline | -| `git-conflict.nvim` | Helps manage and resolve Git merge conflicts | -| `gitsigns.nvim` | Shows Git changes in the sign column | -| `harpoon` | Mark and easily switch between files | -| `impatient.nvim` | Speeds up Neovim startup by caching Lua modules | -| `indent-blankline.nvim` | Adds indentation guides for better code readability | -| `lazy.nvim` | Plugin manager for lazy loading plugins | -| `lazygit.nvim` | Integration of LazyGit in Neovim | -| `lualine.nvim` | Highly customizable status line | -| `LuaSnip` | Snippet engine for Neovim | -| `nui.nvim` | UI component library for Neovim | -| `nvim-autopairs` | Automatically closes pairs like parentheses and braces | -| `nvim-cmp` | Completion engine with support for multiple sources | -| `nvim-notify` | Popup notification manager | -| `nvim-tree.lua` | File explorer with icons for file types | -| `nvim-treesitter` | Syntax highlighting and parsing with Treesitter | -| `nvim-ts-rainbow` | Rainbow parentheses and brackets in Treesitter | -| `nvim-web-devicons` | Adds icons to Neovim plugins | -| `onedark.nvim` | OneDark colorscheme for Neovim | -| `plenary.nvim` | Lua utility functions used by other plugins | -| `popup.nvim` | Popup API for Neovim plugins | -| `semantic-highlight.vim` | Provides semantic highlighting based on Treesitter | -| `sonokai` | Colorscheme inspired by Monokai | -| `tagbar` | Displays tags in a side panel for code navigation | -| `telescope-media-files.nvim` | Media files extension for Telescope | -| `telescope.nvim` | Fuzzy finder and search tool | -| `todo-comments.nvim` | Highlight TODO comments in code | -| `toggleterm.nvim` | Easily toggle between terminal windows | -| `trouble.nvim` | Pretty diagnostics and quickfix list | -| `vim-gradle` | Syntax highlighting and support for Gradle files | -| `vim-jsx-pretty` | Improved JSX/React syntax highlighting | -| `vim-matlab` | MATLAB support for syntax and indentation | -| `vim-vsnip` | Lightweight snippet plugin for Vim | -| `vimtex` | LaTeX support with syntax highlighting and compilation | -| `which-key.nvim` | Displays possible keybindings on a key press | -| `formatter.nvim` | Plugin for formatting code using external formatters | -| `lspsaga.nvim` | Light-weight UI for LSP features | -| `mason.nvim` | Manages external language servers and tools | -| `mason-lspconfig.nvim` | Integrates Mason with Neovim's LSP client | -| `mason-tool-installer.nvim` | Installs additional tools via Mason | -| `nvim-code-action-menu` | A code action menu for Neovim LSP | -| `nvim-lspconfig` | Configurations for built-in LSP client | - -For a complete list githubs, see the [Plugins Section](#full-plugin-list). +## ⌨️ Key Mappings + +
+General Navigation + +| Mapping | Action | +|---------|--------| +| `bn` | Next buffer | +| `bp` | Previous buffer | +| `bd` | Delete buffer | +| `tn` | Next tab | +| `tp` | Previous tab | +| `to` | Open new tab | +| `tc` | Close tab | +| `pd` | Page down | +| `pu` | Page up | + +
+ +
+File and Code Navigation + +| Mapping | Action | +|---------|--------| +| `ff` | Find files | +| `fe` | File browser | +| `fd` | Find diagnostics | +| `gf` | Git files | +| `gs` | Grep current word | +| `` | Toggle file explorer | +| `r` | Refresh file explorer | +| `n` | Find current file | +| `tt` | Toggle tag browser | +| `tf` | Focus tag browser | + +
+ +
+LSP and Diagnostics + +| Mapping | Action | +|---------|--------| +| `dn` | Next diagnostic | +| `dp` | Previous diagnostic | +| `df` | Format buffer | +| `rn` | Rename symbol | +| `K` | Show documentation | +| `ca` | Code action menu | +| `cl` | Toggle diagnostics | +| `xx` | Toggle diagnostics view | +| `xX` | Buffer diagnostics | +| `cs` | Toggle symbols | +| `cc` | Close diagnostics | + +
+ +
+Git Operations + +| Mapping | Action | +|---------|--------| +| `lg` | Open LazyGit | +| `qf` | Show quickfix | +| `xQ` | Toggle quickfix | + +
+ +
+Maven Commands + +| Mapping | Action | +|---------|--------| +| `mm` | mvn clean install | +| `mp` | mvn clean package | +| `mc` | mvn clean | +| `mt` | mvn test | +| `me` | mvn exec:exec | +| `mf` | mvn javafx:run | +| `mj` | mvn javadoc:javadoc | + +
+ +
+AI and Copilot + +| Mapping | Action | +|---------|--------| +| `` | Accept Copilot suggestion | +| `` | Dismiss Copilot suggestion | +| `ai` | Open ChatGPT window | +| `ac` | Complete code with ChatGPT | +| `ae` | Edit with ChatGPT instruction | + +
+ +
+Terminal and Miscellaneous + +| Mapping | Action | +|---------|--------| +| `` | Toggle terminal | +| `s` | Toggle semantic highlighting | +| `` | Toggle focus on file explorer | +| `fb` | Find buffers | +| `fh` | Find help | +| `fg` | Live grep text | +| `rm` | Run MATLAB script | + +
--- -## Key Mappings - -Key mappings are specified in `keymaps.vim` to streamline the workflow. Notable mappings include: - -### General Key Mappings - -- **`bn`**: Move to the next buffer. -- **`bp`**: Move to the previous buffer. -- **`bd`**: Delete the current buffer. -- **`tn`**: Move to the next tab. -- **`tp`**: Move to the previous tab. -- **`to`**: Open a new tab. -- **`tc`**: Close the current tab. -- **`pd`**: Page Down. -- **`pu`**: Page Up. -- **`ff`**: Find files using Telescope. -- **`fe`**: Open Telescope file browser. -- **`fd`**: Open diagnostics using Telescope. -- **`gf`**: Find Git files with Telescope. -- **`gs`**: Grep the current word with Telescope. -- **``**: Toggle the NvimTree file explorer. -- **`r`**: Refresh NvimTree. -- **`n`**: Find the current file in NvimTree. -- **``**: Toggle the terminal using ToggleTerm. -- **`tt`**: Toggle Tagbar view. -- **`tf`**: Toggle focus on Tagbar. - -### Git Mappings - -- **`lg`**: Open LazyGit directly. -- **`qf`**: Show quickfix list with code actions. -- **`xQ`**: Toggle the quickfix list in Trouble. - -### Diagnostic and LSP Key Mappings - -- **`dn`**: Go to the next diagnostic message. -- **`dp`**: Go to the previous diagnostic message. -- **`df`**: Format the current buffer. -- **`rn`**: Rename symbol using LSP Saga. -- **`K`**: Show hover documentation with LSP. -- **`ca`**: Open the code action menu. -- **`cl`**: Toggle LSP diagnostics on the right side using Trouble. -- **`xx`**: Toggle diagnostics view on the right. -- **`xX`**: Toggle diagnostics for the current buffer in Trouble. -- **`cs`**: Toggle symbols in Trouble. -- **`cc`**: Close Trouble diagnostics. - -### Maven Shortcuts - -- **`mm`**: Run `mvn clean install`. -- **`mp`**: Run `mvn clean package`. -- **`mc`**: Run `mvn clean`. -- **`mt`**: Run `mvn test`. -- **`me`**: Run `mvn exec:exec`. -- **`mf`**: Run JavaFX with `mvn javafx:run`. -- **`mj`**: Generate Javadoc with `mvn javadoc:javadoc`. - -### Copilot Key Mappings - -- **``**: Accept Copilot suggestion in insert mode. -- **``**: Dismiss Copilot suggestion in insert mode. - -### Telescope Mappings for Navigation - -- **`fb`**: Find buffers. -- **`fh`**: Find help tags. -- **`fg`**: Live grep for text. - -### Code Actions - -- **`ca`**: Open the code action menu with `CodeActionMenu`. -- **`qf`**: Quick fix options. -- **`rm`**: Run MATLAB script (Linux/Unix-specific setup). - -### AI-related Mappings (ChatGPT and Copilot) - -- **`ai`**: Open ChatGPT window. -- **`ac`**: Complete code with ChatGPT. -- **`ae`**: Edit with instruction in ChatGPT. - -### Buffer and Tab Navigation - -- **`bn`**: Move to the next buffer. -- **`bp`**: Move to the previous buffer. -- **`bd`**: Delete the current buffer. -- **`tn`**: Move to the next tab. -- **`tp`**: Move to the previous tab. -- **`to`**: Open a new tab. -- **`tc`**: Close the current tab. - -### Miscellaneous - -- **`s`**: Toggle semantic highlighting. -- **``**: Toggle focus on NvimTree file explorer. -- **`t`**: Toggle Tagbar focus. -- **`xx`**: Toggle diagnostics view using Trouble. - -Refer to `keymaps.vim` for additional custom mappings. +## 🧩 Plugin Gallery + +
+Core Plugins + +| Plugin | Description | +|--------|-------------| +| [lazy.nvim](https://github.com/folke/lazy.nvim) | Modern plugin manager | +| [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) | Configurations for built-in LSP client | +| [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) | Completion engine | +| [mason.nvim](https://github.com/williamboman/mason.nvim) | Package manager for LSP servers | +| [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) | Fuzzy finder and search tool | +| [nvim-tree.lua](https://github.com/nvim-tree/nvim-tree.lua) | File explorer | +| [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) | Advanced syntax highlighting | + +
+ +
+UI and Appearance + +| Plugin | Description | +|--------|-------------| +| [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) | Status line | +| [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) | File icons | +| [onedark.nvim](https://github.com/navarasu/onedark.nvim) | OneDark theme | +| [sonokai](https://github.com/sainnhe/sonokai) | Sonokai theme | +| [2077.nvim](https://github.com/hemangsk/2077.nvim) | Cyberpunk theme | +| [dashboard-nvim](https://github.com/glepnir/dashboard-nvim) | Start screen | +| [nvim-notify](https://github.com/rcarriga/nvim-notify) | Notifications | +| [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) | Indent guides | +| [nvim-ts-rainbow](https://github.com/p00f/nvim-ts-rainbow) | Rainbow parentheses | + +
+ +
+Git Integration + +| Plugin | Description | +|--------|-------------| +| [git-blame.nvim](https://github.com/f-person/git-blame.nvim) | Git blame information | +| [diffview.nvim](https://github.com/sindrets/diffview.nvim) | Git diff viewer | +| [git-conflict.nvim](https://github.com/akinsho/git-conflict.nvim) | Conflict resolution | +| [lazygit.nvim](https://github.com/kdheepak/lazygit.nvim) | LazyGit integration | +| [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) | Git status indicators | + +
+ +
+Code Enhancement + +| Plugin | Description | +|--------|-------------| +| [LuaSnip](https://github.com/L3MON4D3/LuaSnip) | Snippet engine | +| [nvim-autopairs](https://github.com/windwp/nvim-autopairs) | Auto-close brackets | +| [Comment.nvim](https://github.com/numToStr/Comment.nvim) | Code commenting | +| [auto-save.nvim](https://github.com/Pocco81/auto-save.nvim) | Auto-save files | +| [formatter.nvim](https://github.com/mhartington/formatter.nvim) | Code formatting | +| [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) | Highlight TODOs | +| [tagbar](https://github.com/preservim/tagbar) | Code structure view | +| [semantic-highlight.vim](https://github.com/thiagoalessio/semantic-highlight.vim) | Semantic highlighting | +| [which-key.nvim](https://github.com/folke/which-key.nvim) | Keybinding hints | + +
+ +
+Language Specific + +| Plugin | Description | +|--------|-------------| +| [vimtex](https://github.com/lervag/vimtex) | LaTeX support | +| [vim-matlab](https://github.com/swlkr/vim-matlab) | MATLAB support | +| [vim-jsx-pretty](https://github.com/MaxMEllon/vim-jsx-pretty) | JSX/React syntax | +| [vim-gradle](https://github.com/tfnico/vim-gradle) | Gradle support | + +
+ +
+AI and Assistance + +| Plugin | Description | +|--------|-------------| +| [copilot.vim](https://github.com/github/copilot.vim) | GitHub Copilot integration | +| [ChatGPT.nvim](https://github.com/jackMort/ChatGPT.nvim) | ChatGPT integration | + +
+ +
+Completion Sources + +| Plugin | Description | +|--------|-------------| +| [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) | Buffer words | +| [cmp-cmdline](https://github.com/hrsh7th/cmp-cmdline) | Command line | +| [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) | LSP source | +| [cmp-path](https://github.com/hrsh7th/cmp-path) | File paths | +| [cmp-vsnip](https://github.com/hrsh7th/cmp-vsnip) | Snippet integration | + +
+ +
+Utility Plugins + +| Plugin | Description | +|--------|-------------| +| [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) | Lua utilities | +| [popup.nvim](https://github.com/nvim-lua/popup.nvim) | Popup API | +| [nui.nvim](https://github.com/MunifTanjim/nui.nvim) | UI components | +| [impatient.nvim](https://github.com/lewis6991/impatient.nvim) | Startup optimization | +| [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) | Terminal integration | +| [trouble.nvim](https://github.com/folke/trouble.nvim) | Diagnostics list | +| [harpoon](https://github.com/ThePrimeagen/harpoon) | File navigation marks | + +
--- -## File Structure and Configuration Details +## 📂 Configuration Structure + +``` +~/.config/nvim/ +├── init.lua # Main entry point +├── lua/ # Lua configuration directory +│ ├── git.lua # Git plugin configuration +│ ├── gpt.lua # AI assistant configuration +│ ├── latex.lua # LaTeX support setup +│ ├── lualine.lua # Status line configuration +│ ├── mason.lua # LSP manager configuration +│ ├── notifications.lua # Notification system +│ ├── nvim-cmp.lua # Completion engine setup +│ ├── nvim-tree.lua # File explorer configuration +│ └── telescope.lua # Fuzzy finder setup +└── keymaps.vim # Key mappings +``` -- **`init.lua`**: Main configuration file, loads plugins and settings. -- **`lua/` Directory**: Contains individual configuration files for plugins and other settings. +--- + +## 📄 License -### Key Files and Their Configurations: +This configuration is licensed under the [MIT License](LICENSE). -- **`git.lua`**: Configures Git-related plugins such as `git-blame.nvim` and `diffview.nvim` for version control. -- **`gpt.lua`**: Settings for AI-based autocompletion with `copilot.vim`. -- **`latex.lua`**: Sets up LaTeX support, likely with `vimtex` for typesetting. -- **`lualine.lua`**: Customizes the Neovim statusline using `lualine.nvim`. -- **`mason.lua`**: Configures `mason.nvim` to manage LSP servers and additional tools. -- **`notifications.lua`**: Manages notifications using `nvim-notify`. -- **`nvim-cmp.lua`**: Sets up `nvim-cmp` for autocompletion with buffer, LSP, and snippet sources. -- **`nvim-tree.lua`**: Configures the file explorer (`nvim-tree.lua`). -- **`telescope.lua`**: Configures `telescope.nvim` for file and buffer search, along with live grep functionality. +
--- -## Full Plugin List - -- [2077.nvim](https://github.com/hemangsk/2077.nvim) -- [auto-save.nvim](https://github.com/Pocco81/auto-save.nvim) -- [ChatGPT.nvim](https://github.com/jackMort/ChatGPT.nvim) -- [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) -- [cmp-cmdline](https://github.com/hrsh7th/cmp-cmdline) -- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) -- [cmp-path](https://github.com/hrsh7th/cmp-path) -- [cmp-vsnip](https://github.com/hrsh7th/cmp-vsnip) -- [Comment.nvim](https://github.com/numToStr/Comment.nvim) -- [copilot.vim](https://github.com/github/copilot.vim) -- [dashboard-nvim](https://github.com/glepnir/dashboard-nvim) -- [diffview.nvim](https://github.com/sindrets/diffview.nvim) -- [git-blame.nvim](https://github.com/f-person/git-blame.nvim) -- [git-conflict.nvim](https://github.com/akinsho/git-conflict.nvim) -- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) -- [harpoon](https://github.com/ThePrimeagen/harpoon) -- [impatient.nvim](https://github.com/lewis6991/impatient.nvim) -- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) -- [lazy.nvim](https://github.com/folke/lazy.nvim) -- [lazygit.nvim](https://github.com/kdheepak/lazygit.nvim) -- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) -- [LuaSnip](https://github.com/L3MON4D3/LuaSnip) -- [nui.nvim](https://github.com/MunifTanjim/nui.nvim) -- [nvim-autopairs](https://github.com/windwp/nvim-autopairs) -- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) -- [nvim-notify](https://github.com/rcarriga/nvim-notify) -- [nvim-tree.lua](https://github.com/nvim-tree/nvim-tree.lua) -- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) -- [nvim-ts-rainbow](https://github.com/p00f/nvim-ts-rainbow) -- [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) -- [onedark.nvim](https://github.com/navarasu/onedark.nvim) -- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) -- [popup.nvim](https://github.com/nvim-lua/popup.nvim) -- [semantic-highlight.vim](https://github.com/thiagoalessio/semantic-highlight.vim) -- [sonokai](https://github.com/sainnhe/sonokai) -- [tagbar](https://github.com/preservim/tagbar) -- [telescope-media-files.nvim](https://github.com/nvim-telescope/telescope-media-files.nvim) -- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) -- [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) -- [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) -- [trouble.nvim](https://github.com/folke/trouble.nvim) -- [vim-gradle](https://github.com/tfnico/vim-gradle) -- [vim-jsx-pretty](https://github.com/MaxMEllon/vim-jsx-pretty) -- [vim-matlab](https://github.com/swlkr/vim-matlab) -- [vim-vsnip](https://github.com/hrsh7th/vim-vsnip) -- [vimtex](https://github.com/lervag/vimtex) -- [which-key.nvim](https://github.com/folke/which-key.nvim) -- [formatter.nvim](https://github.com/mhartington/formatter.nvim) -- [lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim) -- [mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) -- [mason-tool-installer.nvim](https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim) -- [mason.nvim](https://github.com/williamboman/mason.nvim) -- [nvim-code-action-menu](https://github.com/weilbith/nvim-code-action-menu) -- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - -## License - -This configuration is licensed under the MIT License. See the LICENSE file for more details. +**Made with ❤️ by [Noam Fav](https://github.com/NoamFav)** + +[⭐ Star this Repository](https://github.com/NoamFav/Nvim-config) • [🐛 Report Issue](https://github.com/NoamFav/Nvim-config/issues) • [🔄 Fork](https://github.com/NoamFav/Nvim-config/fork) + +
\ No newline at end of file From 9711022b678f60abbcbcf6d10c77658b2d64f1be Mon Sep 17 00:00:00 2001 From: Noam Favier <95364866+NoamFav@users.noreply.github.com> Date: Wed, 16 Apr 2025 19:56:04 +0200 Subject: [PATCH 09/83] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index ae5ae7d..5d1c40c 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,6 @@ **A powerful, feature-rich Neovim setup for modern development** -![Neovim Screenshot](https://i.imgur.com/placeholder-image.png) - --- @@ -560,4 +558,4 @@ This configuration is licensed under the [MIT License](LICENSE). [⭐ Star this Repository](https://github.com/NoamFav/Nvim-config) • [🐛 Report Issue](https://github.com/NoamFav/Nvim-config/issues) • [🔄 Fork](https://github.com/NoamFav/Nvim-config/fork) - \ No newline at end of file + From 80aa5fecbd475404e170ff7b417baed2fc2fdd3f Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Sat, 24 May 2025 00:42:17 +0200 Subject: [PATCH 10/83] updating all the dependency and fixed issue with noevim 11, switch ts-raibow to raibow-delimiter.nvim --- lazy-lock.json | 52 ++++++++++---------- lua/plugins/mason.lua | 85 +++++++++++++++------------------ lua/plugins/nvim-treesitter.lua | 30 ++++++++---- 3 files changed, 85 insertions(+), 82 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index c82be95..f0d5e31 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,52 +1,52 @@ { "2077.nvim": { "branch": "master", "commit": "ac84f753d225649c95ea86b0157f982c8f694237" }, "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, - "apple_music.nvim": { "branch": "main", "commit": "8a21cd4731384d5628c3e2c0b2b88ff5c9e674c1" }, + "LuaSnip": { "branch": "master", "commit": "faf3c94a44508cec1b961406d36cc65113ff3b98" }, + "apple_music.nvim": { "branch": "main", "commit": "97bd196ba6d65655004579c79e11a277deaa79eb" }, "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, - "blink-cmp-dictionary": { "branch": "master", "commit": "3d49f934059fb59f657b547d90a526d00540634e" }, - "blink-emoji.nvim": { "branch": "master", "commit": "a77aebc092ebece1eed108f301452ae774d6b67a" }, - "blink.cmp": { "branch": "main", "commit": "ea29ab1620de5e61284abc01ae39e56df5a5fe53" }, - "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, - "copilot.vim": { "branch": "release", "commit": "a9228e015528c9307890c48083c925eb98a64a79" }, + "blink-cmp-dictionary": { "branch": "master", "commit": "43e0fbe8d273f92a87c58aa958c51c95557d20c4" }, + "blink-emoji.nvim": { "branch": "master", "commit": "c333509be8ca464fe05c72763c95b072392cceb6" }, + "blink.cmp": { "branch": "main", "commit": "196711b89a97c953877d6c257c62f18920a970f3" }, + "catppuccin": { "branch": "main", "commit": "8162a4bd9afb42837a655e404d1f937a87ba95e6" }, + "copilot.vim": { "branch": "release", "commit": "d1e8429bef7f7709586886b0a23a46fbecc685c4" }, "cyberdream.nvim": { "branch": "main", "commit": "c07db2e6cab236ead328afc2ae4e0e1e1c69cd68" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "formatter.nvim": { "branch": "master", "commit": "eb89a1f3e079f1b9680bc7293b75fffccb5e1598" }, - "git-blame.nvim": { "branch": "master", "commit": "b12da2156ec1c3f53f42c129201ff0bfed69c86e" }, + "git-blame.nvim": { "branch": "master", "commit": "8503b199edf9a666fe7b1a989cf14e3c26b2eb03" }, "git-conflict.nvim": { "branch": "main", "commit": "a1badcd070d176172940eb55d9d59029dad1c5a6" }, - "gitsigns.nvim": { "branch": "main", "commit": "3c76f7fabac723aa682365ef782f88a83ccdb4ac" }, + "gitsigns.nvim": { "branch": "main", "commit": "8b729e489f1475615dc6c9737da917b3bc163605" }, "glow.nvim": { "branch": "main", "commit": "5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, "impatient.nvim": { "branch": "main", "commit": "47302af74be7b79f002773011f0d8e85679a7618" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, - "lspsaga.nvim": { "branch": "main", "commit": "778d56ff9b387dacd14ae648ed5604394b486f51" }, - "lualine.nvim": { "branch": "master", "commit": "1517caa8fff05e4b4999857319d3b0609a7f57fa" }, + "lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" }, + "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, "markview.nvim": { "branch": "main", "commit": "386a98e88e021a79df7f0494d8eb4145a78f59ae" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "4aa03a08c3705e622f2e7886783fd450f7749cdd" }, - "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "3856bbb0da214d1f2f3d5a2dd3fea26591f930f9" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "75d60a8f928decd8b38897f80849768b7c540a5b" }, + "mason.nvim": { "branch": "main", "commit": "9eaedb864cdadc29c6eb7d761a6c0d8aee26c91b" }, "nerdicons.nvim": { "branch": "main", "commit": "2d257ff9b00b7d1510704e0a565a6a7ede76b79a" }, - "nvim-autopairs": { "branch": "master", "commit": "84a81a7d1f28b381b32acf1e8fe5ff5bef4f7968" }, + "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-code-action-menu": { "branch": "main", "commit": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b" }, - "nvim-lspconfig": { "branch": "master", "commit": "40f120c10ea4b87311175539a183c3b75eab95a3" }, - "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, - "nvim-tree.lua": { "branch": "master", "commit": "c3c193594213c5e2f89ec5d7729cad805f76b256" }, - "nvim-treesitter": { "branch": "master", "commit": "997288c55253e27f782d991099490f80205d65bf" }, - "nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" }, - "nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" }, + "nvim-lspconfig": { "branch": "master", "commit": "562487bc108bf73c2493f9e701b9334b48163216" }, + "nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" }, + "nvim-tree.lua": { "branch": "master", "commit": "25d16aab7d29ca940a9feb92e6bb734697417009" }, + "nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "ec1a2431f8872f650a85ed71c24f0715df2e49c2" }, - "onedark.nvim": { "branch": "master", "commit": "67a74c275d1116d575ab25485d1bfa6b2a9c38a6" }, + "onedark.nvim": { "branch": "master", "commit": "11de4da47f3e69cb70c3ae9816bd8af166cbe121" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, + "rainbow-delimiters.nvim": { "branch": "master", "commit": "55ad4fb76ab68460f700599b7449385f0c4e858e" }, "semantic-highlight.vim": { "branch": "master", "commit": "7e141c2b7be0f2600276004fd2e7382a3fa0f690" }, "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, - "sonokai": { "branch": "master", "commit": "9679341d4141ed81376f2bdf5e69b78dc348d212" }, + "sonokai": { "branch": "master", "commit": "f59c796780655c3b9da442d310ad2f2d735f2e56" }, "tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" }, - "tailwind-tools": { "branch": "master", "commit": "2bd8ef6e96d07df83c0b785c40416b98607b2f93" }, + "tailwind-tools": { "branch": "master", "commit": "fbe982901d4508b0dcd80e07addf0fcb6dab6c49" }, "telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" }, - "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" }, "tokyonight.nvim": { "branch": "main", "commit": "c8ea87cd34b0267c44a67e90ff8f6e7d6af46ff9" }, @@ -54,6 +54,6 @@ "vim-gradle": { "branch": "master", "commit": "508629fa2a3be1b2052e4e553593f60d12dfc090" }, "vim-jsx-pretty": { "branch": "master", "commit": "6989f1663cc03d7da72b5ef1c03f87e6ddb70b41" }, "vim-matlab": { "branch": "master", "commit": "eafe639be77454b6bf46f149a7695de773b702b9" }, - "vimtex": { "branch": "master", "commit": "a531f6bf9ce61172e4ea8eea2ecbf59fd08c232a" }, + "vimtex": { "branch": "master", "commit": "08760834ce04903deb6f8760e61c11cf6f6b2f89" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 21c1b28..671a9c3 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -27,47 +27,42 @@ return { }, { "williamboman/mason-lspconfig.nvim", - config = function() - require("mason-lspconfig").setup({ - ensure_installed = { - -- Language Servers - "jdtls", -- Java - "pyright", -- Python - "rust_analyzer", -- Rust - "clangd", -- C/C++ - - "gopls", -- Go - "emmet_ls", -- HTML/CSS - "html", -- HTML - "tailwindcss", -- Tailwind CSS - "jsonls", -- JSON - "solargraph", -- Ruby - "sqlls", -- SQL - "yamlls", -- YAML - "bashls", -- Bash - "dockerls", -- Docker - "elixirls", -- Elixir - "vimls", -- Vim - "lua_ls", -- Lua - "eslint", -- JavaScript/TypeScript - "graphql", -- GraphQL - "phpactor", -- PHP - "perlnavigator", -- Perl - "terraformls", -- Terraform - "hls", -- Haskell - "volar", -- Vue - "kotlin_language_server", -- Kotlin - "marksman", -- Markdown - "svelte", -- Svelte - "lemminx", -- XML - "ltex", -- LaTeX - "ts_ls", -- TypeScript - "tailwindcss", -- Tailwind CSS - }, - automatic_installation = true, - auto_install = true, - }) - require("mason-lspconfig").setup_handlers({ + opts = { + ensure_installed = { + -- Language Servers + "jdtls", -- Java + "pyright", -- Python + "rust_analyzer", -- Rust + "clangd", -- C/C++ + "gopls", -- Go + "emmet_ls", -- HTML/CSS + "html", -- HTML + "tailwindcss", -- Tailwind CSS + "jsonls", -- JSON + "solargraph", -- Ruby + "sqlls", -- SQL + "yamlls", -- YAML + "bashls", -- Bash + "dockerls", -- Docker + "elixirls", -- Elixir + "vimls", -- Vim + "lua_ls", -- Lua + "eslint", -- JavaScript/TypeScript + "graphql", -- GraphQL + "phpactor", -- PHP + "perlnavigator", -- Perl + "terraformls", -- Terraform + "hls", -- Haskell + "kotlin_language_server", -- Kotlin + "marksman", -- Markdown + "svelte", -- Svelte + "lemminx", -- XML + "ltex", -- LaTeX + "ts_ls", -- TypeScript + "tailwindcss", -- Tailwind CSS + }, + automatic_installation = true, + handlers = { function(server_name) require("lspconfig")[server_name].setup({ on_attach = function(client, bufnr) @@ -77,17 +72,13 @@ return { 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") - - -- Other setup like key mappings, etc. end, capabilities = require("blink.cmp").get_lsp_capabilities(), }) end, - }) - end, + }, + }, }, { "nvimdev/lspsaga.nvim", diff --git a/lua/plugins/nvim-treesitter.lua b/lua/plugins/nvim-treesitter.lua index 611884b..5da8803 100644 --- a/lua/plugins/nvim-treesitter.lua +++ b/lua/plugins/nvim-treesitter.lua @@ -27,18 +27,30 @@ return { }) end, }, - - -- Rainbow plugin for variable highlighting { - "p00f/nvim-ts-rainbow", - requires = { "nvim-treesitter/nvim-treesitter" }, + "HiPhish/rainbow-delimiters.nvim", config = function() - require("nvim-treesitter.configs").setup({ - rainbow = { - enable = true, - extended_mode = true, -- Also highlight variables + local rainbow_delimiters = require("rainbow-delimiters") + + vim.g.rainbow_delimiters = { + strategy = { + [""] = rainbow_delimiters.strategy["global"], + vim = rainbow_delimiters.strategy["local"], }, - }) + query = { + [""] = "rainbow-delimiters", + lua = "rainbow-blocks", + }, + highlight = { + "RainbowDelimiterRed", + "RainbowDelimiterYellow", + "RainbowDelimiterBlue", + "RainbowDelimiterOrange", + "RainbowDelimiterGreen", + "RainbowDelimiterViolet", + "RainbowDelimiterCyan", + }, + } end, }, From 4246e5a9aa3be9642f211d3b24f922b2bb821e0c Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Mon, 14 Jul 2025 21:57:34 +0200 Subject: [PATCH 11/83] chore (trouble): Update trouble.lua shortcut for 'Toggle Diagnostics' without focus option --- lua/plugins/trouble.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/trouble.lua b/lua/plugins/trouble.lua index 55a4d6c..2b206a8 100644 --- a/lua/plugins/trouble.lua +++ b/lua/plugins/trouble.lua @@ -39,7 +39,7 @@ return { end, keys = { -- Toggle diagnostics view on the right side - { "xx", ":Trouble diagnostics toggle focus=false win.position=right", desc = "Toggle Diagnostics" }, + { "xx", ":Trouble diagnostics toggle focus=false ", desc = "Toggle Diagnostics" }, -- Toggle diagnostics for the current buffer only { "xX", ":Trouble diagnostics toggle filter.buf=0", desc = "Toggle Diagnostics (Current Buffer)" }, From 681b6ce6b57fe6ed4044fda03172184d21737fb7 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Sun, 31 Aug 2025 23:34:07 +0200 Subject: [PATCH 12/83] feat: add Arduino support to mason.lua plugin --- lua/plugins/mason.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 671a9c3..0ab1967 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -60,6 +60,7 @@ return { "ltex", -- LaTeX "ts_ls", -- TypeScript "tailwindcss", -- Tailwind CSS + "arduino_language_server", -- Arduino }, automatic_installation = true, handlers = { @@ -259,6 +260,18 @@ return { require("lspconfig").perlnavigator.setup({ root_dir = require("lspconfig").util.root_pattern(".git", "."), -- Find the git directory or the current directory }) + require("lspconfig").arduino_language_server.setup({ + cmd = { + "arduino-language-server", + "-cli", + "arduino-cli", + "-cli-config", + vim.fn.expand("~/.arduino15/arduino-cli.yaml"), + "-fqbn", + "adafruit:samd:adafruit_feather_m0", + }, + filetypes = { "arduino", "ino" }, + }) end, }, { From a351d315a4afbacd1274f1c46289497ea0c365aa Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Sun, 31 Aug 2025 23:46:35 +0200 Subject: [PATCH 13/83] feat (plugins): update Mason to support Arduino formatting with clang-format --- init.lua | 1 + lua/plugins/mason.lua | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/init.lua b/init.lua index 0618031..fa5d2c2 100644 --- a/init.lua +++ b/init.lua @@ -24,6 +24,7 @@ vim.diagnostic.config({ update_in_insert = true, severity_sort = true, }) +vim.filetype.add({ extension = { ino = "arduino" } }) vim.g.OmniSharp_server_use_mono = 0 diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 0ab1967..4ab8604 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -369,6 +369,15 @@ return { } end, }, + arduino = { + function() + return { + exe = "clang-format", + args = { "--assume-filename=sketch.ino" }, -- helps style detection + stdin = true, + } + end, + }, }, }) From 8a4955942ec433f7ec4508ef1aa184d6c542daf6 Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Wed, 3 Sep 2025 22:13:56 +0200 Subject: [PATCH 14/83] feat: Add image.nvim and molten-nvim to lazy.json dependencies --- lazy-lock.json | 2 ++ lua/plugins/jupyter.lua | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 lua/plugins/jupyter.lua diff --git a/lazy-lock.json b/lazy-lock.json index f0d5e31..65e6212 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -17,6 +17,7 @@ "gitsigns.nvim": { "branch": "main", "commit": "8b729e489f1475615dc6c9737da917b3bc163605" }, "glow.nvim": { "branch": "main", "commit": "5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, + "image.nvim": { "branch": "master", "commit": "a8d6829ce8472a79df140bc494e75f1847f8861e" }, "impatient.nvim": { "branch": "main", "commit": "47302af74be7b79f002773011f0d8e85679a7618" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, @@ -27,6 +28,7 @@ "mason-lspconfig.nvim": { "branch": "main", "commit": "3856bbb0da214d1f2f3d5a2dd3fea26591f930f9" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "75d60a8f928decd8b38897f80849768b7c540a5b" }, "mason.nvim": { "branch": "main", "commit": "9eaedb864cdadc29c6eb7d761a6c0d8aee26c91b" }, + "molten-nvim": { "branch": "main", "commit": "4e1c9997cb53b9d3236c5d6462d80119250ed5b7" }, "nerdicons.nvim": { "branch": "main", "commit": "2d257ff9b00b7d1510704e0a565a6a7ede76b79a" }, "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-code-action-menu": { "branch": "main", "commit": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b" }, diff --git a/lua/plugins/jupyter.lua b/lua/plugins/jupyter.lua new file mode 100644 index 0000000..ebe5e83 --- /dev/null +++ b/lua/plugins/jupyter.lua @@ -0,0 +1,12 @@ +return { + { "3rd/image.nvim", opts = { backend = "kitty" } }, + { + "benlubas/molten-nvim", + build = ":UpdateRemotePlugins", + init = function() + vim.g.molten_image_provider = "image.nvim" + vim.g.molten_virt_text_output = true + vim.g.molten_auto_open_output = false + end, + }, +} From d015cec64c5c25b9d48941d9e04c9e1502fbf96d Mon Sep 17 00:00:00 2001 From: noamfav <95364866+NoamFav@users.noreply.github.com> Date: Tue, 9 Sep 2025 08:51:24 +0200 Subject: [PATCH 15/83] feat (plugins): add turtle filetype support and treesitter configuration for mason plugin --- init.lua | 6 ++++++ lua/plugins/mason.lua | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/init.lua b/init.lua index fa5d2c2..3b8dca9 100644 --- a/init.lua +++ b/init.lua @@ -25,6 +25,12 @@ vim.diagnostic.config({ severity_sort = true, }) vim.filetype.add({ extension = { ino = "arduino" } }) +vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { + pattern = "*.ttl", + callback = function() + vim.bo.filetype = "turtle" + end, +}) vim.g.OmniSharp_server_use_mono = 0 diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 4ab8604..3187414 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -272,6 +272,10 @@ return { }, filetypes = { "arduino", "ino" }, }) + require("nvim-treesitter.configs").setup({ + ensure_installed = { "turtle" }, + highlight = { enable = true }, + }) end, }, { From 7a64dd4ac5cf33b5ba48f8c7536b28c5ff6993b5 Mon Sep 17 00:00:00 2001 From: NoamFav <95364866+NoamFav@users.noreply.github.com> Date: Thu, 23 Oct 2025 17:56:19 +0200 Subject: [PATCH 16/83] feat: Update plugin dependencies in main branch --- lazy-lock.json | 70 +++--- lua/plugins/mason.lua | 390 +++++++++++++++++---------------- lua/plugins/tailwind-tools.lua | 4 +- 3 files changed, 234 insertions(+), 230 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 65e6212..03a67bb 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -2,60 +2,60 @@ "2077.nvim": { "branch": "master", "commit": "ac84f753d225649c95ea86b0157f982c8f694237" }, "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "LuaSnip": { "branch": "master", "commit": "faf3c94a44508cec1b961406d36cc65113ff3b98" }, - "apple_music.nvim": { "branch": "main", "commit": "97bd196ba6d65655004579c79e11a277deaa79eb" }, + "apple_music.nvim": { "branch": "main", "commit": "bdfd85f3921e2579752b763de58f7dc827210aaf" }, "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, - "blink-cmp-dictionary": { "branch": "master", "commit": "43e0fbe8d273f92a87c58aa958c51c95557d20c4" }, - "blink-emoji.nvim": { "branch": "master", "commit": "c333509be8ca464fe05c72763c95b072392cceb6" }, - "blink.cmp": { "branch": "main", "commit": "196711b89a97c953877d6c257c62f18920a970f3" }, - "catppuccin": { "branch": "main", "commit": "8162a4bd9afb42837a655e404d1f937a87ba95e6" }, - "copilot.vim": { "branch": "release", "commit": "d1e8429bef7f7709586886b0a23a46fbecc685c4" }, + "blink-cmp-dictionary": { "branch": "master", "commit": "944b3b215b01303672d4213758db7c5c5a1e3c92" }, + "blink-emoji.nvim": { "branch": "master", "commit": "066013e4c98a9318408ee3f1ca2dbcb6fa3e4c06" }, + "blink.cmp": { "branch": "main", "commit": "87433840b4d8cce053d6b8cd57f3d75a27c8cd8b" }, + "catppuccin": { "branch": "main", "commit": "af58927c55c9f3272c940ff02b3cee94a1249f26" }, + "copilot.vim": { "branch": "release", "commit": "da369d90cfd6c396b1d0ec259836a1c7222fb2ea" }, "cyberdream.nvim": { "branch": "main", "commit": "c07db2e6cab236ead328afc2ae4e0e1e1c69cd68" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, - "formatter.nvim": { "branch": "master", "commit": "eb89a1f3e079f1b9680bc7293b75fffccb5e1598" }, - "git-blame.nvim": { "branch": "master", "commit": "8503b199edf9a666fe7b1a989cf14e3c26b2eb03" }, + "formatter.nvim": { "branch": "master", "commit": "b9d7f853da1197b83b8edb4cc4952f7ad3a42e41" }, + "git-blame.nvim": { "branch": "master", "commit": "54da04264ec5313d602aebea7c5dc90141696ad7" }, "git-conflict.nvim": { "branch": "main", "commit": "a1badcd070d176172940eb55d9d59029dad1c5a6" }, - "gitsigns.nvim": { "branch": "main", "commit": "8b729e489f1475615dc6c9737da917b3bc163605" }, + "gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" }, "glow.nvim": { "branch": "main", "commit": "5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, - "image.nvim": { "branch": "master", "commit": "a8d6829ce8472a79df140bc494e75f1847f8861e" }, + "image.nvim": { "branch": "master", "commit": "446a8a5cc7a3eae3185ee0c697732c32a5547a0b" }, "impatient.nvim": { "branch": "main", "commit": "47302af74be7b79f002773011f0d8e85679a7618" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, - "lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" }, - "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, + "lazy.nvim": { "branch": "main", "commit": "db067881fff0fd4be8c00e5bde7492e0e1c77a2f" }, + "lazygit.nvim": { "branch": "main", "commit": "2305deed25bc61b866d5d39189e9105a45cf1cfb" }, + "lspsaga.nvim": { "branch": "main", "commit": "8efe00d6aed9db6449969f889170f1a7e43101a1" }, + "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, "markview.nvim": { "branch": "main", "commit": "386a98e88e021a79df7f0494d8eb4145a78f59ae" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "3856bbb0da214d1f2f3d5a2dd3fea26591f930f9" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "75d60a8f928decd8b38897f80849768b7c540a5b" }, - "mason.nvim": { "branch": "main", "commit": "9eaedb864cdadc29c6eb7d761a6c0d8aee26c91b" }, - "molten-nvim": { "branch": "main", "commit": "4e1c9997cb53b9d3236c5d6462d80119250ed5b7" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "2304ff65ecc8cb2afc2484de3e2ed9a407edf0b9" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "molten-nvim": { "branch": "main", "commit": "c98f8c6d7a8a801b46e4766e000c574e0402c491" }, "nerdicons.nvim": { "branch": "main", "commit": "2d257ff9b00b7d1510704e0a565a6a7ede76b79a" }, - "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, + "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, "nvim-code-action-menu": { "branch": "main", "commit": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b" }, - "nvim-lspconfig": { "branch": "master", "commit": "562487bc108bf73c2493f9e701b9334b48163216" }, - "nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" }, - "nvim-tree.lua": { "branch": "master", "commit": "25d16aab7d29ca940a9feb92e6bb734697417009" }, - "nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" }, - "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, - "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "ec1a2431f8872f650a85ed71c24f0715df2e49c2" }, - "onedark.nvim": { "branch": "master", "commit": "11de4da47f3e69cb70c3ae9816bd8af166cbe121" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "nvim-lspconfig": { "branch": "master", "commit": "ececa531ecae813422697b5ef627a11cc964c2a7" }, + "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, + "nvim-tree.lua": { "branch": "master", "commit": "64e2192f5250796aa4a7f33c6ad888515af50640" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, + "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "a47388e5417e7f1cfa6962cc441a23c4c5fb2151" }, + "onedark.nvim": { "branch": "master", "commit": "de495fabe171d48aed5525f002d14414efcecbb2" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, - "rainbow-delimiters.nvim": { "branch": "master", "commit": "55ad4fb76ab68460f700599b7449385f0c4e858e" }, + "rainbow-delimiters.nvim": { "branch": "master", "commit": "3277ad5f96eb03c9d618c88e24f683e4364e578c" }, "semantic-highlight.vim": { "branch": "master", "commit": "7e141c2b7be0f2600276004fd2e7382a3fa0f690" }, - "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, - "sonokai": { "branch": "master", "commit": "f59c796780655c3b9da442d310ad2f2d735f2e56" }, - "tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" }, + "snacks.nvim": { "branch": "main", "commit": "8625e4bd72f624ea0daaf44dc53a0ce5a2b9ad9d" }, + "sonokai": { "branch": "master", "commit": "48c809c887ce7b7828f7ea27408fc2ef2179efb5" }, + "tagbar": { "branch": "master", "commit": "7bfffca1f121afb7a9e38747500bf5270e006bb1" }, "tailwind-tools": { "branch": "master", "commit": "fbe982901d4508b0dcd80e07addf0fcb6dab6c49" }, "telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, - "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" }, "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" }, "tokyonight.nvim": { "branch": "main", "commit": "c8ea87cd34b0267c44a67e90ff8f6e7d6af46ff9" }, - "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "trouble.nvim": { "branch": "main", "commit": "c098362fe603d3922095e7db595961e020bdf2d0" }, "vim-gradle": { "branch": "master", "commit": "508629fa2a3be1b2052e4e553593f60d12dfc090" }, "vim-jsx-pretty": { "branch": "master", "commit": "6989f1663cc03d7da72b5ef1c03f87e6ddb70b41" }, "vim-matlab": { "branch": "master", "commit": "eafe639be77454b6bf46f149a7695de773b702b9" }, - "vimtex": { "branch": "master", "commit": "08760834ce04903deb6f8760e61c11cf6f6b2f89" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } + "vimtex": { "branch": "master", "commit": "be9deac3a23eeb145ccf11dd09080795838496ce" }, + "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" } } diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 3187414..c923893 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -1,107 +1,31 @@ +-- lua/plugins/mason.lua return { + --------------------------------------------------------------------------- + -- Core LSP defaults (new API) + --------------------------------------------------------------------------- { "neovim/nvim-lspconfig", dependencies = { "saghen/blink.cmp" }, - - -- example using `opts` for defining servers - opts = { - servers = { - lua_ls = {}, - }, - }, - config = function(_, opts) - local lspconfig = require("lspconfig") - for server, config in pairs(opts.servers) do - -- passing config.capabilities to blink.cmp merges with the capabilities in your - -- `opts[server].capabilities, if you've defined it - config.capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities) - lspconfig[server].setup(config) - end - end, - }, - { - "williamboman/mason.nvim", config = function() - require("mason").setup() - end, - }, - { - "williamboman/mason-lspconfig.nvim", - opts = { - ensure_installed = { - -- Language Servers - "jdtls", -- Java - "pyright", -- Python - "rust_analyzer", -- Rust - "clangd", -- C/C++ - "gopls", -- Go - "emmet_ls", -- HTML/CSS - "html", -- HTML - "tailwindcss", -- Tailwind CSS - "jsonls", -- JSON - "solargraph", -- Ruby - "sqlls", -- SQL - "yamlls", -- YAML - "bashls", -- Bash - "dockerls", -- Docker - "elixirls", -- Elixir - "vimls", -- Vim - "lua_ls", -- Lua - "eslint", -- JavaScript/TypeScript - "graphql", -- GraphQL - "phpactor", -- PHP - "perlnavigator", -- Perl - "terraformls", -- Terraform - "hls", -- Haskell - "kotlin_language_server", -- Kotlin - "marksman", -- Markdown - "svelte", -- Svelte - "lemminx", -- XML - "ltex", -- LaTeX - "ts_ls", -- TypeScript - "tailwindcss", -- Tailwind CSS - "arduino_language_server", -- Arduino - }, - automatic_installation = true, - handlers = { - function(server_name) - require("lspconfig")[server_name].setup({ - on_attach = function(client, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end - buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") - end, - capabilities = require("blink.cmp").get_lsp_capabilities(), - }) + local caps = require("blink.cmp").get_lsp_capabilities() + + -- Apply shared defaults to all servers + vim.lsp.config("*", { + capabilities = caps, + on_attach = function(_, bufnr) + -- Keep your old buffer-local setting + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") end, - }, - }, - }, - { - "nvimdev/lspsaga.nvim", - dependencies = { "nvim-lspconfig" }, - config = function() - require("lspsaga").setup({ - lightbulb = { - enable = true, -- Disable the lightbulb to avoid shaking - sign = false, - virtual_text = true, -- You can keep virtual text if you prefer - }, - }) - end, - }, - { - "neovim/nvim-lspconfig", - config = function() - require("lspconfig").ts_ls.setup({ - -- Any specific settings you want to include }) - require("lspconfig")["jdtls"].setup({ - cmd = { "jdtls" }, -- Mason will automatically handle the path + + -- === Per-server overrides / custom configs (define only; enabling happens later) === + + -- TypeScript + vim.lsp.config("ts_ls", {}) + vim.lsp.config("tailwindcss", {}) + -- Java (JDTLS) + vim.lsp.config("jdtls", { + cmd = { "jdtls" }, root_dir = function(fname) return require("jdtls.setup").find_root({ ".git", "mvnw", "gradlew" }, fname) end, @@ -110,33 +34,27 @@ return { contentProvider = { preferred = "fernflower" }, }, }, - on_attach = function(client, bufnr) - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end - buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") + on_attach = function(_, bufnr) + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") end, }) - require("lspconfig").pyright.setup({ + + -- Python (pyright) + vim.lsp.config("pyright", { root_dir = function(fname) - -- Find the git directory or any of the common Python project files - return require("lspconfig.util").find_git_ancestor(fname) - or require("lspconfig.util").root_pattern( - "pyproject.toml", - "setup.py", - "requirements.txt", - ".git" - )(fname) - or require("lspconfig.util").path.dirname(fname) + local util = require("lspconfig.util") + return util.find_git_ancestor(fname) + or util.root_pattern("pyproject.toml", "setup.py", "requirements.txt", ".git")(fname) + or util.path.dirname(fname) end, }) - -- Define the Unity project path + + -- C# / Unity (OmniSharp) local unity_project_path = vim.fn.expand("~/Neoware/ShadowedHunterMetroidvania") local solution_path = unity_project_path .. "/ShadowedHunterMetroidvania.sln" - require("lspconfig").omnisharp.setup({ - capabilities = require("blink-cmp").get_lsp_capabilities(), - on_attach = function(client, bufnr) + vim.lsp.config("omnisharp", { + on_attach = function(_, bufnr) vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") local bufopts = { noremap = true, silent = true, buffer = bufnr } vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts) @@ -147,12 +65,8 @@ return { end, handlers = { ["textDocument/definition"] = function(...) - local status, extended = pcall(require, "omnisharp_extended") - if status then - return extended.handler(...) - else - return vim.lsp.handlers["textDocument/definition"](...) - end + local ok, extended = pcall(require, "omnisharp_extended") + return ok and extended.handler(...) or vim.lsp.handlers["textDocument/definition"](...) end, }, cmd = { @@ -163,21 +77,13 @@ return { tostring(vim.fn.getpid()), }, root_dir = function(fname) - -- First try to find Unity-specific files - local unity_root = require("lspconfig").util.root_pattern( - "Assembly-CSharp.csproj", - "*.sln", - "Assets", - "Packages/manifest.json" - )(fname) - + local util = require("lspconfig").util + local unity_root = + util.root_pattern("Assembly-CSharp.csproj", "*.sln", "Assets", "Packages/manifest.json")(fname) if unity_root then return unity_root end - - -- Fallback to standard patterns - return require("lspconfig").util.root_pattern("*.sln", "*.csproj", ".git")(fname) - or require("lspconfig").util.path.dirname(fname) + return util.root_pattern("*.sln", "*.csproj", ".git")(fname) or util.path.dirname(fname) end, filetypes = { "cs", "vb" }, init_options = { @@ -188,41 +94,43 @@ return { enableImportCompletion = true, maxProjectResults = 250, enablePackageRestore = true, - sdk = { - name = "Microsoft.NET.Sdk", - version = "6.0.0", - }, + sdk = { name = "Microsoft.NET.Sdk", version = "6.0.0" }, }, - -- Unity-specific settings settings = { omnisharp = { - useModernNet = false, -- Unity typically uses Mono + useModernNet = false, enableMsBuildLoadProjectsOnDemand = true, enableRoslynAnalyzers = true, enableEditorConfigSupport = true, enableImportCompletion = true, enableAsyncCompletion = true, projectLoadTimeout = 120, - useGlobalMono = "always", -- Force using Mono for Unity projects + useGlobalMono = "always", monoPath = "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono", }, }, }) - require("lspconfig").kotlin_language_server.setup({ + + -- Kotlin + vim.lsp.config("kotlin_language_server", { cmd = { "kotlin-language-server" }, root_dir = require("lspconfig").util.root_pattern("build.gradle", "settings.gradle", ".git"), }) - require("lspconfig").sourcekit.setup({ + + -- Swift + vim.lsp.config("sourcekit", { cmd = { "xcrun", "sourcekit-lsp" }, filetypes = { "swift" }, root_dir = require("lspconfig").util.root_pattern("Package.swift", ".git"), }) - require("lspconfig").dartls.setup({ + + -- Dart + vim.lsp.config("dartls", { cmd = { "dart", "language-server", "--protocol=lsp" }, filetypes = { "dart" }, root_dir = function(fname) - return require("lspconfig").util.root_pattern("pubspec.yaml", ".git")(fname) - or require("lspconfig").util.path.dirname(fname) -- Fallback to file's directory + local util = require("lspconfig").util + return util.root_pattern("pubspec.yaml", ".git")(fname) or util.path.dirname(fname) end, init_options = { closingLabels = true, @@ -231,17 +139,14 @@ return { outline = true, suggestFromUnimportedLibraries = true, }, - settings = { - dart = { - completeFunctionCalls = true, - showTodos = true, - }, - }, + settings = { dart = { completeFunctionCalls = true, showTodos = true } }, }) - require("lspconfig").metals.setup({ + + -- Scala (Metals) + vim.lsp.config("metals", { root_dir = function(fname) - return require("lspconfig").util.root_pattern("build.sbt", "build.sc", ".git")(fname) - or require("lspconfig").util.path.dirname(fname) -- Fallback to file's directory + local util = require("lspconfig").util + return util.root_pattern("build.sbt", "build.sc", ".git")(fname) or util.path.dirname(fname) end, settings = { metals = { @@ -251,16 +156,22 @@ return { }, }, }) - require("lspconfig").sqlls.setup({ + + -- SQL + vim.lsp.config("sqlls", { root_dir = function(fname) - return require("lspconfig").util.root_pattern(".sql_project", ".git")(fname) - or require("lspconfig").util.path.dirname(fname) + local util = require("lspconfig").util + return util.root_pattern(".sql_project", ".git")(fname) or util.path.dirname(fname) end, }) - require("lspconfig").perlnavigator.setup({ - root_dir = require("lspconfig").util.root_pattern(".git", "."), -- Find the git directory or the current directory + + -- Perl + vim.lsp.config("perlnavigator", { + root_dir = require("lspconfig").util.root_pattern(".git", "."), }) - require("lspconfig").arduino_language_server.setup({ + + -- Arduino + vim.lsp.config("arduino_language_server", { cmd = { "arduino-language-server", "-cli", @@ -272,28 +183,119 @@ return { }, filetypes = { "arduino", "ino" }, }) - require("nvim-treesitter.configs").setup({ - ensure_installed = { "turtle" }, - highlight = { enable = true }, + end, + }, + + --------------------------------------------------------------------------- + -- Mason core + --------------------------------------------------------------------------- + { + "williamboman/mason.nvim", + config = function() + require("mason").setup() + end, + }, + + --------------------------------------------------------------------------- + -- Mason-LSPConfig (install & enable servers) + --------------------------------------------------------------------------- + { + "williamboman/mason-lspconfig.nvim", + opts = function() + local servers = { + -- Language Servers + "jdtls", -- Java + "pyright", -- Python + "rust_analyzer", -- Rust + "clangd", -- C/C++ + "gopls", -- Go + "emmet_ls", -- HTML/CSS + "html", -- HTML + "tailwindcss", -- Tailwind CSS + "jsonls", -- JSON + "solargraph", -- Ruby + "sqlls", -- SQL + "yamlls", -- YAML + "bashls", -- Bash + "dockerls", -- Docker + "elixirls", -- Elixir + "vimls", -- Vim + "lua_ls", -- Lua + "eslint", -- JavaScript/TypeScript + "graphql", -- GraphQL + "phpactor", -- PHP + "perlnavigator", -- Perl + "terraformls", -- Terraform + "hls", -- Haskell + "kotlin_language_server", + "marksman", -- Markdown + "svelte", -- Svelte + "lemminx", -- XML + "ltex", -- LaTeX + "ts_ls", -- TypeScript + "arduino_language_server", + -- note: tailwindcss listed once + } + + return { + ensure_installed = servers, + -- We will explicitly enable after setup to avoid deprecated .setup calls + -- (mason-lspconfig can do automatic enabling in newer versions, but we keep it explicit here) + -- automatic_installation = true, -- optional + handlers = {}, + _servers_to_enable = servers, -- pass through for our config() below + } + end, + config = function(_, opts) + require("mason-lspconfig").setup({ + ensure_installed = opts.ensure_installed, + -- automatic_installation = true, -- enable if you want Mason to auto-install missing servers + }) + + -- Explicitly enable all known servers (safe if already enabled) + -- Servers with custom config defined above will use those configs. + for _, name in ipairs(opts._servers_to_enable or {}) do + pcall(vim.lsp.enable, name) + end + end, + }, + + --------------------------------------------------------------------------- + -- UI sugar for LSP + --------------------------------------------------------------------------- + { + "nvimdev/lspsaga.nvim", + dependencies = { "neovim/nvim-lspconfig" }, + config = function() + require("lspsaga").setup({ + lightbulb = { + enable = true, + sign = false, + virtual_text = true, + }, }) end, }, + + --------------------------------------------------------------------------- + -- Extra tools via Mason + --------------------------------------------------------------------------- { "WhoIsSethDaniel/mason-tool-installer.nvim", config = function() require("mason-tool-installer").setup({ ensure_installed = { - "prettierd", -- JavaScript, TypeScript, HTML, CSS, JSON, YAML, Markdown + "prettierd", -- JS/TS/HTML/CSS/JSON/YAML/MD "black", -- Python - "isort", -- Python imports sorting + "isort", -- Python imports "stylua", -- Lua "clang-format", -- C/C++ "csharpier", -- C# - "google-java-format", -- Java + "google-java-format", "ktlint", -- Kotlin - "shfmt", -- Shell scripts - "beautysh", -- Alternative Shell formatter - "rustywind", -- Rust + "shfmt", -- Shell + "beautysh", -- Shell (alt) + "rustywind", -- Tailwind class sorter "gofumpt", -- Go "sqlfmt", -- SQL "xmlformatter", -- XML @@ -304,6 +306,9 @@ return { end, }, + --------------------------------------------------------------------------- + -- Formatter (unchanged) + --------------------------------------------------------------------------- { "mhartington/formatter.nvim", config = function() @@ -319,11 +324,7 @@ return { c = { require("formatter.filetypes.c").clangformat }, cs = { function() - return { - exe = "dotnet-csharpier", - args = { "--write-stdout" }, - stdin = true, - } + return { exe = "dotnet-csharpier", args = { "--write-stdout" }, stdin = true } end, }, java = { require("formatter.filetypes.java").google_java_format }, @@ -338,36 +339,23 @@ return { markdown = { require("formatter.filetypes.markdown").prettier }, sql = { function() - return { - exe = "sqlfmt", -- Change to sql-formatter if desired - args = { "-" }, - stdin = true, - } + return { exe = "sqlfmt", args = { "-" }, stdin = true } end, }, xml = { function() - return { - exe = "xmlformatter", - args = { "-" }, - stdin = true, - } + return { exe = "xmlformatter", args = { "-" }, stdin = true } end, }, latex = { function() - return { - exe = "latexindent", - args = { "-" }, - stdin = true, - } + return { exe = "latexindent", args = { "-" }, stdin = true } end, }, - dockerfile = { function() return { - exe = "dockerfilelint", -- Replace with docker formatting tool if preferred + exe = "dockerfilelint", args = { vim.api.nvim_buf_get_name(0) }, stdin = true, } @@ -377,7 +365,7 @@ return { function() return { exe = "clang-format", - args = { "--assume-filename=sketch.ino" }, -- helps style detection + args = { "--assume-filename=sketch.ino" }, stdin = true, } end, @@ -385,11 +373,25 @@ return { }, }) - -- Set up autoformatting on save + -- Autoformat on save vim.api.nvim_create_autocmd("BufWritePost", { pattern = "*", command = "FormatWrite", }) end, }, + + --------------------------------------------------------------------------- + -- Treesitter (your special-case "turtle" from before) + --------------------------------------------------------------------------- + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function() + require("nvim-treesitter.configs").setup({ + ensure_installed = { "turtle" }, + highlight = { enable = true }, + }) + end, + }, } diff --git a/lua/plugins/tailwind-tools.lua b/lua/plugins/tailwind-tools.lua index caf41f5..19d9ef5 100644 --- a/lua/plugins/tailwind-tools.lua +++ b/lua/plugins/tailwind-tools.lua @@ -7,5 +7,7 @@ return { "nvim-telescope/telescope.nvim", -- optional "neovim/nvim-lspconfig", -- optional }, - opts = {}, -- your configuration + opts = { + server = { override = false }, + }, } From fa835041e2f4957f9a06cd1cf7211679acaf614e Mon Sep 17 00:00:00 2001 From: NoamFav <95364866+NoamFav@users.noreply.github.com> Date: Thu, 23 Oct 2025 19:41:40 +0200 Subject: [PATCH 17/83] fix (plugins): update lazy.nvim setup and configure core configuration --- "Icon\r" | 0 init.lua | 96 ++--- keymaps.vim | 125 ------ lazy-lock.json | 8 +- lua/core/autocmds.lua | 34 ++ lua/core/diagnostics.lua | 26 ++ lua/core/keymaps.lua | 86 ++++ lua/core/options.lua | 46 ++ lua/lsp/servers.lua | 201 +++++++++ lua/plugins.lua | 53 --- lua/plugins/autoSave.lua | 34 -- lua/plugins/autopair.lua | 15 - lua/plugins/blink-cmp.lua | 289 ------------- lua/plugins/coding/blink-cmp.lua | 13 + lua/plugins/coding/copilot.lua | 8 + lua/plugins/coding/snippets.lua | 8 + lua/plugins/colorschemes.lua | 156 ------- lua/plugins/editor/autopairs.lua | 5 + lua/plugins/editor/autosave.lua | 23 + lua/plugins/editor/comment.lua | 12 + lua/plugins/editor/harpoon.lua | 48 +++ lua/plugins/editor/ibl.lua | 20 + .../treesitter.lua} | 55 +-- lua/plugins/git.lua | 70 --- lua/plugins/ibl.lua | 26 -- lua/plugins/init.lua | 21 + lua/plugins/{ => lang}/jupyter.lua | 6 +- lua/plugins/lang/latex.lua | 19 + lua/plugins/lang/matlab.lua | 4 + lua/plugins/lang/web.lua | 18 + lua/plugins/latex.lua | 20 - lua/plugins/lsp/formatters.lua | 98 +++++ lua/plugins/lsp/mason.lua | 85 ++++ lua/plugins/lualine.lua | 29 -- lua/plugins/mason.lua | 397 ------------------ lua/plugins/nerdicons.lua | 16 - lua/plugins/nvim-tree.lua | 64 --- lua/plugins/nvim-web-devicons.lua | 11 - lua/plugins/tagbar.lua | 25 -- lua/plugins/tailwind-tools.lua | 13 - lua/plugins/telescope.lua | 67 --- lua/plugins/tools/git.lua | 70 +++ lua/plugins/tools/terminal.lua | 25 ++ lua/plugins/tools/trouble.lua | 42 ++ lua/plugins/tools/which-key.lua | 52 +++ lua/plugins/trouble.lua | 66 --- lua/plugins/ui/colorschemes.lua | 97 +++++ lua/plugins/ui/devicons.lua | 4 + lua/plugins/ui/lualine.lua | 26 ++ lua/plugins/ui/mini-icons.lua | 5 + lua/plugins/ui/nerdicons.lua | 14 + lua/plugins/{ => ui}/notifications.lua | 37 +- lua/plugins/ui/nvim-tree.lua | 63 +++ lua/plugins/{ => ui}/snacks.lua | 13 +- lua/plugins/ui/telescope.lua | 68 +++ ....config%back%lua%plugins%notifications.lua | Bin 0 -> 1113 bytes ...avier%.config%back%lua%plugins%trouble.lua | Bin 0 -> 672 bytes ...vier%.config%nvim%lua%core%diagnostics.lua | Bin 0 -> 4382 bytes ...amfavier%.config%nvim%lua%core%keymaps.lua | Bin 0 -> 709 bytes ...config%nvim%lua%plugins%coding%copilot.lua | Bin 0 -> 693 bytes ...onfig%nvim%lua%plugins%coding%snippets.lua | Bin 0 -> 1284 bytes ...onfig%nvim%lua%plugins%editor%autosave.lua | Bin 0 -> 2396 bytes ...amfavier%.config%nvim%lua%plugins%init.lua | Bin 0 -> 695 bytes ...ier%.config%nvim%lua%plugins%lsp%mason.lua | Bin 0 -> 2304 bytes ...ier%.config%nvim%lua%plugins%tools%git.lua | Bin 0 -> 1687 bytes ....config%nvim%lua%plugins%tools%trouble.lua | Bin 0 -> 5040 bytes ...onfig%nvim%lua%plugins%tools%which-key.lua | Bin 0 -> 4042 bytes ...r%.config%nvim%lua%plugins%ui%devicons.lua | Bin 0 -> 1140 bytes ...er%.config%nvim%lua%plugins%ui%lualine.lua | Bin 0 -> 23363 bytes ....config%nvim%lua%plugins%ui%mini-icons.lua | Bin 0 -> 1195 bytes ...%.config%nvim%lua%plugins%ui%nerdicons.lua | Bin 0 -> 2325 bytes ...nfig%nvim%lua%plugins%ui%notifications.lua | Bin 0 -> 787 bytes ...%.config%nvim%lua%plugins%ui%nvim-tree.lua | Bin 0 -> 2395 bytes ...ier%.config%nvim%lua%plugins%ui%snacks.lua | Bin 0 -> 1655 bytes ...%.config%nvim%lua%plugins%ui%telescope.lua | Bin 0 -> 2785 bytes 75 files changed, 1331 insertions(+), 1601 deletions(-) delete mode 100644 "Icon\r" delete mode 100644 keymaps.vim create mode 100644 lua/core/autocmds.lua create mode 100644 lua/core/diagnostics.lua create mode 100644 lua/core/keymaps.lua create mode 100644 lua/core/options.lua create mode 100644 lua/lsp/servers.lua delete mode 100644 lua/plugins.lua delete mode 100644 lua/plugins/autoSave.lua delete mode 100644 lua/plugins/autopair.lua delete mode 100644 lua/plugins/blink-cmp.lua create mode 100644 lua/plugins/coding/blink-cmp.lua create mode 100644 lua/plugins/coding/copilot.lua create mode 100644 lua/plugins/coding/snippets.lua delete mode 100644 lua/plugins/colorschemes.lua create mode 100644 lua/plugins/editor/autopairs.lua create mode 100644 lua/plugins/editor/autosave.lua create mode 100644 lua/plugins/editor/comment.lua create mode 100644 lua/plugins/editor/harpoon.lua create mode 100644 lua/plugins/editor/ibl.lua rename lua/plugins/{nvim-treesitter.lua => editor/treesitter.lua} (51%) delete mode 100644 lua/plugins/git.lua delete mode 100644 lua/plugins/ibl.lua create mode 100644 lua/plugins/init.lua rename lua/plugins/{ => lang}/jupyter.lua (71%) create mode 100644 lua/plugins/lang/latex.lua create mode 100644 lua/plugins/lang/matlab.lua create mode 100644 lua/plugins/lang/web.lua delete mode 100644 lua/plugins/latex.lua create mode 100644 lua/plugins/lsp/formatters.lua create mode 100644 lua/plugins/lsp/mason.lua delete mode 100644 lua/plugins/lualine.lua delete mode 100644 lua/plugins/mason.lua delete mode 100644 lua/plugins/nerdicons.lua delete mode 100644 lua/plugins/nvim-tree.lua delete mode 100644 lua/plugins/nvim-web-devicons.lua delete mode 100644 lua/plugins/tagbar.lua delete mode 100644 lua/plugins/tailwind-tools.lua delete mode 100644 lua/plugins/telescope.lua create mode 100644 lua/plugins/tools/git.lua create mode 100644 lua/plugins/tools/terminal.lua create mode 100644 lua/plugins/tools/trouble.lua create mode 100644 lua/plugins/tools/which-key.lua delete mode 100644 lua/plugins/trouble.lua create mode 100644 lua/plugins/ui/colorschemes.lua create mode 100644 lua/plugins/ui/devicons.lua create mode 100644 lua/plugins/ui/lualine.lua create mode 100644 lua/plugins/ui/mini-icons.lua create mode 100644 lua/plugins/ui/nerdicons.lua rename lua/plugins/{ => ui}/notifications.lua (64%) create mode 100644 lua/plugins/ui/nvim-tree.lua rename lua/plugins/{ => ui}/snacks.lua (75%) create mode 100644 lua/plugins/ui/telescope.lua create mode 100644 undo/%Users%noamfavier%.config%back%lua%plugins%notifications.lua create mode 100644 undo/%Users%noamfavier%.config%back%lua%plugins%trouble.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%core%diagnostics.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%core%keymaps.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%coding%copilot.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%coding%snippets.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%editor%autosave.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%init.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%lsp%mason.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%tools%git.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%tools%trouble.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%tools%which-key.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%devicons.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%lualine.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%mini-icons.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%nerdicons.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%notifications.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%nvim-tree.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%snacks.lua create mode 100644 undo/%Users%noamfavier%.config%nvim%lua%plugins%ui%telescope.lua diff --git "a/Icon\r" "b/Icon\r" deleted file mode 100644 index e69de29..0000000 diff --git a/init.lua b/init.lua index 3b8dca9..1b5f1bd 100644 --- a/init.lua +++ b/init.lua @@ -1,3 +1,4 @@ +-- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ @@ -5,77 +6,36 @@ if not vim.loop.fs_stat(lazypath) then "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release + "--branch=stable", lazypath, }) end - -vim.g.mapleader = " " -vim.opt.termguicolors = true vim.opt.rtp:prepend(lazypath) -require("lazy").setup("plugins") - -vim.cmd("source ~/.config/nvim/keymaps.vim") -vim.g.copilot_enabled = false - -vim.diagnostic.config({ - virtual_text = true, - update_in_insert = true, - severity_sort = true, -}) -vim.filetype.add({ extension = { ino = "arduino" } }) -vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { - pattern = "*.ttl", - callback = function() - vim.bo.filetype = "turtle" - end, +-- Set leader keys before loading plugins +vim.g.mapleader = " " +vim.g.maplocalleader = " " + +-- Load core configuration +require("core.options") +require("core.keymaps") +require("core.autocmds") +require("core.diagnostics") + +-- Setup lazy.nvim +require("lazy").setup("plugins", { + defaults = { lazy = true }, + install = { colorscheme = { "tokyonight" } }, + checker = { enabled = true }, + performance = { + rtp = { + disabled_plugins = { + "gzip", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, }) - -vim.g.OmniSharp_server_use_mono = 0 - -local harpoon = require("harpoon") -local mark = require("harpoon.mark") -local ui = require("harpoon.ui") - --- Add a file to Harpoon's quick access list -vim.api.nvim_set_keymap( - "n", - "a", - "lua require('harpoon.mark').add_file()", - { noremap = true, silent = true } -) - --- Open Harpoon's quick access menu -vim.api.nvim_set_keymap( - "n", - "h", - "lua require('harpoon.ui').toggle_quick_menu()", - { noremap = true, silent = true } -) - --- Navigate to files by Harpoon index -vim.api.nvim_set_keymap( - "n", - "1", - "lua require('harpoon.ui').nav_file(1)", - { noremap = true, silent = true } -) -vim.api.nvim_set_keymap( - "n", - "2", - "lua require('harpoon.ui').nav_file(2)", - { noremap = true, silent = true } -) -vim.api.nvim_set_keymap( - "n", - "3", - "lua require('harpoon.ui').nav_file(3)", - { noremap = true, silent = true } -) -vim.api.nvim_set_keymap( - "n", - "4", - "lua require('harpoon.ui').nav_file(4)", - { noremap = true, silent = true } -) diff --git a/keymaps.vim b/keymaps.vim deleted file mode 100644 index d9562fc..0000000 --- a/keymaps.vim +++ /dev/null @@ -1,125 +0,0 @@ -set termguicolors " Enable true color support -set t_ZH=[3m " Enable italics -set t_ZR=[23m " Disable italics - -let g:sonokai_style = 'andromeda' -let g:sonokai_enable_italic = 1 -let g:sonokai_better_performance = 1 - -colorscheme tokyonight-night - -let g:copilot_enabled = v:true -" Trigger completion -imap