diff --git a/.config/starship.toml b/.config/starship.toml index e4f39ea..bca8135 100644 --- a/.config/starship.toml +++ b/.config/starship.toml @@ -40,6 +40,7 @@ $fill\ """ add_newline = true +command_timeout = 1000 # You can also replace your username with a neat symbol like  or disable this # and use the os module below diff --git a/nvim-config/.neoconf.json b/nvim-config/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/nvim-config/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/nvim-config/init.lua b/nvim-config/init.lua new file mode 100644 index 0000000..2514f9e --- /dev/null +++ b/nvim-config/init.lua @@ -0,0 +1,2 @@ +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") diff --git a/nvim-config/init.vim b/nvim-config/init.vim deleted file mode 100644 index fb9dc64..0000000 --- a/nvim-config/init.vim +++ /dev/null @@ -1,716 +0,0 @@ -call plug#begin('~/.local/share/nvim/site/plugged') - -" airline -Plug 'https://github.com/bling/vim-airline.git' -Plug 'vim-airline/vim-airline-themes' -" git -Plug 'https://github.com/tpope/vim-fugitive.git' -" Shougos UI-Plugin -Plug 'Shougo/denite.nvim' -" showing function-signatures/doc on completion -Plug 'Shougo/echodoc.vim' - -" vim-sourround -Plug 'https://github.com/tpope/vim-surround.git' -" theme -Plug 'https://github.com/morhetz/gruvbox.git' -Plug 'frankier/neovim-colors-solarized-truecolor-only' - -" rainbow-parentethies -Plug 'luochen1990/rainbow' -" fuzzy finder -Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } -Plug 'junegunn/fzf.vim' - -" git-gutter (little + - and ~ left) -Plug 'https://github.com/airblade/vim-gitgutter.git' - -" Tabular -Plug 'https://github.com/godlygeek/tabular.git' - -" Multiline-Comments -Plug 'tomtom/tcomment_vim' - -" Auto-Formatting -Plug 'Chiel92/vim-autoformat' - -" show colors (#abc) with that background-color -Plug 'ap/vim-css-color' - -" multiline-stuff -Plug 'terryma/vim-multiple-cursors' - -" Icons -Plug 'ryanoasis/vim-devicons' - -" Markdown-Support -Plug 'preservim/vim-markdown' -Plug 'dhruvasagar/vim-table-mode' - -" Inline-Images -Plug '3rd/image.nvim' - -" Code-Folds -Plug 'tmhedberg/SimpylFold' - -" better closing -Plug 'mhinz/vim-sayonara' - -" Session-Management -Plug 'xolox/vim-session' | Plug 'xolox/vim-misc' - -" todo.txt -Plug 'freitass/todo.txt-vim' - -" Treesitter -Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - -" LSP -Plug 'williamboman/mason.nvim' -Plug 'williamboman/mason-lspconfig.nvim' -Plug 'neovim/nvim-lspconfig' -Plug 'hrsh7th/cmp-nvim-lsp' -Plug 'hrsh7th/cmp-buffer' -Plug 'hrsh7th/cmp-path' -Plug 'hrsh7th/cmp-cmdline' -Plug 'dcampos/cmp-snippy' -Plug 'dcampos/nvim-snippy' -Plug 'hrsh7th/nvim-cmp' -Plug 'onsails/lspkind.nvim' - -" markdown-preview -" If you have nodejs -Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && npx --yes yarn install' } - -call plug#end() - -" GENERAL VIM SETUP - -" set leader to space -let mapleader= "\" -let maplocalleader= ";" - -" autocmd InsertEnter * :set number -" autocmd InsertEnter * :set norelativenumber -" autocmd InsertLeave * :set relativenumber -" autocmd InsertLeave * :set nonumber -set relativenumber -set number - -set shiftwidth=2 -set tabstop=2 - -" show cmd - especially leader -set showcmd -" expand tabs with spaces -set expandtab - -" Tell Vim which characters to show for expanded TABs, -" trailing whitespace, and end-of-lines. VERY useful! -if &listchars ==# 'eol:$' - set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+ -endif -set list " Show problematic characters. - -" Also highlight all tabs and trailing whitespace characters. -highlight ExtraWhitespace ctermbg=darkgreen guibg=darkgreen -match ExtraWhitespace /\s\+$\|\t/ - -set hlsearch " Highlight search results. -set ignorecase " Make searching case insensitive -set smartcase " ... unless the query has capital letters. -set incsearch " Incremental search. -set gdefault " Use 'g' flag by default with :s/foo/bar/. -set magic " Use 'magic' patterns (extended regular expressions). -set inccommand=nosplit " Use live-preview of search/replace etc. -set conceallevel=2 " Allow things to be visually opressed (i.e. *foo* be italic) -set mouse=a " enable mouse -set foldenable " enable folding - -set undofile " enable undo over sessions -set undodir="$HOME/.VIM_UNDO_FILES" " save in this path -set laststatus=3 " only 1 statusline, not 1 per window -highlight WinSeperator guibg=None - -set hidden - -let g:loaded_perl_provider = 0 - -" Use to clear the highlighting of :set hlsearch. -if maparg('', 'n') ==# '' - nnoremap :nohlsearch -endif - -" Remember cursor position between vim sessions -autocmd BufReadPost * - \ if line("'\"") > 0 && line ("'\"") <= line("$") | - \ exe "normal! g'\"" | - \ endif - " center buffer around cursor when opening files -autocmd BufRead * normal zz - -" use to Jump to definition instead of (default) -nmap - -" c-d to delete line in insert-mode -inoremap ddi - -" exit terminal-mode - -tnoremap - -" FANCY NEOVIM-MAGIC - -" setup mason, language-server & nvim-cmp for completion - -lua <'] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - if #cmp.get_entries() == 1 then - cmp.confirm({ select = true }) - else - cmp.select_next_item() - end - -- elseif vim.fn["vsnip#available"](1) == 1 then - -- feedkey("(vsnip-expand-or-jump)", "") - elseif has_words_before() then - cmp.complete() - if #cmp.get_entries() == 1 then - cmp.confirm({ select = true }) - end - else - fallback() -- The fallback function sends a already mapped key. In this case, it's probably ``. - end - end, { "i", "s" }), - - [""] = cmp.mapping(function() - if cmp.visible() then - cmp.select_prev_item() - -- elseif vim.fn["vsnip#jumpable"](-1) == 1 then - -- feedkey("(vsnip-jump-prev)", "") - end - end, { "i", "s" }), - - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - -- { name = 'vsnip' }, -- For vsnip users. - -- { name = 'luasnip' }, -- For luasnip users. - -- { name = 'ultisnips' }, -- For ultisnips users. - { name = 'snippy' }, -- For snippy users. - }, { - { name = 'buffer' }, - }) - }) - - -- Set configuration for specific filetype. - cmp.setup.filetype('gitcommit', { - sources = cmp.config.sources({ - { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). - }, { - { name = 'buffer' }, - }) - }) - - -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline({ '/', '?' }, { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' } - } - }) - - -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }) - }) - - -- Set up lspconfig. - local capabilities = require('cmp_nvim_lsp').default_capabilities() - - local 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 - - -- require("lspconfig").eslint.setup {} - -- require("lspconfig").jsonls.setup {} - -- require("lspconfig").tsserver.setup {} - -- require("lspconfig").ast_grep.setup {} - -- require("lspconfig").golangci_lint_ls.setup {} - - function swallow_output(callback, ...) - local old_print = print - print = function(...) end - - pcall(callback, arg) - - print = old_print - end - - -- See `:help vim.diagnostic.*` for documentation on any of the below functions - vim.keymap.set('n', 'e', vim.diagnostic.open_float) - vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) - vim.keymap.set('n', ']d', vim.diagnostic.goto_next) - vim.keymap.set('n', 'q', vim.diagnostic.setloclist) - - -- Use LspAttach autocommand to only map the following keys - -- after the language server attaches to the current buffer - vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - - -- Buffer local mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) - vim.keymap.set('v', 'f', function() - vim.lsp.buf.format { async = true } - end, opts) - vim.api.nvim_create_autocmd('BufWrite', { - callback = function(ev) - vim.lsp.buf.format { async = false } - end - }) - end, - }) -EOF - -"" KEY-BINDINGS - - -noremap TM :TableModeToggle - -" multi-cursor -let g:multi_cursor_next_key='' -let g:multi_cursor_prev_key='' -let g:multi_cursor_skip_key='' -let g:multi_cursor_quit_key='' - -" Align blocks of text and keep them selected -vmap < >gv -nnoremap d "_d -vnoremap d "_d - -" toggle comments -vnoremap / :TComment - -" Open file menu -nnoremap o :Files -" Open buffer menu -nnoremap b :Buffers -" Open most recently used files -nnoremap f :GFiles -" Open Tag-Search -nnoremap t :Tags - -" Expand patterns in Haskell -"nnoremap hc :GhcModSplitFunCase -" Expand function signatures in Haskell -"nnoremap hs :GhcModSigCodegen -" Get Type-Info under Cursor -"nnoremap ht :GhcModType - -" " Copy to clipboard -vnoremap y "+y -nnoremap Y "+yg_ -nnoremap y "+y -nnoremap yy "+yy - -" " Paste from clipboard -nnoremap p "+p -nnoremap P "+P -vnoremap p "+p -vnoremap P "+P - -" Clear stuff -nnoremap :nohlsearch:cclose - -" Clojure-Bindings -" Enable vim-iced's default key mapping -" This is recommended for newbies -let g:iced_enable_default_key_mappings = v:true -let g:sexp_enable_insert_mode_mappings = 0 " stop inserting brackets -let g:iced_enable_clj_kondo_analysis = v:true " kondo analysis -let g:iced_enable_clj_kondo_local_analysis = v:true " also analyse local. -let g:iced_enable_auto_document = 'any' " automatically open documentation - -" THEME-RELATED STUFF - -syntax enable -filetype plugin on -" enable true color -set termguicolors -" enable italics, load colorscheme -let g:gruvbox_italic=1 -set background=dark -colorscheme gruvbox - -let g:rainbow_active = 1 -let &colorcolumn="80,".join(range(120,200),",") - -" spell checking for markdown -autocmd BufRead,BufNewFile *.md setlocal spell complete+=kspell textwidth=80 -autocmd BufRead,BufNewFile *.markdown setlocal spell complete+=kspell textwidth=80 -autocmd BufRead,BufNewFile *.md hi SpellBad guibg=#582828 gui=none -autocmd BufRead,BufNewFile *.markdown hi SpellBad guibg=#582828 gui=none -" autocmd FileType markdown nnoremap t :Toc - -" set languages to english and german -set spelllang=de_de,en_us - - -" MARKDOWN Config -let g:vim_markdown_toc_autofit = 1 -let g:vim_markdown_emphasis_multiline = 1 -let g:vim_markdown_math = 1 -let g:vim_markdown_new_list_item_indent = 2 -" let g:vim_markdown_folding_level = 2 -let g:vim_markdown_folding_disabled = 1 -let g:vim_markdown_conceal_code_blocks = 0 -let g:vim_markdown_frontmatter = 1 -let g:vim_markdown_strikethrough = 1 -let g:vim_markdown_autowrite = 1 -let g:vim_markdown_borderless_table = 1 - -au FileType markdown setl shell=bash - -" set to 1, nvim will open the preview window after entering the Markdown buffer -" default: 0 -let g:mkdp_auto_start = 0 - -" set to 1, the nvim will auto close current preview window when changing -" from Markdown buffer to another buffer -" default: 1 -let g:mkdp_auto_close = 1 - -" set to 1, Vim will refresh Markdown when saving the buffer or -" when leaving insert mode. Default 0 is auto-refresh Markdown as you edit or -" move the cursor -" default: 0 -let g:mkdp_refresh_slow = 0 - -" set to 1, the MarkdownPreview command can be used for all files, -" by default it can be use in Markdown files only -" default: 0 -let g:mkdp_command_for_global = 0 - -" set to 1, the preview server is available to others in your network. -" By default, the server listens on localhost (127.0.0.1) -" default: 0 -let g:mkdp_open_to_the_world = 0 - -" use custom IP to open preview page. -" Useful when you work in remote Vim and preview on local browser. -" For more details see: https://github.com/iamcco/markdown-preview.nvim/pull/9 -" default empty -let g:mkdp_open_ip = '' - -" specify browser to open preview page -" for path with space -" valid: `/path/with\ space/xxx` -" invalid: `/path/with\\ space/xxx` -" default: '' -let g:mkdp_browser = '' - -" set to 1, echo preview page URL in command line when opening preview page -" default is 0 -let g:mkdp_echo_preview_url = 0 - -" a custom Vim function name to open preview page -" this function will receive URL as param -" default is empty -let g:mkdp_browserfunc = '' - -" options for Markdown rendering -" mkit: markdown-it options for rendering -" katex: KaTeX options for math -" uml: markdown-it-plantuml options -" maid: mermaid options -" disable_sync_scroll: whether to disable sync scroll, default 0 -" sync_scroll_type: 'middle', 'top' or 'relative', default value is 'middle' -" middle: means the cursor position is always at the middle of the preview page -" top: means the Vim top viewport always shows up at the top of the preview page -" relative: means the cursor position is always at relative positon of the preview page -" hide_yaml_meta: whether to hide YAML metadata, default is 1 -" sequence_diagrams: js-sequence-diagrams options -" content_editable: if enable content editable for preview page, default: v:false -" disable_filename: if disable filename header for preview page, default: 0 -let g:mkdp_preview_options = { - \ 'mkit': {}, - \ 'katex': {}, - \ 'uml': {}, - \ 'maid': {}, - \ 'disable_sync_scroll': 0, - \ 'sync_scroll_type': 'middle', - \ 'hide_yaml_meta': 1, - \ 'sequence_diagrams': {}, - \ 'flowchart_diagrams': {}, - \ 'content_editable': v:false, - \ 'disable_filename': 0, - \ 'toc': {} - \ } - -" use a custom Markdown style. Must be an absolute path -" like '/Users/username/markdown.css' or expand('~/markdown.css') -let g:mkdp_markdown_css = '' - -" use a custom highlight style. Must be an absolute path -" like '/Users/username/highlight.css' or expand('~/highlight.css') -let g:mkdp_highlight_css = '' - -" use a custom port to start server or empty for random -let g:mkdp_port = '' - -" preview page title -" ${name} will be replace with the file name -let g:mkdp_page_title = '「${name}」' - -" use a custom location for images -" let g:mkdp_images_path = /home/user/.markdown_images - -" recognized filetypes -" these filetypes will have MarkdownPreview... commands -let g:mkdp_filetypes = ['markdown'] - -" set default theme (dark or light) -" By default the theme is defined according to the preferences of the system -" let g:mkdp_theme = 'dark' - -" combine preview window -" default: 0 -" if enable it will reuse previous opened preview window when you preview markdown file. -" ensure to set let g:mkdp_auto_close = 0 if you have enable this option -let g:mkdp_combine_preview = 0 - -" auto refetch combine preview contents when change markdown buffer -" only when g:mkdp_combine_preview is 1 -let g:mkdp_combine_preview_auto_refresh = 1 - - - -let g:haskell_enable_quantification = 1 " enable highlighting of forall -let g:haskell_enable_recursivedo = 1 " enable highlighting of mdo and rec -let g:haskell_enable_arrowsyntax = 1 " enable highlighting of proc -let g:haskell_enable_pattern_synonyms = 1 " enable highlighting of pattern -let g:haskell_enable_typeroles = 1 " enable highlighting of type roles -let g:haskell_enable_static_pointers = 1 " enable highlighting of static -let g:haskell_indent_if = 3 -let g:haskell_indent_case = 2 -let g:haskell_indent_let = 4 -let g:haskell_indent_where = 6 -let g:haskell_indent_do = 3 -let g:haskell_indent_in = 1 -let g:haskell_indent_guard = 2 - - -" SNIPPETS - -" " Emmet customization -" " Enable Emmet in all modes -" " Remapping , just doesn't cut it. -" function! s:expand_html_tab() -" " try to determine if we're within quotes or tags. -" " if so, assume we're in an emmet fill area. -" let line = getline('.') -" if col('.') < len(line) -" let line = matchstr(line, '[">][^<"]*\%'.col('.').'c[^>"]*[<"]') -" if len(line) >= 2 -" return "\" -" endif -" endif -" " expand anything emmet thinks is expandable. -" if emmet#isExpandable() -" return "\," -" endif -" " return a regular tab character -" return "\" -" endfunction -" autocmd FileType html,markdown imap expand_html_tab() -" let g:user_emmet_mode='a' -" let g:user_emmet_complete_tag = 1 -" let g:user_emmet_install_global = 0 -" autocmd FileType html,css EmmetInstall - -" AIRLINE -let g:airline#extensions#tabline#ignore_bufadd_pat = 'gundo|undotree|vimfiler|tagbar|netrw|startify|!' -let g:airline#extensions#tabline#enabled = 1 -set hidden -let g:airline#extensions#tabline#fnamemod = ':t' -let g:airline#extensions#tabline#show_tab_nr = 1 -let g:airline_powerline_fonts = 1 -let g:airline_theme='understated' -" let g:airline_theme='base16_solarized' -cnoreabbrev x getcmdtype() == ":" && getcmdline() == 'x' ? 'Sayonara' : 'x' -nmap tt :term -nmap , :bnext -nmap . :bprevious -let g:airline#extensions#tabline#buffer_idx_mode = 1 -nmap 1 AirlineSelectTab1 -nmap 2 AirlineSelectTab2 -nmap 3 AirlineSelectTab3 -nmap 4 AirlineSelectTab4 -nmap 5 AirlineSelectTab5 -nmap 6 AirlineSelectTab6 -nmap 7 AirlineSelectTab7 -nmap 8 AirlineSelectTab8 -nmap 9 AirlineSelectTab9 -set guifont=Sauce\ Code\ Pro\ Nerd\ Font\ Complete:h13 - -" TABULARIZE - -nmap t: :Tabularize /:: /l1c0l0 -nmap t= :Tabularize /= /l1c0l0 -nmap tp :Tabularize /\| /l1c0l0 -nmap t, :Tabularize /, /l1c0l0 - -" Table mode - -let g:table_mode_corner_corner="+" -let g:table_mode_header_fillchar="=" - -" Move between windows -nnoremap -nnoremap -nnoremap -nnoremap -" Move between tabs -nnoremap :bNext -nnoremap :bnext - -" Session-Options - -let g:session_autoload='yes' -let g:session_autosave='yes' - -" Change background quickly -nmap :let &background = ( &background == "dark" ? "light" : "dark" ) - -" BUGFIX UNTIL #6997 gets meged. -set guicursor= diff --git a/nvim-config/lazyvim.json b/nvim-config/lazyvim.json new file mode 100644 index 0000000..b8bac6f --- /dev/null +++ b/nvim-config/lazyvim.json @@ -0,0 +1,39 @@ +{ + "extras": [ + "lazyvim.plugins.extras.coding.blink", + "lazyvim.plugins.extras.coding.luasnip", + "lazyvim.plugins.extras.coding.mini-comment", + "lazyvim.plugins.extras.coding.mini-snippets", + "lazyvim.plugins.extras.coding.mini-surround", + "lazyvim.plugins.extras.coding.nvim-cmp", + "lazyvim.plugins.extras.coding.yanky", + "lazyvim.plugins.extras.dap.core", + "lazyvim.plugins.extras.dap.nlua", + "lazyvim.plugins.extras.editor.dial", + "lazyvim.plugins.extras.editor.fzf", + "lazyvim.plugins.extras.editor.inc-rename", + "lazyvim.plugins.extras.editor.mini-diff", + "lazyvim.plugins.extras.editor.outline", + "lazyvim.plugins.extras.editor.snacks_picker", + "lazyvim.plugins.extras.editor.telescope", + "lazyvim.plugins.extras.formatting.prettier", + "lazyvim.plugins.extras.lang.json", + "lazyvim.plugins.extras.lang.markdown", + "lazyvim.plugins.extras.lang.nix", + "lazyvim.plugins.extras.lang.python", + "lazyvim.plugins.extras.lang.typescript", + "lazyvim.plugins.extras.linting.eslint", + "lazyvim.plugins.extras.test.core", + "lazyvim.plugins.extras.ui.dashboard-nvim", + "lazyvim.plugins.extras.ui.treesitter-context", + "lazyvim.plugins.extras.util.dot", + "lazyvim.plugins.extras.util.gitui", + "lazyvim.plugins.extras.util.mini-hipatterns", + "lazyvim.plugins.extras.util.project" + ], + "install_version": 8, + "news": { + "NEWS.md": "10960" + }, + "version": 8 +} \ No newline at end of file diff --git a/nvim-config/lua/config/autocmds.lua b/nvim-config/lua/config/autocmds.lua new file mode 100644 index 0000000..4221e75 --- /dev/null +++ b/nvim-config/lua/config/autocmds.lua @@ -0,0 +1,8 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- +-- Add any additional autocmds here +-- with `vim.api.nvim_create_autocmd` +-- +-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) +-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") diff --git a/nvim-config/lua/config/keymaps.lua b/nvim-config/lua/config/keymaps.lua new file mode 100644 index 0000000..a711b35 --- /dev/null +++ b/nvim-config/lua/config/keymaps.lua @@ -0,0 +1,5 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps here + +vim.keymap.set("t", "", "close", { desc = "Hide Terminal" }) diff --git a/nvim-config/lua/config/lazy.lua b/nvim-config/lua/config/lazy.lua new file mode 100644 index 0000000..d73bfa1 --- /dev/null +++ b/nvim-config/lua/config/lazy.lua @@ -0,0 +1,53 @@ +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) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "tokyonight", "habamax" } }, + checker = { + enabled = true, -- check for plugin updates periodically + notify = false, -- notify on update + }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/nvim-config/lua/config/options.lua b/nvim-config/lua/config/options.lua new file mode 100644 index 0000000..9ae4eca --- /dev/null +++ b/nvim-config/lua/config/options.lua @@ -0,0 +1,8 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here + +vim.opt.laststatus = 3 +vim.g.lazyvim_blink_main = true +vim.opt.textwidth = 120 +vim.opt.spelllang = { "en", "de" } diff --git a/nvim-config/stylua.toml b/nvim-config/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/nvim-config/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file