From f492d4469fd1da628148b0c088902603a4abc91a Mon Sep 17 00:00:00 2001 From: Heavy Date: Sun, 29 Sep 2024 21:12:49 +0200 Subject: [PATCH] (nvim): Add neovim plugin configuration. --- .chezmoiignore | 7 ++++ .chezmoitemplates/nvim/init.lua | 2 + .chezmoitemplates/nvim/lazy-lock.json | 14 +++++++ .chezmoitemplates/nvim/lua/config/keymaps.lua | 21 ++++++++++ .chezmoitemplates/nvim/lua/config/lazy.lua | 35 +++++++++++++++++ .../nvim/lua/plugins/catppuccin.lua | 9 +++++ .../nvim/lua/plugins/dashboard-nvim.lua | 26 +++++++++++++ .chezmoitemplates/nvim/lua/plugins/mason.lua | 39 +++++++++++++++++++ .../nvim/lua/plugins/nvim-tree.lua | 5 +++ .../nvim/lua/plugins/telescope.lua | 24 ++++++++++++ .../nvim/lua/plugins/web-devicons.lua | 3 ++ .../nvim/lua/plugins/whichkey.lua | 3 ++ AppData/Local/nvim/init.lua.tmpl | 1 + .../Local/nvim/lua/config/keymaps.lua.tmpl | 1 + AppData/Local/nvim/lua/config/lazy.lua.tmpl | 1 + .../nvim/lua/plugins/catppuccin.lua.tmpl | 1 + .../nvim/lua/plugins/dashboard-nvim.lua.tmpl | 1 + AppData/Local/nvim/lua/plugins/mason.lua.tmpl | 1 + .../Local/nvim/lua/plugins/nvim-tree.lua.tmpl | 1 + .../Local/nvim/lua/plugins/telescope.lua.tmpl | 1 + .../nvim/lua/plugins/web-devicons.lua.tmpl | 1 + .../Local/nvim/lua/plugins/whichkey.lua.tmpl | 1 + private_dot_config/nvim/init.lua.tmpl | 1 + .../nvim/lua/config/keymaps.lua.tmpl | 1 + .../nvim/lua/config/lazy.lua.tmpl | 1 + .../nvim/lua/plugins/catppuccin.lua.tmpl | 1 + .../nvim/lua/plugins/dashboard-nvim.lua.tmpl | 1 + .../nvim/lua/plugins/mason.lua.tmpl | 1 + .../nvim/lua/plugins/nvim-tree.lua.tmpl | 1 + .../nvim/lua/plugins/telescope.lua.tmpl | 1 + .../nvim/lua/plugins/web-devicons.lua.tmpl | 1 + .../nvim/lua/plugins/whichkey.lua.tmpl | 1 + 32 files changed, 208 insertions(+) create mode 100644 .chezmoitemplates/nvim/init.lua create mode 100644 .chezmoitemplates/nvim/lazy-lock.json create mode 100644 .chezmoitemplates/nvim/lua/config/keymaps.lua create mode 100644 .chezmoitemplates/nvim/lua/config/lazy.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/catppuccin.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/dashboard-nvim.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/mason.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/nvim-tree.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/telescope.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/web-devicons.lua create mode 100644 .chezmoitemplates/nvim/lua/plugins/whichkey.lua create mode 100644 AppData/Local/nvim/init.lua.tmpl create mode 100644 AppData/Local/nvim/lua/config/keymaps.lua.tmpl create mode 100644 AppData/Local/nvim/lua/config/lazy.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/catppuccin.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/dashboard-nvim.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/mason.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/nvim-tree.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/telescope.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/web-devicons.lua.tmpl create mode 100644 AppData/Local/nvim/lua/plugins/whichkey.lua.tmpl create mode 100644 private_dot_config/nvim/init.lua.tmpl create mode 100644 private_dot_config/nvim/lua/config/keymaps.lua.tmpl create mode 100644 private_dot_config/nvim/lua/config/lazy.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/catppuccin.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/dashboard-nvim.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/mason.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/nvim-tree.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/telescope.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/web-devicons.lua.tmpl create mode 100644 private_dot_config/nvim/lua/plugins/whichkey.lua.tmpl diff --git a/.chezmoiignore b/.chezmoiignore index ba132c8..b1ff486 100644 --- a/.chezmoiignore +++ b/.chezmoiignore @@ -7,3 +7,10 @@ vim-lightline.tar.gz {{- if (and (ne .chezmoi.hostname "docker-ce-ubuntu-2gb-nbg1-1") (ne .chezmoi.hostname "nb4113"))}} .local/share/bash-completion/completions/rustup {{- end }} + +{{- if eq .chezmoi.os "windows" }} +.config/nvim +{{- end }} +{{- if eq .chezmoi.os "linux" }} +AppData/ +{{- end }} diff --git a/.chezmoitemplates/nvim/init.lua b/.chezmoitemplates/nvim/init.lua new file mode 100644 index 0000000..f9d9654 --- /dev/null +++ b/.chezmoitemplates/nvim/init.lua @@ -0,0 +1,2 @@ +require("config.lazy") +require("config.keymaps") diff --git a/.chezmoitemplates/nvim/lazy-lock.json b/.chezmoitemplates/nvim/lazy-lock.json new file mode 100644 index 0000000..4aae98e --- /dev/null +++ b/.chezmoitemplates/nvim/lazy-lock.json @@ -0,0 +1,14 @@ +{ + "catppuccin": { "branch": "main", "commit": "63685e1562ef53873c9764b483d7ac5c7a608922" }, + "dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" }, + "lazy.nvim": { "branch": "main", "commit": "460e1cd8f24e364d54543a4b0e83f6f4ec1f65fb" }, + "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "nvim-lspconfig": { "branch": "master", "commit": "a9bc587e9ae0cbcb3e90a2e9342f86b3b78c4408" }, + "nvim-tree.lua": { "branch": "master", "commit": "59a8a6ae5e9d3eae99d08ab655d12fd51d5d17f3" }, + "nvim-web-devicons": { "branch": "master", "commit": "26220156aafb198b2de6a4cf80c1b120a3768da0" }, + "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, + "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, + "which-key.nvim": { "branch": "main", "commit": "fb070344402cfc662299d9914f5546d840a22126" } +} diff --git a/.chezmoitemplates/nvim/lua/config/keymaps.lua b/.chezmoitemplates/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..de51fac --- /dev/null +++ b/.chezmoitemplates/nvim/lua/config/keymaps.lua @@ -0,0 +1,21 @@ +-- Aussehen +vim.opt.relativenumber = true -- Zeigt an der Seite die relative Zeilennummer an +vim.opt.termguicolors = true -- Schaltet 24-bit Farben an +vim.opt.scrolloff = 8 -- Verlangsamt den Scrolldown acht Zeilen vor Dateiende +-- Indentation und Zeilenumbruch +vim.opt.smartindent = true -- Automatisch Indentations setzen +vim.opt.wrap = false -- Schaltet Zeilenumbruch ab +vim.opt.clipboard:append("unnamedplus") -- Text in eine andere Anwendung kopieren +-- Tastenbelegungen (Leader-Key ist in lazy.lua angegeben) +vim.keymap.set("n", "pf", vim.cmd.Ex) -- Öffnet File-Explorer + +-- Nvim-Tree +vim.keymap.set("n","s",":NvimTreeToggle", { noremap = true, silent = true }) +vim.keymap.set("n","d",":NvimTreeFocus", { noremap = true, silent = true }) +vim.keymap.set("n","c",":NvimTreeClose", { noremap = true, silent = true }) + +-- Nvim-Telescope +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'fd', builtin.buffers, {}) diff --git a/.chezmoitemplates/nvim/lua/config/lazy.lua b/.chezmoitemplates/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..f5ee74c --- /dev/null +++ b/.chezmoitemplates/nvim/lua/config/lazy.lua @@ -0,0 +1,35 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- import your plugins + { import = "plugins" }, + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "habamax" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/.chezmoitemplates/nvim/lua/plugins/catppuccin.lua b/.chezmoitemplates/nvim/lua/plugins/catppuccin.lua new file mode 100644 index 0000000..11aab2c --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/catppuccin.lua @@ -0,0 +1,9 @@ +return { + "catppuccin/nvim", + lazy = false, + name = "catppuccin", + priority = 1000, + config = function() + vim.cmd('colorscheme catppuccin-latte') + end +} diff --git a/.chezmoitemplates/nvim/lua/plugins/dashboard-nvim.lua b/.chezmoitemplates/nvim/lua/plugins/dashboard-nvim.lua new file mode 100644 index 0000000..6693c19 --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/dashboard-nvim.lua @@ -0,0 +1,26 @@ +return { + 'nvimdev/dashboard-nvim', + event = 'VimEnter', + config = function() + require('dashboard').setup { + theme = 'hyper', + config = { + week_header = { + enable = true, + }, + shortcut = { + { desc = '󰊳 Update', group = '@property', action = 'Lazy update', key = 'u' }, + { + icon = ' ', + icon_hl = '@variable', + desc = 'Files', + group = 'Label', + action = 'Telescope find_files', + key = 'f', + }, + }, + }, + } + end, + dependencies = { {'nvim-tree/nvim-web-devicons'} } +} diff --git a/.chezmoitemplates/nvim/lua/plugins/mason.lua b/.chezmoitemplates/nvim/lua/plugins/mason.lua new file mode 100644 index 0000000..21b2940 --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/mason.lua @@ -0,0 +1,39 @@ +-- Standardkonfiguration mit Icons setzen +return { + { + "williamboman/mason.nvim", + event = "BufReadPre", + config = function() + require("mason").setup { + ui = { + icons = { + package_installed = "✓", + package_pending = "➜", + package_uninstalled = "✗" + }, + }, + } + end + }, + { + "williamboman/mason-lspconfig.nvim", + config = function() + require("mason-lspconfig").setup({ + -- Installation der LSPs für Lua, C und Python + ensure_installed = { "lua_ls", "clangd", "pylsp", "jdtls"}, + }) + end + }, + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({}) + lspconfig.clangd.setup({}) + lspconfig.jdtls.setup({}) + -- Keybinds + vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) -- Dokumentation hervorufen + vim.keymap.set({'n','v'}, 'ka', vim.lsp.buf.code_action, {}) -- Code Action aufrufen + end + } +} diff --git a/.chezmoitemplates/nvim/lua/plugins/nvim-tree.lua b/.chezmoitemplates/nvim/lua/plugins/nvim-tree.lua new file mode 100644 index 0000000..a9810f4 --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/nvim-tree.lua @@ -0,0 +1,5 @@ +return { + "nvim-tree/nvim-tree.lua", + lazy = false, + config = {} +} diff --git a/.chezmoitemplates/nvim/lua/plugins/telescope.lua b/.chezmoitemplates/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..8c031f6 --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/telescope.lua @@ -0,0 +1,24 @@ +-- Telescope konfigurieren +require('telescope').setup{ + defaults = { + mappings = { + i = { + -- Mit j und k die Suche navigieren + [""] = "which_key", + [""] = "move_selection_next", + [""] = "move_selection_previous" + } + } + }, + pickers = { + }, + extensions = { + -- Weitere Addons für Telescope im README finden + } +} + +-- Telescope installieren +return { + 'nvim-telescope/telescope.nvim', tag = '0.1.8', + dependencies = { 'nvim-lua/plenary.nvim' } + } diff --git a/.chezmoitemplates/nvim/lua/plugins/web-devicons.lua b/.chezmoitemplates/nvim/lua/plugins/web-devicons.lua new file mode 100644 index 0000000..cae2e83 --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/web-devicons.lua @@ -0,0 +1,3 @@ +return { + 'nvim-tree/nvim-web-devicons' +} diff --git a/.chezmoitemplates/nvim/lua/plugins/whichkey.lua b/.chezmoitemplates/nvim/lua/plugins/whichkey.lua new file mode 100644 index 0000000..c3d8c0a --- /dev/null +++ b/.chezmoitemplates/nvim/lua/plugins/whichkey.lua @@ -0,0 +1,3 @@ +return { + "folke/which-key.nvim" +} diff --git a/AppData/Local/nvim/init.lua.tmpl b/AppData/Local/nvim/init.lua.tmpl new file mode 100644 index 0000000..98e067d --- /dev/null +++ b/AppData/Local/nvim/init.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/init.lua" . }} diff --git a/AppData/Local/nvim/lua/config/keymaps.lua.tmpl b/AppData/Local/nvim/lua/config/keymaps.lua.tmpl new file mode 100644 index 0000000..31b4999 --- /dev/null +++ b/AppData/Local/nvim/lua/config/keymaps.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/config/keymaps.lua" . }} diff --git a/AppData/Local/nvim/lua/config/lazy.lua.tmpl b/AppData/Local/nvim/lua/config/lazy.lua.tmpl new file mode 100644 index 0000000..d427d81 --- /dev/null +++ b/AppData/Local/nvim/lua/config/lazy.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/config/lazy.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/catppuccin.lua.tmpl b/AppData/Local/nvim/lua/plugins/catppuccin.lua.tmpl new file mode 100644 index 0000000..016f3f0 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/catppuccin.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/catppuccin.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/dashboard-nvim.lua.tmpl b/AppData/Local/nvim/lua/plugins/dashboard-nvim.lua.tmpl new file mode 100644 index 0000000..cca55bd --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/dashboard-nvim.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/dashboard-nvim.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/mason.lua.tmpl b/AppData/Local/nvim/lua/plugins/mason.lua.tmpl new file mode 100644 index 0000000..5946964 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/mason.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/mason.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/nvim-tree.lua.tmpl b/AppData/Local/nvim/lua/plugins/nvim-tree.lua.tmpl new file mode 100644 index 0000000..08b2411 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/nvim-tree.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/nvim-tree.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/telescope.lua.tmpl b/AppData/Local/nvim/lua/plugins/telescope.lua.tmpl new file mode 100644 index 0000000..ccf3fa3 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/telescope.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/telescope.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/web-devicons.lua.tmpl b/AppData/Local/nvim/lua/plugins/web-devicons.lua.tmpl new file mode 100644 index 0000000..ad05f49 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/web-devicons.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/web-devicons.lua" . }} diff --git a/AppData/Local/nvim/lua/plugins/whichkey.lua.tmpl b/AppData/Local/nvim/lua/plugins/whichkey.lua.tmpl new file mode 100644 index 0000000..f489454 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/whichkey.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/whichkey.lua" . }} diff --git a/private_dot_config/nvim/init.lua.tmpl b/private_dot_config/nvim/init.lua.tmpl new file mode 100644 index 0000000..98e067d --- /dev/null +++ b/private_dot_config/nvim/init.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/init.lua" . }} diff --git a/private_dot_config/nvim/lua/config/keymaps.lua.tmpl b/private_dot_config/nvim/lua/config/keymaps.lua.tmpl new file mode 100644 index 0000000..31b4999 --- /dev/null +++ b/private_dot_config/nvim/lua/config/keymaps.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/config/keymaps.lua" . }} diff --git a/private_dot_config/nvim/lua/config/lazy.lua.tmpl b/private_dot_config/nvim/lua/config/lazy.lua.tmpl new file mode 100644 index 0000000..d427d81 --- /dev/null +++ b/private_dot_config/nvim/lua/config/lazy.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/config/lazy.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/catppuccin.lua.tmpl b/private_dot_config/nvim/lua/plugins/catppuccin.lua.tmpl new file mode 100644 index 0000000..016f3f0 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/catppuccin.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/catppuccin.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/dashboard-nvim.lua.tmpl b/private_dot_config/nvim/lua/plugins/dashboard-nvim.lua.tmpl new file mode 100644 index 0000000..cca55bd --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/dashboard-nvim.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/dashboard-nvim.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/mason.lua.tmpl b/private_dot_config/nvim/lua/plugins/mason.lua.tmpl new file mode 100644 index 0000000..5946964 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/mason.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/mason.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/nvim-tree.lua.tmpl b/private_dot_config/nvim/lua/plugins/nvim-tree.lua.tmpl new file mode 100644 index 0000000..08b2411 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/nvim-tree.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/nvim-tree.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/telescope.lua.tmpl b/private_dot_config/nvim/lua/plugins/telescope.lua.tmpl new file mode 100644 index 0000000..ccf3fa3 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/telescope.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/telescope.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/web-devicons.lua.tmpl b/private_dot_config/nvim/lua/plugins/web-devicons.lua.tmpl new file mode 100644 index 0000000..ad05f49 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/web-devicons.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/web-devicons.lua" . }} diff --git a/private_dot_config/nvim/lua/plugins/whichkey.lua.tmpl b/private_dot_config/nvim/lua/plugins/whichkey.lua.tmpl new file mode 100644 index 0000000..f489454 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/whichkey.lua.tmpl @@ -0,0 +1 @@ +{{ template "nvim/lua/plugins/whichkey.lua" . }}