diff --git a/nvim/init.lua b/nvim/init.lua index 5988304..7c25510 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1,16 +1,21 @@ -- Initalize packer vim.cmd [[packadd packer.nvim]] -vim.g.mapleader = " " -- Set the leader key to space +vim.g.mapleader = ' ' -- Set the leader key to space vim.cmd [[colorscheme tokyonight]] - +-- vim.cmd [[ +-- syntax match Todo /TODO\|FIXME\|NOTE\|HACK/ +-- highlight link Todo Comment +-- ]] +--TODO Ich bin eine biene +-- require('packer').startup(function(use) use 'wbthomason/packer.nvim' -- Packer manages itself -- VIM AutoSave use({ - "okuuva/auto-save.nvim", + 'okuuva/auto-save.nvim', tag = 'v1*', config = function() - require("auto-save").setup({ + require('auto-save').setup({ -- your config goes here -- or just leave it empty :) }) @@ -18,19 +23,21 @@ require('packer').startup(function(use) }) -- Headlines for Markdown and TeX use { - "lukas-reineke/headlines.nvim", - after = "nvim-treesitter", + 'lukas-reineke/headlines.nvim', + after = 'nvim-treesitter', config = function() - require("headlines").setup() + require('headlines').setup() end, } -- Nvim-Tree use { 'nvim-tree/nvim-tree.lua', config = function() - require("nvim-tree").setup() - end + require('plugins.nvim-tree').setup() + end, } + -- require('plugins.nvim-tree') + -- Themes use 'gruvbox-community/gruvbox' -- Gruvbox theme use 'folke/tokyonight.nvim' -- Tokyo Night theme @@ -57,6 +64,11 @@ require('packer').startup(function(use) } require('plugins.lualine') + -- HardTime + use{ + 'm4xshen/hardtime.nvim', + requires = {"MunifTanjim/nui.nvim"} + } -- FZF use { 'junegunn/fzf', @@ -64,13 +76,20 @@ require('packer').startup(function(use) } use 'junegunn/fzf.vim' + use { + "folke/todo-comments.nvim", + requires = "nvim-lua/plenary.nvim", + config = function() + require("todo-comments").setup {} + end + } + -- Cool Startup Dashboard use { 'glepnir/dashboard-nvim', requires = { 'kyazdani42/nvim-web-devicons' } } - - -- Productivity + -- Productivity use 'numToStr/Comment.nvim' -- Easy commenting use 'windwp/nvim-autopairs' -- Auto-close brackets, quotes, etc. use 'tpope/vim-surround' -- Surround text objects with quotes, brackets, etc. diff --git a/nvim/lua/plugins/nvim-tree.lua b/nvim/lua/plugins/nvim-tree.lua index d6ebeec..d2d4dd8 100644 --- a/nvim/lua/plugins/nvim-tree.lua +++ b/nvim/lua/plugins/nvim-tree.lua @@ -1,73 +1,64 @@ --- File: ~/.config/nvim/lua/plugins/nvim-tree.lua +local M = {} --- Keybinding to toggle Nvim Tree +function M.setup() vim.api.nvim_set_keymap('n', 'e', ':NvimTreeToggle', { noremap = true, silent = true }) --- Nvim Tree Configuration -require("nvim-tree").setup({ - view = { - width = 35, - side = "left", - adaptive_size = true, - mappings = { - list = { - { key = "l", action = "edit" }, - { key = "h", action = "close_node" }, - { key = "v", action = "vsplit" }, - { key = "a", action = "create" }, - { key = "d", action = "remove" }, - { key = "r", action = "rename" }, - }, + require("nvim-tree").setup({ + view = { + width = 35, + side = "left", }, - }, - renderer = { - highlight_git = true, - highlight_opened_files = "all", - icons = { - glyphs = { - default = "", - symlink = "", - folder = { - arrow_closed = "", - arrow_open = "", - default = "", - open = "", - }, - git = { - unstaged = "✗", - staged = "✓", - unmerged = "", - renamed = "➜", - untracked = "★", - deleted = "", - ignored = "◌", + renderer = { + highlight_git = true, + highlight_opened_files = "all", + icons = { + glyphs = { + default = "", + symlink = "", + folder = { + arrow_closed = "", + arrow_open = "", + default = "", + open = "", + }, + git = { + unstaged = "✗", + staged = "✓", + unmerged = "", + renamed = "➜", + untracked = "★", + deleted = "", + ignored = "◌", + }, }, }, + indent_markers = { + enable = true, + }, }, - indent_markers = { + diagnostics = { enable = true, + show_on_dirs = true, + icons = { + hint = "", + info = "", + warning = "", + error = "", + }, }, - }, - diagnostics = { - enable = true, - show_on_dirs = true, - icons = { - hint = "", - info = "", - warning = "", - error = "", + filters = { + dotfiles = false, }, - }, - filters = { - dotfiles = false, - }, - actions = { - open_file = { - quit_on_open = true, + actions = { + open_file = { + quit_on_open = true, + }, }, - }, - git = { - enable = true, - ignore = false, - }, -}) + git = { + enable = true, + ignore = false, + }, + }) +end + +return M diff --git a/nvim/lua/plugins/outline.lua b/nvim/lua/plugins/outline.lua new file mode 100644 index 0000000..47c8104 --- /dev/null +++ b/nvim/lua/plugins/outline.lua @@ -0,0 +1,20 @@ +-- plugins/outline.lua +local M = {} + +M.setup = function() + vim.api.nvim_set_keymap('n', 'o', ':Outline', { noremap = true, silent = true }) + require('outline').setup({ + + + show_guides = true, -- Show outline guides + auto_close = false, -- Do not auto-close the outline + auto_open = true, -- Automatically open the outline + preview_lines = 10, -- Number of preview lines to show + keymaps = { -- Custom key mappings for the outline + jump = 'o', -- Jump to the selected item + expand_collapse = 'u', -- Expand or collapse an item + }, + }) +end + +return M diff --git a/nvim/lua/plugins/rainbow_delimiters.lua b/nvim/lua/plugins/rainbow_delimiters.lua new file mode 100644 index 0000000..1ebe2ac --- /dev/null +++ b/nvim/lua/plugins/rainbow_delimiters.lua @@ -0,0 +1,29 @@ +-- Rainbow Delimiters Configuration +local rainbow_delimiters = require 'rainbow-delimiters' + +---@type rainbow_delimiters.config +vim.g.rainbow_delimiters = { + strategy = { + [''] = rainbow_delimiters.strategy['global'], + vim = rainbow_delimiters.strategy['local'], + }, + query = { + [''] = 'rainbow-delimiters', + lua = 'rainbow-blocks', + }, + priority = { + [''] = 110, + lua = 210, + }, + highlight = { + 'RainbowDelimiterRed', + 'RainbowDelimiterYellow', + 'RainbowDelimiterBlue', + 'RainbowDelimiterOrange', + 'RainbowDelimiterGreen', + 'RainbowDelimiterViolet', + 'RainbowDelimiterCyan', + }, +} + + diff --git a/nvim/lua/plugins/todo-comments.lua b/nvim/lua/plugins/todo-comments.lua new file mode 100644 index 0000000..773034c --- /dev/null +++ b/nvim/lua/plugins/todo-comments.lua @@ -0,0 +1,21 @@ +require("todo-comments").setup { + signs = true, -- show icons in the signs column + keywords = { + TODO = { icon = " ", color = "info" }, + FIXME = { icon = " ", color = "error" }, + HACK = { icon = " ", color = "warning" }, + WARN = { icon = " ", color = "warning" }, + NOTE = { icon = " ", color = "hint" }, + }, + highlight = { + before = "fg", -- highlight the keyword + keyword = "wide", -- highlight the whole keyword + after = "fg", -- highlight the message + }, + search = { + command = "rg", -- ripgrep as the default search command + args = { + "--color=never", "--no-heading", "--with-filename", "--line-number", "--column" + }, + }, +}