diff --git a/.gitignore b/.gitignore index 005b535b606..8a192cab54d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ test.sh nvim spell/ -lazy-lock.json diff --git a/README.md b/README.md index 2ed21a3e20d..8b137891791 100644 --- a/README.md +++ b/README.md @@ -1,238 +1 @@ -# kickstart-modular.nvim - -## Introduction - -*This is a fork of [nvim-lua/kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) that moves from a single file to a multi file configuration.* - -A starting point for Neovim that is: - -* Small -* Modular -* Completely Documented - -**NOT** a Neovim distribution, but instead a starting point for your configuration. - -## Installation - -### Install Neovim - -Kickstart.nvim targets *only* the latest -['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest -['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim. -If you are experiencing issues, please make sure you have the latest versions. - -### Install External Dependencies - -External Requirements: -- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`) -- [ripgrep](https://github.com/BurntSushi/ripgrep#installation) -- Clipboard tool (xclip/xsel/win32yank or other depending on platform) -- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons - - if you have it set `vim.g.have_nerd_font` in `init.lua` to true -- Language Setup: - - If you want to write Typescript, you need `npm` - - If you want to write Golang, you will need `go` - - etc. - -> **NOTE** -> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes -> and quick install snippets - -### Install Kickstart - -> **NOTE** -> [Backup](#FAQ) your previous configuration (if any exists) - -Neovim's configurations are located under the following paths, depending on your OS: - -| OS | PATH | -| :- | :--- | -| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` | -| Windows (cmd)| `%localappdata%\nvim\` | -| Windows (powershell)| `$env:LOCALAPPDATA\nvim\` | - -#### Recommended Step - -[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo -so that you have your own copy that you can modify, then install by cloning the -fork to your machine using one of the commands below, depending on your OS. - -> **NOTE** -> Your fork's url will be something like this: -> `https://github.com//kickstart-modular.nvim.git` - -You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file -too - it's ignored in the kickstart repo to make maintenance easier, but it's -[recommmended to track it in version control](https://lazy.folke.io/usage/lockfile). - -#### Clone kickstart.nvim -> **NOTE** -> If following the recommended step above (i.e., forking the repo), replace -> `dam9000` with `` in the commands below - -
Linux and Mac - -```sh -git clone https://github.com/dam9000/kickstart-modular.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim -``` - -
- -
Windows - -If you're using `cmd.exe`: - -``` -git clone https://github.com/dam9000/kickstart.nvim.git %localappdata%\nvim\ -``` - -If you're using `powershell.exe` - -``` -git clone https://github.com/dam9000/kickstart.nvim.git $env:LOCALAPPDATA\nvim\ -``` - -
- -### Post Installation - -Start Neovim - -```sh -nvim -``` - -That's it! Lazy will install all the plugins you have. Use `:Lazy` to view -current plugin status. Hit `q` to close the window. - -Read through the `init.lua` file in your configuration folder for more -information about extending and exploring Neovim. That also includes -examples of adding popularly requested plugins. - - -### Getting Started - -[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o) - -### FAQ - -* What should I do if I already have a pre-existing neovim configuration? - * You should back it up and then delete all associated files. - * This includes your existing init.lua and the neovim files in `~/.local` - which can be deleted with `rm -rf ~/.local/share/nvim/` -* Can I keep my existing configuration in parallel to kickstart? - * Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME` - to maintain multiple configurations. For example, you can install the kickstart - configuration in `~/.config/nvim-kickstart` and create an alias: - ``` - alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim' - ``` - When you run Neovim using `nvim-kickstart` alias it will use the alternative - config directory and the matching local directory - `~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim - distribution that you would like to try out. -* What if I want to "uninstall" this configuration: - * See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information -* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files? - * The main purpose of kickstart is to serve as a teaching tool and a reference - configuration that someone can easily use to `git clone` as a basis for their own. - As you progress in learning Neovim and Lua, you might consider splitting `init.lua` - into smaller parts. A fork of kickstart that does this while maintaining the - same functionality is available here: - * [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim) - * *NOTE: This is the fork that splits the configuration into smaller parts.* - The original repo with the single `init.lua` file is available here: - * [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) - * Discussions on this topic can be found here: - * [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218) - * [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473) - -### Install Recipes - -Below you can find OS specific install instructions for Neovim and dependencies. - -After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step. - -#### Windows Installation - -
Windows with Microsoft C++ Build Tools and CMake -Installation may require installing build tools and updating the run command for `telescope-fzf-native` - -See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation) - -This requires: - -- Install CMake and the Microsoft C++ Build Tools on Windows - -```lua -{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } -``` -
-
Windows with gcc/make using chocolatey -Alternatively, one can install gcc and make which don't require changing the config, -the easiest way is to use choco: - -1. install [chocolatey](https://chocolatey.org/install) -either follow the instructions on the page or use winget, -run in cmd as **admin**: -``` -winget install --accept-source-agreements chocolatey.chocolatey -``` - -2. install all requirements using choco, exit previous cmd and -open a new one so that choco path is set, and run in cmd as **admin**: -``` -choco install -y neovim git ripgrep wget fd unzip gzip mingw make -``` -
-
WSL (Windows Subsystem for Linux) - -``` -wsl --install -wsl -sudo add-apt-repository ppa:neovim-ppa/unstable -y -sudo apt update -sudo apt install make gcc ripgrep unzip git xclip neovim -``` -
- -#### Linux Install -
Ubuntu Install Steps - -``` -sudo add-apt-repository ppa:neovim-ppa/unstable -y -sudo apt update -sudo apt install make gcc ripgrep unzip git xclip neovim -``` -
-
Debian Install Steps - -``` -sudo apt update -sudo apt install make gcc ripgrep unzip git xclip curl - -# Now we install nvim -curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz -sudo rm -rf /opt/nvim-linux64 -sudo mkdir -p /opt/nvim-linux64 -sudo chmod a+rX /opt/nvim-linux64 -sudo tar -C /opt -xzf nvim-linux64.tar.gz - -# make it available in /usr/local/bin, distro installs to /usr/bin -sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/ -``` -
-
Fedora Install Steps - -``` -sudo dnf install -y gcc make git ripgrep fd-find unzip neovim -``` -
- -
Arch Install Steps - -``` -sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim -``` -
diff --git a/doc/kickstart.txt b/doc/kickstart.txt deleted file mode 100644 index cb87ac3f1de..00000000000 --- a/doc/kickstart.txt +++ /dev/null @@ -1,24 +0,0 @@ -================================================================================ -INTRODUCTION *kickstart.nvim* - -Kickstart.nvim is a project to help you get started on your neovim journey. - - *kickstart-is-not* -It is not: -- Complete framework for every plugin under the sun -- Place to add every plugin that could ever be useful - - *kickstart-is* -It is: -- Somewhere that has a good start for the most common "IDE" type features: - - autocompletion - - goto-definition - - find references - - fuzzy finding - - and hinting at what more can be done :) -- A place to _kickstart_ your journey. - - You should fork this project and use/modify it so that it matches your - style and preferences. If you don't want to do that, there are probably - other projects that would fit much better for you (and that's great!)! - - vim:tw=78:ts=8:ft=help:norl: diff --git a/doc/tags b/doc/tags deleted file mode 100644 index 687ae7721d9..00000000000 --- a/doc/tags +++ /dev/null @@ -1,3 +0,0 @@ -kickstart-is kickstart.txt /*kickstart-is* -kickstart-is-not kickstart.txt /*kickstart-is-not* -kickstart.nvim kickstart.txt /*kickstart.nvim* diff --git a/init.lua b/init.lua index 3784c1a18c9..6ef38c742ec 100644 --- a/init.lua +++ b/init.lua @@ -1,109 +1,17 @@ ---[[ - -===================================================================== -==================== READ THIS BEFORE CONTINUING ==================== -===================================================================== -======== .-----. ======== -======== .----------------------. | === | ======== -======== |.-""""""""""""""""""-.| |-----| ======== -======== || || | === | ======== -======== || KICKSTART.NVIM || |-----| ======== -======== || || | === | ======== -======== || || |-----| ======== -======== ||:Tutor || |:::::| ======== -======== |'-..................-'| |____o| ======== -======== `"")----------------(""` ___________ ======== -======== /::::::::::| |::::::::::\ \ no mouse \ ======== -======== /:::========| |==hjkl==:::\ \ required \ ======== -======== '""""""""""""' '""""""""""""' '""""""""""' ======== -======== ======== -===================================================================== -===================================================================== - -What is Kickstart? - - Kickstart.nvim is *not* a distribution. - - Kickstart.nvim is a starting point for your own configuration. - The goal is that you can read every line of code, top-to-bottom, understand - what your configuration is doing, and modify it to suit your needs. - - Once you've done that, you can start exploring, configuring and tinkering to - make Neovim your own! That might mean leaving Kickstart just the way it is for a while - or immediately breaking it into modular pieces. It's up to you! - - If you don't know anything about Lua, I recommend taking some time to read through - a guide. One possible example which will only take 10-15 minutes: - - https://learnxinyminutes.com/docs/lua/ - - After understanding a bit more about Lua, you can use `:help lua-guide` as a - reference for how Neovim integrates Lua. - - :help lua-guide - - (or HTML version): https://neovim.io/doc/user/lua-guide.html - -Kickstart Guide: - - TODO: The very first thing you should do is to run the command `:Tutor` in Neovim. - - If you don't know what this means, type the following: - - - - : - - Tutor - - - - (If you already know the Neovim basics, you can skip this step.) - - Once you've completed that, you can continue working through **AND READING** the rest - of the kickstart init.lua. - - Next, run AND READ `:help`. - This will open up a help window with some basic information - about reading, navigating and searching the builtin help documentation. - - This should be the first place you go to look when you're stuck or confused - with something. It's one of my favorite Neovim features. - - MOST IMPORTANTLY, we provide a keymap "sh" to [s]earch the [h]elp documentation, - which is very useful when you're not exactly sure of what you're looking for. - - I have left several `:help X` comments throughout the init.lua - These are hints about where to find more information about the relevant settings, - plugins or Neovim features used in Kickstart. - - NOTE: Look for lines like this - - Throughout the file. These are for you, the reader, to help you understand what is happening. - Feel free to delete them once you know what you're doing, but they should serve as a guide - for when you are first encountering a few different constructs in your Neovim config. - -If you experience any errors while trying to install kickstart, run `:checkhealth` for more info. - -I hope you enjoy your Neovim journey, -- TJ - -P.S. You can delete this when you're done too. It's your config now! :) ---]] - --- Set as the leader key --- See `:help mapleader` -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) + vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' --- Set to true if you have a Nerd Font installed and selected in the terminal -vim.g.have_nerd_font = false +vim.g.have_nerd_font = true +vim.g.background = 'dark' --- [[ Setting options ]] require 'options' - --- [[ Basic Keymaps ]] require 'keymaps' - --- [[ Install `lazy.nvim` plugin manager ]] require 'lazy-bootstrap' - --- [[ Configure and install plugins ]] require 'lazy-plugins' --- The line beneath this is called `modeline`. See `:help modeline` --- vim: ts=2 sts=2 sw=2 et +-- vim.api.nvim_set_hl(0, 'Normal', { bg = 'none' }) +-- vim.api.nvim_set_hl(0, 'NormalFloat', { bg = 'none' }) +-- vim.api.nvim_set_hl(0, 'SignColumn', { bg = 'none' }) +-- vim.api.nvim_set_hl(0, 'LineNr', { bg = 'none' }) diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 00000000000..dd4627827ca --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,73 @@ +{ + "LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" }, + "Nvim-R": { "branch": "master", "commit": "b7cdc9bcd6879465023e20b4a3ae16968edda776" }, + "alpha-nvim": { "branch": "main", "commit": "bf3c8bb8c02ed3d9644cc5bbc48e2bdc39349cd7" }, + "bamboo.nvim": { "branch": "master", "commit": "c245d90c490c681470389e28782b161491bec97c" }, + "catppuccin": { "branch": "main", "commit": "7be452ee067978cdc8b2c5f3411f0c71ffa612b9" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "conform.nvim": { "branch": "master", "commit": "40d4e98fcc3e6f485f0e8924c63734bc7e305967" }, + "darkearth-nvim": { "branch": "main", "commit": "14369f828f4b09ee89b18bfa3f58b02720e8e20a" }, + "eldritch.nvim": { "branch": "master", "commit": "48788ef2f7be7e86b0a57ef87f1a96bc18e24b8b" }, + "friendly-snippets": { "branch": "main", "commit": "00ba9dd3df89509f95437b8d595553707c46d5ea" }, + "gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" }, + "gruvbox-material": { "branch": "master", "commit": "b16dcd787db5ba9302b54ebeac186784c2aed29a" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3af6493bf69e4a857a8b1fab36f333629d413a18" }, + "ivory": { "branch": "master", "commit": "4f66eafaf67f519d1399d017913491728d3440c5" }, + "kanagawa-paper.nvim": { "branch": "master", "commit": "928f0f4f28475111d0b507c27b243744648bac1f" }, + "kanagawa.nvim": { "branch": "master", "commit": "f491b0fe68fffbece7030181073dfe51f45cda81" }, + "lackluster.nvim": { "branch": "main", "commit": "59d03c9e92cb03351af2904a26e16b6627d2d5db" }, + "lavish.nvim": { "branch": "main", "commit": "8a2d73b21c382be35642d78aae0b56369bc19a00" }, + "lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" }, + "lspkind.nvim": { "branch": "master", "commit": "59c3f419af48a2ffb2320cea85e44e5a95f71664" }, + "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, + "lush.nvim": { "branch": "main", "commit": "45a79ec4acb5af783a6a29673a999ce37f00497e" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "markdown.nvim": { "branch": "master", "commit": "dfa0d2def6dbf77e9206b16dc90cad4dd23d55d2" }, + "markview.nvim": { "branch": "main", "commit": "42b57e8f9a0fa69f1b2937342cdd27921346c990" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "mini.files": { "branch": "main", "commit": "a3a9cce82115a69dba161ac45bda16f4e606f73b" }, + "mini.icons": { "branch": "main", "commit": "a2742459f0ee32806c2438ca06b4d8b331f3f4d4" }, + "mini.nvim": { "branch": "main", "commit": "61e5d46fc0cf71306c51275383767d996f559a60" }, + "monochrome.nvim": { "branch": "main", "commit": "2de78d9688ea4a177bcd9be554ab9192337d35ff" }, + "nabla.nvim": { "branch": "master", "commit": "27a6ea9ed7452bb9e0b19eb0942b5bcf7d051b2f" }, + "neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" }, + "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, + "nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" }, + "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, + "nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" }, + "nvim-dap-go": { "branch": "main", "commit": "6aa88167ea1224bcef578e8c7160fe8afbb44848" }, + "nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" }, + "nvim-lint": { "branch": "master", "commit": "27f44d1cc3d733a38a736acb902f94879d99c76c" }, + "nvim-lspconfig": { "branch": "master", "commit": "dcf511d53fae9675c6fde4241d94b2daaa5e0cd5" }, + "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, + "nvim-tree.lua": { "branch": "master", "commit": "4a9e82d10a3715d0c3845e1d2f66ddfb8b711253" }, + "nvim-treesitter": { "branch": "master", "commit": "4f04fb7027ce786ac4adfd1c629ca40aea96ffec" }, + "nvim-web-devicons": { "branch": "master", "commit": "56f17def81478e406e3a8ec4aa727558e79786f3" }, + "okcolors.nvim": { "branch": "main", "commit": "2fd9be7ee5efb2a9d87f781c9f27a5298a13bd8a" }, + "onedark.nvim": { "branch": "master", "commit": "fae34f7c635797f4bf62fb00e7d0516efa8abe37" }, + "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, + "posterpole.nvim": { "branch": "master", "commit": "5dee8b1741164d3ff4416f8743e2be92009a49ec" }, + "render-markdown.nvim": { "branch": "main", "commit": "fe1002fddc61207e4ef4325d4bc0ca33697bbc7a" }, + "rose-pine": { "branch": "main", "commit": "8b1fd252255a7f2c41b4192a787ab62660b29f72" }, + "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, + "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, + "toggleterm.nvim": { "branch": "main", "commit": "48be57eaba817f038d61bbf64d2c597f578c0827" }, + "tokyonight.nvim": { "branch": "main", "commit": "2c85fad417170d4572ead7bf9fdd706057bd73d7" }, + "twilight.nvim": { "branch": "main", "commit": "1584c0b0a979b71fd86b18d302ba84e9aba85b1b" }, + "typescript-tools.nvim": { "branch": "master", "commit": "f8c2e0b36b651c85f52ad5c5373ff8b07adc15a7" }, + "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, + "vimtex": { "branch": "master", "commit": "fcbaf66887bd19f5d973406848cf2a5ac46bd65e" }, + "which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" }, + "yorumi.nvim": { "branch": "main", "commit": "0d0c995ecb90cd21e701fd30b7c5e794cb1e41ce" }, + "zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" }, + "zenbones.nvim": { "branch": "main", "commit": "88960c8aa3ad8aff0bcccdce7cd23629c7a3c510" } +} diff --git a/lua/custom/plugins/alpha.lua b/lua/custom/plugins/alpha.lua new file mode 100644 index 00000000000..fa738f8b784 --- /dev/null +++ b/lua/custom/plugins/alpha.lua @@ -0,0 +1,12 @@ +return { + { + 'goolord/alpha-nvim', + dependencies = { + 'echasnovski/mini.icons', + 'nvim-lua/plenary.nvim', + }, + config = function() + require('alpha').setup(require('alpha.themes.theta').config) + end, + }, +} diff --git a/lua/custom/plugins/colors.lua b/lua/custom/plugins/colors.lua new file mode 100644 index 00000000000..f51ed5c55bd --- /dev/null +++ b/lua/custom/plugins/colors.lua @@ -0,0 +1,152 @@ +return { + { + 'ilof2/posterpole.nvim', + priority = 1000, + config = function() + require('posterpole').setup { + colorless_bg = true, + brightnes = -200, + } + -- vim.cmd 'colorscheme posterpole' + end, + }, + + { + 'catppuccin/nvim', + name = 'catppuccin', + config = function() + vim.cmd 'colorscheme catppuccin-mocha' + end, + }, + + { + 'kdheepak/monochrome.nvim', + config = function() + -- vim.cmd 'colorscheme monochrome' + end, + }, + + { + 'yorumicolors/yorumi.nvim', + config = function() + -- vim.cmd 'colorscheme yorumi' + end, + }, + + { + 'eldritch-theme/eldritch.nvim', + lazy = false, + priority = 1000, + opts = {}, + config = function() + -- vim.cmd 'colorscheme eldritch' + end, + }, + + { + 'ferdinandrau/lavish.nvim', + priority = 1000, + config = function() + -- require('lavish').apply 'light' + -- require('lavish').apply 'dark' + end, + }, + + { + { 'rose-pine/neovim', name = 'rose-pine' }, + }, + + { + 'navarasu/onedark.nvim', + config = function() + require('onedark').setup { + style = 'darker', -- dark, darker, cool, deep, warm, warmer + } + end, + }, + + { + 'mstcl/ivory', + lazy = false, + config = function() + -- vim.cmd 'colorscheme ivory' + end, + }, + + { + 'ribru17/bamboo.nvim', + lazy = false, + config = function() + require('bamboo').setup { + style = 'vulgaris', -- Choose between 'vulgaris' (regular), 'multiplex' (greener), and 'light' + transparent = false, -- Show/hide background + } + -- vim.cmd 'colorscheme bamboo-multiplex' + end, + }, + + { + 'ptdewey/darkearth-nvim', + config = function() end, + }, + + { + 'sainnhe/gruvbox-material', + lazy = false, + opts = { + contrast = 'soft', + }, + config = function() + -- Optionally configure and load the colorscheme + -- directly inside the plugin declaration. + vim.g.gruvbox_material_enable_italic = true + -- vim.cmd 'colorscheme gruvbox-material' + end, + }, + + { + 'sho-87/kanagawa-paper.nvim', + lazy = false, + priority = 1000, + opts = {}, + config = function() + -- vim.cmd 'colorscheme kanagawa-paper' + end, + }, + + { + 'rebelot/kanagawa.nvim', + config = function() + -- vim.cmd 'colorscheme kanagawa' + end, + }, + + { + 'slugbyte/lackluster.nvim', + lazy = false, + config = function() + -- vim.cmd 'colorscheme lackluster-dark' + end, + }, + + { + 'e-q/okcolors.nvim', + config = function() end, + }, + + { + 'zenbones-theme/zenbones.nvim', + -- Optionally install Lush. Allows for more configuration or extending the colorscheme + -- If you don't want to install lush, make sure to set g:zenbones_compat = 1 + -- In Vim, compat mode is turned on as Lush only works in Neovim. + dependencies = 'rktjmp/lush.nvim', + lazy = false, + opts = {}, + config = function() + -- vim.cmd 'colorscheme zenwritten' + -- vim.cmd 'colorscheme zenbones' + -- vim.cmd 'colorscheme duckbones' + -- vim.cmd 'colorscheme tokyobones' + end, + }, +} diff --git a/lua/custom/plugins/indent-line.lua b/lua/custom/plugins/indent-line.lua new file mode 100644 index 00000000000..c0b10992748 --- /dev/null +++ b/lua/custom/plugins/indent-line.lua @@ -0,0 +1,10 @@ +return { + { + 'lukas-reineke/indent-blankline.nvim', + main = 'ibl', + ---@module "ibl" + ---@type ibl.config + opts = {}, + enabled = true, + }, +} diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8d7a..8b1559ea584 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -2,4 +2,27 @@ -- I promise not to create any merge conflicts in this directory :) -- -- See the kickstart.nvim README for more information -return {} +return { + -- { 'metakirby5/codi.vim' }, + + { + 'jbyuki/nabla.nvim', + }, + + { + 'echasnovski/mini.nvim', + config = function() + require('mini.surround').setup() + require('mini.pairs').setup() + end, + }, + + { + 'folke/zen-mode.nvim', + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + }, + }, +} diff --git a/lua/custom/plugins/lualine.lua b/lua/custom/plugins/lualine.lua new file mode 100644 index 00000000000..82c93e2b465 --- /dev/null +++ b/lua/custom/plugins/lualine.lua @@ -0,0 +1,48 @@ +return { + { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + require('lualine').setup { + options = { + icons_enabled = true, + theme = 'auto', + component_separators = { left = '', right = '' }, + section_separators = { left = '', right = '' }, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + globalstatus = false, + refresh = { + statusline = 1000, + tabline = 1000, + winbar = 1000, + }, + }, + sections = { + lualine_a = { 'mode' }, + lualine_b = { 'branch', 'diff', 'diagnostics' }, + lualine_c = { 'filename' }, + lualine_x = { 'searchcount' }, + lualine_y = { 'progress' }, + lualine_z = { 'location' }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { 'filename' }, + lualine_x = { 'location' }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {}, + } + end, + }, +} diff --git a/lua/custom/plugins/markdown.lua b/lua/custom/plugins/markdown.lua new file mode 100644 index 00000000000..491e3811a92 --- /dev/null +++ b/lua/custom/plugins/markdown.lua @@ -0,0 +1,109 @@ +return { + { + 'iamcco/markdown-preview.nvim', + cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' }, + ft = { 'markdown' }, + enabled = true, + lazy = true, + build = function() + vim.fn['mkdp#util#install']() + end, + }, + + { + 'MeanderingProgrammer/render-markdown.nvim', + opts = {}, + dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' }, -- if you use the mini.nvim suite + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons + enabled = false, + }, + + { + 'OXY2DEV/markview.nvim', + lazy = false, -- Recommended + -- ft = "markdown" -- If you decide to lazy-load anyway + enabled = true, + dependencies = { + 'nvim-treesitter/nvim-treesitter', + 'nvim-tree/nvim-web-devicons', + }, + }, + + { + 'tadmccorkle/markdown.nvim', + ft = 'markdown', -- or 'event = "VeryLazy"' + enabled = false, + opts = {}, + config = function() + require('markdown').setup { + -- Disable all keymaps by setting mappings field to 'false'. + -- Selectively disable keymaps by setting corresponding field to 'false'. + mappings = { + inline_surround_toggle = 'gs', -- (string|boolean) toggle inline style + inline_surround_toggle_line = 'gss', -- (string|boolean) line-wise toggle inline style + inline_surround_delete = 'ds', -- (string|boolean) delete emphasis surrounding cursor + inline_surround_change = 'cs', -- (string|boolean) change emphasis surrounding cursor + link_add = 'gl', -- (string|boolean) add link + link_follow = 'gx', -- (string|boolean) follow link + go_curr_heading = ']c', -- (string|boolean) set cursor to current section heading + go_parent_heading = ']p', -- (string|boolean) set cursor to parent section heading + go_next_heading = ']]', -- (string|boolean) set cursor to next section heading + go_prev_heading = '[[', -- (string|boolean) set cursor to previous section heading + }, + inline_surround = { + -- For the emphasis, strong, strikethrough, and code fields: + -- * 'key': used to specify an inline style in toggle, delete, and change operations + -- * 'txt': text inserted when toggling or changing to the corresponding inline style + emphasis = { + key = 'i', + txt = '*', + }, + strong = { + key = 'b', + txt = '**', + }, + strikethrough = { + key = 's', + txt = '~~', + }, + code = { + key = 'c', + txt = '`', + }, + }, + link = { + paste = { + enable = true, -- whether to convert URLs to links on paste + }, + }, + toc = { + -- Comment text to flag headings/sections for omission in table of contents. + omit_heading = 'toc omit heading', + omit_section = 'toc omit section', + -- Cycling list markers to use in table of contents. + -- Use '.' and ')' for ordered lists. + markers = { '-' }, + }, + -- Hook functions allow for overriding or extending default behavior. + -- Called with a table of options and a fallback function with default behavior. + -- Signature: fun(opts: table, fallback: fun()) + hooks = { + -- Called when following links. Provided the following options: + -- * 'dest' (string): the link destination + -- * 'use_default_app' (boolean|nil): whether to open the destination with default application + -- (refer to documentation on mappings for explanation of when this option is used) + follow_link = nil, + }, + on_attach = function(bufnr) + local function toggle(key) + return "gvlua require'markdown.inline'" .. ".toggle_emphasis_visual'" .. key .. "'" + end + -- classic keymaps for bold and italic + vim.keymap.set('x', '', toggle 'b', { buffer = bufnr }) + vim.keymap.set('x', '', toggle 'i', { buffer = bufnr }) + end, + } + end, + }, +} diff --git a/lua/custom/plugins/minifiles.lua b/lua/custom/plugins/minifiles.lua new file mode 100644 index 00000000000..25f5da16bd9 --- /dev/null +++ b/lua/custom/plugins/minifiles.lua @@ -0,0 +1,57 @@ +return { + 'echasnovski/mini.files', + version = '*', + config = function() + require('mini.files').setup { + -- Customization of shown content + content = { + -- Predicate for which file system entries to show + filter = nil, + -- What prefix to show to the left of file system entry + prefix = nil, + -- In which order to show file system entries + sort = nil, + }, + + -- Module mappings created only inside explorer. + -- Use `''` (empty string) to not create one. + mappings = { + close = 'q', + go_in = 'l', + go_in_plus = 'L', + go_out = 'h', + go_out_plus = 'H', + mark_goto = "'", + mark_set = 'm', + reset = '', + reveal_cwd = '@', + show_help = 'g?', + synchronize = '=', + trim_left = '<', + trim_right = '>', + }, + + -- General options + options = { + -- Whether to delete permanently or move into module-specific trash + permanent_delete = true, + -- Whether to use for editing directories + use_as_default_explorer = true, + }, + + -- Customization of explorer windows + windows = { + -- Maximum number of windows to show side by side + max_number = math.huge, + -- Whether to show preview of file/directory under cursor + preview = false, + -- Width of focused window + width_focus = 50, + -- Width of non-focused window + width_nofocus = 15, + -- Width of preview window + width_preview = 25, + }, + } + end, +} diff --git a/lua/custom/plugins/nvim-r.lua b/lua/custom/plugins/nvim-r.lua new file mode 100644 index 00000000000..d29dd9c2ce5 --- /dev/null +++ b/lua/custom/plugins/nvim-r.lua @@ -0,0 +1,13 @@ +return { + { + 'jalvesaq/Nvim-R', + ft = { 'r', 'rmd' }, -- Load the plugin for R and R Markdown files + lazy = true, + config = function() + vim.g.R_auto_start = 1 + vim.g.R_hl_term = 1 + vim.g.R_quiet = 1 + vim.g.R_assign = false + end, + }, +} diff --git a/lua/custom/plugins/nvimtree.lua b/lua/custom/plugins/nvimtree.lua new file mode 100644 index 00000000000..69b0b4faaec --- /dev/null +++ b/lua/custom/plugins/nvimtree.lua @@ -0,0 +1,12 @@ +return { + 'nvim-tree/nvim-tree.lua', + version = '*', + lazy = false, + dependencies = { + 'nvim-tree/nvim-web-devicons', + }, + + config = function() + require('nvim-tree').setup {} + end, +} diff --git a/lua/custom/plugins/toggle-terminal.lua b/lua/custom/plugins/toggle-terminal.lua new file mode 100644 index 00000000000..e5bc3bf7a30 --- /dev/null +++ b/lua/custom/plugins/toggle-terminal.lua @@ -0,0 +1,14 @@ +return { + { + 'akinsho/toggleterm.nvim', + event = 'VeryLazy', + version = '*', + opts = { + open_mapping = '', + autochdir = true, + shading_factor = 1, + close_on_exit = false, + direction = 'horizontal', -- vertical, horizontal, tab, float + }, + }, +} diff --git a/lua/custom/plugins/twilight.lua b/lua/custom/plugins/twilight.lua new file mode 100644 index 00000000000..cb301d210aa --- /dev/null +++ b/lua/custom/plugins/twilight.lua @@ -0,0 +1,6 @@ +return { + { + 'folke/twilight.nvim', + opts = {}, + }, +} diff --git a/lua/custom/plugins/typescript-tools.lua b/lua/custom/plugins/typescript-tools.lua new file mode 100644 index 00000000000..661badfcad6 --- /dev/null +++ b/lua/custom/plugins/typescript-tools.lua @@ -0,0 +1,8 @@ +return { + { + 'pmizio/typescript-tools.nvim', + dependencies = { 'nvim-lua/plenary.nvim', 'neovim/nvim-lspconfig' }, + lazy = true, + opts = {}, + }, +} diff --git a/lua/custom/plugins/vimtex.lua b/lua/custom/plugins/vimtex.lua new file mode 100644 index 00000000000..40d7e9d1412 --- /dev/null +++ b/lua/custom/plugins/vimtex.lua @@ -0,0 +1,12 @@ +return { + { + 'lervag/vimtex', + lazy = true, -- we don't want to lazy load VimTeX + enabled = false, + init = function() + -- VimTeX configuration goes here, e.g. + vim.g.vimtex_viewer_method = 'SumatraPDF' + vim.g.vimtex_compiler_method = 'latexrun' + end, + }, +} diff --git a/lua/keymaps.lua b/lua/keymaps.lua index c07a08a7514..999c1174c95 100644 --- a/lua/keymaps.lua +++ b/lua/keymaps.lua @@ -1,42 +1,36 @@ --- [[ Basic Keymaps ]] --- See `:help vim.keymap.set()` - --- Clear highlights on search when pressing in normal mode --- See `:help hlsearch` -vim.keymap.set('n', '', 'nohlsearch') - --- Diagnostic keymaps -vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) - --- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier --- for people to discover. Otherwise, you normally need to press , which --- is not what someone will guess without a bit more experience. --- --- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping --- or just use to exit terminal mode -vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) - --- TIP: Disable arrow keys in normal mode --- vim.keymap.set('n', '', 'echo "Use h to move!!"') --- vim.keymap.set('n', '', 'echo "Use l to move!!"') --- vim.keymap.set('n', '', 'echo "Use k to move!!"') --- vim.keymap.set('n', '', 'echo "Use j to move!!"') - --- Keybinds to make split navigation easier. --- Use CTRL+ to switch between windows --- --- See `:help wincmd` for a list of all window commands -vim.keymap.set('n', '', '', { desc = 'Move focus to the left window' }) -vim.keymap.set('n', '', '', { desc = 'Move focus to the right window' }) -vim.keymap.set('n', '', '', { desc = 'Move focus to the lower window' }) -vim.keymap.set('n', '', '', { desc = 'Move focus to the upper window' }) - --- [[ Basic Autocommands ]] --- See `:help lua-guide-autocommands` - --- Highlight when yanking (copying) text --- Try it with `yap` in normal mode --- See `:help vim.highlight.on_yank()` +local map = vim.keymap.set + +-- Basic +map('i', '', '') +map('n', '', 'nohlsearch') +map('n', 'pl', 'Explore') + +-- Markdown preview +map('n', 'mp', 'MarkdownPreviewToggle') + +-- Indent blankline +map('n', 'ibl', 'IBLToggle') + +-- Telescope colorscheme +map('n', 'cs', 'Telescope colorscheme') + +-- nabla +map('n', 'pp', 'lua require"nabla".popup()') + +-- diagnostics +map('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) + +-- Window movement +map('n', '', '', { desc = 'Move focus to the left window' }) +map('n', '', '', { desc = 'Move focus to the right window' }) +map('n', '', '', { desc = 'Move focus to the lower window' }) +map('n', '', '', { desc = 'Move focus to the upper window' }) + +-- Comments +map('n', '/', 'gcc', { desc = 'Toggle Comment', remap = true }) +map('v', '/', 'gc', { desc = 'Toggle comment', remap = true }) + +-- Yanking and highlighting vim.api.nvim_create_autocmd('TextYankPost', { desc = 'Highlight when yanking (copying) text', group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), @@ -44,5 +38,3 @@ vim.api.nvim_create_autocmd('TextYankPost', { vim.highlight.on_yank() end, }) - --- vim: ts=2 sts=2 sw=2 et diff --git a/lua/kickstart/plugins/cmp.lua b/lua/kickstart/plugins/cmp.lua index e9ed483b75f..e38fd78f63e 100644 --- a/lua/kickstart/plugins/cmp.lua +++ b/lua/kickstart/plugins/cmp.lua @@ -1,92 +1,100 @@ return { - { -- Autocompletion + { + 'L3MON4D3/LuaSnip', + lazy = true, + dependencies = { + 'rafamadriz/friendly-snippets', + -- Tu importamo snippets + config = function() + require('luasnip.loaders.from_vscode').lazy_load() + require('luasnip.loaders.from_lua').load { paths = { 'C:/Users/joene/AppData/Local/nvim/snippets' } } + end, + }, + + config = function() + require('luasnip').config.setup { + store_selection_keys = '', + } + end, + }, + + { 'saadparwaiz1/cmp_luasnip' }, + { 'hrsh7th/cmp-nvim-lsp' }, + { 'hrsh7th/cmp-nvim-lua' }, + { 'hrsh7th/cmp-buffer' }, + { 'hrsh7th/cmp-path' }, + { 'hrsh7th/cmp-cmdline' }, + + { 'hrsh7th/nvim-cmp', event = 'InsertEnter', dependencies = { - -- Snippet Engine & its associated nvim-cmp source - { - 'L3MON4D3/LuaSnip', - build = (function() - -- Build Step is needed for regex support in snippets. - -- This step is not supported in many windows environments. - -- Remove the below condition to re-enable on windows. - if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then - return - end - return 'make install_jsregexp' - end)(), - dependencies = { - -- `friendly-snippets` contains a variety of premade snippets. - -- See the README about individual language/framework/plugin snippets: - -- https://github.com/rafamadriz/friendly-snippets - -- { - -- 'rafamadriz/friendly-snippets', - -- config = function() - -- require('luasnip.loaders.from_vscode').lazy_load() - -- end, - -- }, - }, - }, - 'saadparwaiz1/cmp_luasnip', - - -- Adds other completion capabilities. - -- nvim-cmp does not ship with all sources by default. They are split - -- into multiple repos for maintenance purposes. - 'hrsh7th/cmp-nvim-lsp', - 'hrsh7th/cmp-path', + 'onsails/lspkind.nvim', + 'roobert/tailwindcss-colorizer-cmp.nvim', }, config = function() - -- See `:help cmp` local cmp = require 'cmp' + local lspkind = require 'lspkind' local luasnip = require 'luasnip' - luasnip.config.setup {} + + luasnip.config.setup { enable_autosnippets = true } cmp.setup { + performance = { + max_view_entries = 30, + }, + snippet = { + -- REQUIRED - you must specify a snippet engine expand = function(args) - luasnip.lsp_expand(args.body) + luasnip.lsp_expand(args.body) -- For `luasnip` users. end, }, - completion = { completeopt = 'menu,menuone,noinsert' }, - -- For an understanding of why these mappings were - -- chosen, you will need to read `:help ins-completion` - -- - -- No, but seriously. Please read `:help ins-completion`, it is really good! + view = { + entries = { + name = 'custom', -- can be "custom", "wildmenu" or "native" + selection_order = 'near_cursor', + }, + }, + + window = { + -- completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + + formatting = { + format = lspkind.cmp_format { + mode = 'text', + maxwidth = 50, + }, + }, + mapping = cmp.mapping.preset.insert { - -- Select the [n]ext item - [''] = cmp.mapping.select_next_item(), - -- Select the [p]revious item - [''] = cmp.mapping.select_prev_item(), + -- suggestions + [''] = cmp.mapping.confirm { select = false }, + + [''] = function(fallback) + if cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, + + [''] = function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + end, - -- Scroll the documentation window [b]ack / [f]orward + -- documentation [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), - -- Accept ([y]es) the completion. - -- This will auto-import if your LSP supports it. - -- This will expand snippets if the LSP sent a snippet. - [''] = cmp.mapping.confirm { select = true }, - - -- If you prefer more traditional completion keymaps, - -- you can uncomment the following lines - --[''] = cmp.mapping.confirm { select = true }, - --[''] = cmp.mapping.select_next_item(), - --[''] = cmp.mapping.select_prev_item(), - - -- Manually trigger a completion from nvim-cmp. - -- Generally you don't need this, because nvim-cmp will display - -- completions whenever it has completion options available. - [''] = cmp.mapping.complete {}, - - -- Think of as moving to the right of your snippet expansion. - -- So if you have a snippet that's like: - -- function $name($args) - -- $body - -- end - -- - -- will move you to the right of each of the expansion locations. - -- is similar, except moving you backwards. + -- snippet insert nodes [''] = cmp.mapping(function() if luasnip.expand_or_locally_jumpable() then luasnip.expand_or_jump() @@ -97,22 +105,42 @@ return { luasnip.jump(-1) end end, { 'i', 's' }), - - -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: - -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps }, - sources = { - { - name = 'lazydev', - -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it - group_index = 0, - }, + + sources = cmp.config.sources({ { name = 'nvim_lsp' }, - { name = 'luasnip' }, + { name = 'luasnip' }, -- For luasnip users. + { name = 'nvim_lua' }, { name = 'path' }, - }, + }, { + { name = 'buffer' }, + }), } + + -- Set configuration for specific filetype. + cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. + }, { + { name = 'buffer' }, + }), + }) + -- Use buffer source for `/` (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' }, + }), + }) end, }, } --- vim: ts=2 sts=2 sw=2 et diff --git a/lua/kickstart/plugins/conform.lua b/lua/kickstart/plugins/conform.lua index e7fc728d85a..6d1bd294962 100644 --- a/lua/kickstart/plugins/conform.lua +++ b/lua/kickstart/plugins/conform.lua @@ -28,10 +28,10 @@ return { formatters_by_ft = { lua = { 'stylua' }, -- Conform can also run multiple formatters sequentially - -- python = { "isort", "black" }, + python = { "isort", "black" }, -- -- You can use 'stop_after_first' to run the first available formatter from the list - -- javascript = { "prettierd", "prettier", stop_after_first = true }, + javascript = { "prettierd", "prettier", stop_after_first = true }, }, }, }, diff --git a/lua/kickstart/plugins/debug.lua b/lua/kickstart/plugins/debug.lua index 196f2c6dbd6..06f624087a0 100644 --- a/lua/kickstart/plugins/debug.lua +++ b/lua/kickstart/plugins/debug.lua @@ -7,9 +7,7 @@ -- kickstart.nvim and not kitchen-sink.nvim ;) return { - -- NOTE: Yes, you can install new plugins here! 'mfussenegger/nvim-dap', - -- NOTE: And you can specify dependencies as well dependencies = { -- Creates a beautiful debugger UI 'rcarriga/nvim-dap-ui', diff --git a/lua/kickstart/plugins/gitsigns.lua b/lua/kickstart/plugins/gitsigns.lua index b8918ce8fcd..d82a83fbecc 100644 --- a/lua/kickstart/plugins/gitsigns.lua +++ b/lua/kickstart/plugins/gitsigns.lua @@ -6,65 +6,58 @@ return { { -- Adds git related signs to the gutter, as well as utilities for managing changes 'lewis6991/gitsigns.nvim', - opts = { - signs = { - add = { text = '+' }, - change = { text = '~' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - }, - on_attach = function(bufnr) - local gitsigns = require 'gitsigns' - - local function map(mode, l, r, opts) - opts = opts or {} - opts.buffer = bufnr - vim.keymap.set(mode, l, r, opts) - end - - -- Navigation - map('n', ']c', function() - if vim.wo.diff then - vim.cmd.normal { ']c', bang = true } - else - gitsigns.nav_hunk 'next' - end - end, { desc = 'Jump to next git [c]hange' }) - - map('n', '[c', function() - if vim.wo.diff then - vim.cmd.normal { '[c', bang = true } - else - gitsigns.nav_hunk 'prev' - end - end, { desc = 'Jump to previous git [c]hange' }) - - -- Actions - -- visual mode - map('v', 'hs', function() - gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } - end, { desc = 'stage git hunk' }) - map('v', 'hr', function() - gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } - end, { desc = 'reset git hunk' }) - -- normal mode - map('n', 'hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' }) - map('n', 'hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' }) - map('n', 'hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' }) - map('n', 'hu', gitsigns.undo_stage_hunk, { desc = 'git [u]ndo stage hunk' }) - map('n', 'hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' }) - map('n', 'hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' }) - map('n', 'hb', gitsigns.blame_line, { desc = 'git [b]lame line' }) - map('n', 'hd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) - map('n', 'hD', function() - gitsigns.diffthis '@' - end, { desc = 'git [D]iff against last commit' }) - -- Toggles - map('n', 'tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' }) - map('n', 'tD', gitsigns.toggle_deleted, { desc = '[T]oggle git show [D]eleted' }) - end, - }, + config = function() + require('gitsigns').setup { + signs = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '┃' }, + topdelete = { text = '┃' }, + changedelete = { text = '┃' }, + untracked = { text = '┃' }, + }, + signs_staged = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '┃' }, + topdelete = { text = '┃' }, + changedelete = { text = '┃' }, + untracked = { text = '┃' }, + }, + signs_staged_enable = true, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true, + }, + auto_attach = true, + attach_to_untracked = false, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + virt_text_priority = 100, + use_focus = true, + }, + current_line_blame_formatter = ', - ', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = 'single', + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1, + }, + } + end, }, } -- vim: ts=2 sts=2 sw=2 et diff --git a/lua/kickstart/plugins/indent_line.lua b/lua/kickstart/plugins/indent_line.lua deleted file mode 100644 index ed7f269399f..00000000000 --- a/lua/kickstart/plugins/indent_line.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - { -- Add indentation guides even on blank lines - 'lukas-reineke/indent-blankline.nvim', - -- Enable `lukas-reineke/indent-blankline.nvim` - -- See `:help ibl` - main = 'ibl', - opts = {}, - }, -} diff --git a/lua/kickstart/plugins/lspconfig.lua b/lua/kickstart/plugins/lspconfig.lua index b9c3c623c76..500a30714bc 100644 --- a/lua/kickstart/plugins/lspconfig.lua +++ b/lua/kickstart/plugins/lspconfig.lua @@ -1,104 +1,39 @@ --- LSP Plugins return { { - -- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins - -- used for completion, annotations and signatures of Neovim apis - 'folke/lazydev.nvim', - ft = 'lua', - opts = { - library = { - -- Load luvit types when the `vim.uv` word is found - { path = 'luvit-meta/library', words = { 'vim%.uv' } }, - }, - }, - }, - { 'Bilal2453/luvit-meta', lazy = true }, - { - -- Main LSP Configuration - 'neovim/nvim-lspconfig', + 'williamboman/mason-lspconfig.nvim', dependencies = { - -- Automatically install LSPs and related tools to stdpath for Neovim - { 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants - 'williamboman/mason-lspconfig.nvim', - 'WhoIsSethDaniel/mason-tool-installer.nvim', - - -- Useful status updates for LSP. - -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` - { 'j-hui/fidget.nvim', opts = {} }, - - -- Allows extra capabilities provided by nvim-cmp - 'hrsh7th/cmp-nvim-lsp', + 'williamboman/mason.nvim', + 'neovim/nvim-lspconfig', }, config = function() - -- Brief aside: **What is LSP?** - -- - -- LSP is an initialism you've probably heard, but might not understand what it is. - -- - -- LSP stands for Language Server Protocol. It's a protocol that helps editors - -- and language tooling communicate in a standardized fashion. - -- - -- In general, you have a "server" which is some tool built to understand a particular - -- language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.). These Language Servers - -- (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone - -- processes that communicate with some "client" - in this case, Neovim! - -- - -- LSP provides Neovim with features like: - -- - Go to definition - -- - Find references - -- - Autocompletion - -- - Symbol Search - -- - and more! - -- - -- Thus, Language Servers are external tools that must be installed separately from - -- Neovim. This is where `mason` and related plugins come into play. - -- - -- If you're wondering about lsp vs treesitter, you can check out the wonderfully - -- and elegantly composed help section, `:help lsp-vs-treesitter` - - -- This function gets run when an LSP attaches to a particular buffer. - -- That is to say, every time a new file is opened that is associated with - -- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this - -- function will be executed to configure the current buffer + -- NOTE: from `kickstart/plugins/lspconfig.lua` vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), callback = function(event) - -- NOTE: Remember that Lua is a real programming language, and as such it is possible - -- to define small helper and utility functions so you don't have to repeat yourself. - -- - -- In this case, we create a function that lets us more easily define mappings specific - -- for LSP related items. It sets the mode, buffer and description for us each time. local map = function(keys, func, desc, mode) mode = mode or 'n' vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) end -- Jump to the definition of the word under your cursor. - -- This is where a variable was first declared, or where a function is defined, etc. - -- To jump back, press . map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') -- Find references for the word under your cursor. map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') -- Jump to the implementation of the word under your cursor. - -- Useful when your language has ways of declaring types without an actual implementation. map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') -- Jump to the type of the word under your cursor. - -- Useful when you're not sure what type a variable is and you want to see - -- the definition of its *type*, not where it was *defined*. map('D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') -- Fuzzy find all the symbols in your current document. - -- Symbols are things like variables, functions, types, etc. - map('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') + -- map('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') - -- Fuzzy find all the symbols in your current workspace. - -- Similar to document symbols, except searches over your entire project. + -- Fuzzy find all the symbols in your current workspace (project). map('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') -- Rename the variable under your cursor. - -- Most Language Servers support renaming across files, etc. map('rn', vim.lsp.buf.rename, '[R]e[n]ame') -- Execute a code action, usually your cursor needs to be on top of an error @@ -108,121 +43,111 @@ return { -- WARN: This is not Goto Definition, this is Goto Declaration. -- For example, in C this would take you to the header. map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') + end, + }) - -- The following two autocommands are used to highlight references of the - -- word under your cursor when your cursor rests there for a little while. - -- See `:help CursorHold` for information about when this is executed - -- - -- When you move your cursor, the highlights will be cleared (the second autocommand). - local client = vim.lsp.get_client_by_id(event.data.client_id) - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then - local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false }) - vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { - buffer = event.buf, - group = highlight_augroup, - callback = vim.lsp.buf.document_highlight, - }) - - vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { - buffer = event.buf, - group = highlight_augroup, - callback = vim.lsp.buf.clear_references, - }) - - vim.api.nvim_create_autocmd('LspDetach', { - group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }), - callback = function(event2) - vim.lsp.buf.clear_references() - vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf } - end, - }) - end + require('mason').setup() + require('mason-lspconfig').setup_handlers { + -- The first entry (without a key) will be the default handler + -- and will be called for each installed server that doesn't have + -- a dedicated handler. + function(server_name) + local capabilities = require('cmp_nvim_lsp').default_capabilities() + require('lspconfig')[server_name].setup { capabilities = capabilities } + end, - -- The following code creates a keymap to toggle inlay hints in your - -- code, if the language server you are using supports them - -- - -- This may be unwanted, since they displace some of your code - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then - map('th', function() - vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf }) - end, '[T]oggle Inlay [H]ints') - end + -- Every entry is a custom lsp config + -- [[ + ['marksman'] = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require 'lspconfig' + + lspconfig.clangd.setup { + capabilities = capabilities, + } end, - }) - -- LSP servers and clients are able to communicate to each other what features they support. - -- By default, Neovim doesn't support everything that is in the LSP specification. - -- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities. - -- So, we create new capabilities with nvim cmp, and then broadcast that to the servers. - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities()) - - -- Enable the following language servers - -- Feel free to add/remove any LSPs that you want here. They will automatically be installed. - -- - -- Add any additional override configuration in the following tables. Available keys are: - -- - cmd (table): Override the default command used to start the server - -- - filetypes (table): Override the default list of associated filetypes for the server - -- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features. - -- - settings (table): Override the default settings passed when initializing the server. - -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ - local servers = { - -- clangd = {}, - -- gopls = {}, - -- pyright = {}, - -- rust_analyzer = {}, - -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs - -- - -- Some languages (like typescript) have entire language plugins that can be useful: - -- https://github.com/pmizio/typescript-tools.nvim - -- - -- But for many setups, the LSP (`tsserver`) will work just fine - -- tsserver = {}, - -- - - lua_ls = { - -- cmd = {...}, - -- filetypes = { ...}, - -- capabilities = {}, - settings = { - Lua = { - completion = { - callSnippet = 'Replace', + ['clangd'] = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require 'lspconfig' + + lspconfig.clangd.setup { + capabilities = capabilities, + } + end, + + ['lua_ls'] = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require 'lspconfig' + + lspconfig.lua_ls.setup { + capabilities = capabilities, + + settings = { + Lua = { + diagnostics = { + globals = { 'vim' }, + }, }, - -- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings - -- diagnostics = { disable = { 'missing-fields' } }, }, - }, - }, - } - -- Ensure the servers and tools above are installed - -- To check the current status of installed tools and/or manually install - -- other tools, you can run - -- :Mason - -- - -- You can press `g?` for help in this menu. - require('mason').setup() + on_init = function(client) + local path = client.workspace_folders[1].name + if not vim.loop.fs_stat(path .. '/.luarc.json') and not vim.loop.fs_stat(path .. '/.luarc.jsonc') then + client.config.settings = vim.tbl_deep_extend('force', client.config.settings, { + Lua = { + runtime = { + version = 'LuaJIT', + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + }, + }, + }, + }) + client.notify('workspace/didChangeConfiguration', { settings = client.config.settings }) + end + return true + end, + } + end, - -- You can add other tools here that you want Mason to install - -- for you, so that they are available from within Neovim. - local ensure_installed = vim.tbl_keys(servers or {}) - vim.list_extend(ensure_installed, { - 'stylua', -- Used to format Lua code - }) - require('mason-tool-installer').setup { ensure_installed = ensure_installed } - - require('mason-lspconfig').setup { - handlers = { - function(server_name) - local server = servers[server_name] or {} - -- This handles overriding only values explicitly passed - -- by the server configuration above. Useful when disabling - -- certain features of an LSP (for example, turning off formatting for tsserver) - server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) - require('lspconfig')[server_name].setup(server) - end, - }, + ['texlab'] = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require 'lspconfig' + lspconfig.texlab.setup { + capabilities = capabilities, + filetypes = { 'tex', 'bib', 'rnoweb' }, + } + end, + + ['r_language_server'] = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require 'lspconfig' + + lspconfig.r_language_server.setup { + capabilities = capabilities, + settings = { + r = { + lsp = { + rich_documentation = true, + diagnostics = true, + }, + }, + }, + on_attach = function(client, bufnr) + vim.diagnostic.config { + virtual_text = false, -- Virtual text (the inline hints) + signs = false, -- Show signs in the gutter + underline = false, -- Underline problematic code + } + end, + } + end, + -- ]] } end, }, diff --git a/lua/kickstart/plugins/mini.lua b/lua/kickstart/plugins/mini.lua index 3a9bdc30813..78114a4ba63 100644 --- a/lua/kickstart/plugins/mini.lua +++ b/lua/kickstart/plugins/mini.lua @@ -2,39 +2,17 @@ return { { -- Collection of various small independent plugins/modules 'echasnovski/mini.nvim', config = function() - -- Better Around/Inside textobjects - -- - -- Examples: - -- - va) - [V]isually select [A]round [)]paren - -- - yinq - [Y]ank [I]nside [N]ext [Q]uote - -- - ci' - [C]hange [I]nside [']quote require('mini.ai').setup { n_lines = 500 } - - -- Add/delete/replace surroundings (brackets, quotes, etc.) - -- - -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren - -- - sd' - [S]urround [D]elete [']quotes - -- - sr)' - [S]urround [R]eplace [)] ['] require('mini.surround').setup() + require('mini.git').setup() - -- Simple and easy statusline. - -- You could remove this setup call if you don't like it, - -- and try some other statusline plugin local statusline = require 'mini.statusline' - -- set use_icons to true if you have a Nerd Font statusline.setup { use_icons = vim.g.have_nerd_font } - -- You can configure sections in the statusline by overriding their - -- default behavior. For example, here we set the section for - -- cursor location to LINE:COLUMN ---@diagnostic disable-next-line: duplicate-set-field statusline.section_location = function() return '%2l:%-2v' end - - -- ... and there is more! - -- Check out: https://github.com/echasnovski/mini.nvim end, }, } --- vim: ts=2 sts=2 sw=2 et diff --git a/lua/kickstart/plugins/neo-tree.lua b/lua/kickstart/plugins/neo-tree.lua index f126d68af2c..d869486f61c 100644 --- a/lua/kickstart/plugins/neo-tree.lua +++ b/lua/kickstart/plugins/neo-tree.lua @@ -2,6 +2,7 @@ -- https://github.com/nvim-neo-tree/neo-tree.nvim return { + enabled = true, 'nvim-neo-tree/neo-tree.nvim', version = '*', dependencies = { @@ -16,8 +17,24 @@ return { opts = { filesystem = { window = { + width = 30, + position = 'left', -- float, left, right, current mappings = { ['\\'] = 'close_window', + ['P'] = 'toggle_preview', + ['l'] = 'focus_preview', + ['S'] = 'open_split', + ['s'] = 'open_vsplit', + ['A'] = 'add_directory', -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion. + ['d'] = 'delete', + ['r'] = 'rename', + ['m'] = 'move', -- takes text input for destination, also accepts the optional config.show_path option like "add". + ['q'] = 'close_window', + ['R'] = 'refresh', + ['?'] = 'show_help', + ['<'] = 'prev_source', + ['>'] = 'next_source', + ['i'] = 'show_file_details', }, }, }, diff --git a/lua/kickstart/plugins/telescope.lua b/lua/kickstart/plugins/telescope.lua index 159971f00e7..2d210e80679 100644 --- a/lua/kickstart/plugins/telescope.lua +++ b/lua/kickstart/plugins/telescope.lua @@ -1,10 +1,3 @@ --- NOTE: Plugins can specify dependencies. --- --- The dependencies are proper plugin specifications as well - anything --- you do for a plugin at the top level, you can do for a dependency. --- --- Use the `dependencies` key to specify the dependencies of a particular plugin - return { { -- Fuzzy Finder (files, lsp, etc) 'nvim-telescope/telescope.nvim', @@ -14,54 +7,17 @@ return { 'nvim-lua/plenary.nvim', { -- If encountering errors, see telescope-fzf-native README for installation instructions 'nvim-telescope/telescope-fzf-native.nvim', - - -- `build` is used to run some command when the plugin is installed/updated. - -- This is only run then, not every time Neovim starts up. build = 'make', - - -- `cond` is a condition used to determine whether this plugin should be - -- installed and loaded. cond = function() return vim.fn.executable 'make' == 1 end, }, { 'nvim-telescope/telescope-ui-select.nvim' }, - -- Useful for getting pretty icons, but requires a Nerd Font. { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, }, config = function() - -- Telescope is a fuzzy finder that comes with a lot of different things that - -- it can fuzzy find! It's more than just a "file finder", it can search - -- many different aspects of Neovim, your workspace, LSP, and more! - -- - -- The easiest way to use Telescope, is to start by doing something like: - -- :Telescope help_tags - -- - -- After running this command, a window will open up and you're able to - -- type in the prompt window. You'll see a list of `help_tags` options and - -- a corresponding preview of the help. - -- - -- Two important keymaps to use while in Telescope are: - -- - Insert mode: - -- - Normal mode: ? - -- - -- This opens a window that shows you all of the keymaps for the current - -- Telescope picker. This is really useful to discover what Telescope can - -- do as well as how to actually do it! - - -- [[ Configure Telescope ]] - -- See `:help telescope` and `:help telescope.setup()` require('telescope').setup { - -- You can put your default mappings / updates / etc. in here - -- All the info you're looking for is in `:help telescope.setup()` - -- - -- defaults = { - -- mappings = { - -- i = { [''] = 'to_fuzzy_refine' }, - -- }, - -- }, - -- pickers = {} extensions = { ['ui-select'] = { require('telescope.themes').get_dropdown(), @@ -69,11 +25,9 @@ return { }, } - -- Enable Telescope extensions if they are installed pcall(require('telescope').load_extension, 'fzf') pcall(require('telescope').load_extension, 'ui-select') - -- See `:help telescope.builtin` local builtin = require 'telescope.builtin' vim.keymap.set('n', 'sh', builtin.help_tags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' }) @@ -84,19 +38,17 @@ return { vim.keymap.set('n', 'sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', 'sr', builtin.resume, { desc = '[S]earch [R]esume' }) vim.keymap.set('n', 's.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) - vim.keymap.set('n', '', builtin.buffers, { desc = '[ ] Find existing buffers' }) + vim.keymap.set('n', '', builtin.buffers, { desc = '[ ] Find current buffers' }) - -- Slightly advanced example of overriding default behavior and theme - vim.keymap.set('n', '/', function() - -- You can pass additional configuration to Telescope to change the theme, layout, etc. + local popup = function() builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { winblend = 10, previewer = false, }) - end, { desc = '[/] Fuzzily search in current buffer' }) + end + + vim.keymap.set('n', '/', popup, { desc = '[/] Fuzzily search in current buffer' }) - -- It's also possible to pass additional configuration options. - -- See `:help telescope.builtin.live_grep()` for information about particular keys vim.keymap.set('n', 's/', function() builtin.live_grep { grep_open_files = true, @@ -104,11 +56,9 @@ return { } end, { desc = '[S]earch [/] in Open Files' }) - -- Shortcut for searching your Neovim configuration files vim.keymap.set('n', 'sn', function() builtin.find_files { cwd = vim.fn.stdpath 'config' } end, { desc = '[S]earch [N]eovim files' }) end, }, } --- vim: ts=2 sts=2 sw=2 et diff --git a/lua/kickstart/plugins/tokyonight.lua b/lua/kickstart/plugins/tokyonight.lua index 3e5e74d945b..44f5dfec5b8 100644 --- a/lua/kickstart/plugins/tokyonight.lua +++ b/lua/kickstart/plugins/tokyonight.lua @@ -1,20 +1,16 @@ return { - { -- You can easily change to a different colorscheme. - -- Change the name of the colorscheme plugin below, and then - -- change the command in the config to whatever the name of that colorscheme is. - -- - -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`. + { 'folke/tokyonight.nvim', priority = 1000, -- Make sure to load this before all the other start plugins. + opts = { + tokyonight_transparent = true, + tokyonight_day_brightness = 0, + }, init = function() - -- Load the colorscheme here. - -- Like many other themes, this one has different styles, and you could load - -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'tokyonight-night' - - -- You can configure highlights by doing something like: - vim.cmd.hi 'Comment gui=none' + -- vim.cmd.colorscheme 'tokyonight-storm' + -- vim.cmd.colorscheme 'tokyonight-moon' + -- vim.cmd.colorscheme 'tokyonight-night' + -- vim.cmd.colorscheme 'tokyonight-day' end, }, } --- vim: ts=2 sts=2 sw=2 et diff --git a/lua/lazy-bootstrap.lua b/lua/lazy-bootstrap.lua index 8dc96c8f068..f42c2b700bb 100644 --- a/lua/lazy-bootstrap.lua +++ b/lua/lazy-bootstrap.lua @@ -1,13 +1,12 @@ --- [[ Install `lazy.nvim` plugin manager ]] --- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info 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 error('Error cloning lazy.nvim:\n' .. out) end end ---@diagnostic disable-next-line: undefined-field -vim.opt.rtp:prepend(lazypath) --- vim: ts=2 sts=2 sw=2 et +vim.opt.rtp:prepend(lazypath) diff --git a/lua/lazy-plugins.lua b/lua/lazy-plugins.lua index f601d395e2a..897c4a0531e 100644 --- a/lua/lazy-plugins.lua +++ b/lua/lazy-plugins.lua @@ -1,74 +1,23 @@ --- [[ Configure and install plugins ]] --- --- To check the current status of your plugins, run --- :Lazy --- --- You can press `?` in this menu for help. Use `:q` to close the window --- --- To update plugins you can run --- :Lazy update --- --- NOTE: Here is where you install your plugins. require('lazy').setup({ - -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). 'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically - - -- NOTE: Plugins can also be added by using a table, - -- with the first argument being the link and the following - -- keys can be used to configure plugin behavior/loading/etc. - -- - -- Use `opts = {}` to force a plugin to be loaded. - -- - - - -- modular approach: using `require 'path/name'` will - -- include a plugin definition from file lua/path/name.lua - require 'kickstart/plugins/gitsigns', - require 'kickstart/plugins/which-key', - require 'kickstart/plugins/telescope', - require 'kickstart/plugins/lspconfig', - require 'kickstart/plugins/conform', - require 'kickstart/plugins/cmp', - require 'kickstart/plugins/tokyonight', - require 'kickstart/plugins/todo-comments', - require 'kickstart/plugins/mini', - require 'kickstart/plugins/treesitter', + require 'kickstart.plugins.debug', + require 'kickstart.plugins.lint', + require 'kickstart.plugins.autopairs', + require 'kickstart.plugins.neo-tree', - -- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the - -- init.lua. If you want these files, they are in the repository, so you can just download them and - -- place them in the correct locations. - - -- NOTE: Next step on your Neovim journey: Add/Configure additional plugins for Kickstart - -- - -- Here are some example plugins that I've included in the Kickstart repository. - -- Uncomment any of the lines below to enable them (you will need to restart nvim). - -- - -- require 'kickstart.plugins.debug', - -- require 'kickstart.plugins.indent_line', - -- require 'kickstart.plugins.lint', - -- require 'kickstart.plugins.autopairs', - -- require 'kickstart.plugins.neo-tree', - - -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` - -- This is the easiest way to modularize your config. - -- - -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. - -- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins` - -- { import = 'custom.plugins' }, + { import = 'custom.plugins' }, }, { ui = { - -- If you are using a Nerd Font: set icons to an empty table which will use the - -- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table icons = vim.g.have_nerd_font and {} or { cmd = '⌘', config = '🛠', @@ -86,5 +35,3 @@ require('lazy').setup({ }, }, }) - --- vim: ts=2 sts=2 sw=2 et diff --git a/lua/options.lua b/lua/options.lua index 94ee2ed6364..4fc6c4da113 100644 --- a/lua/options.lua +++ b/lua/options.lua @@ -1,65 +1,43 @@ --- [[ Setting options ]] --- See `:help vim.opt` --- NOTE: You can change these options as you wish! --- For more options, you can see `:help option-list` +vim.o.conceallevel = 3 +vim.opt.cursorline = true + +vim.o.wrap = true +vim.o.linebreak = true --- Make line numbers default vim.opt.number = true --- You can also add relative line numbers, to help with jumping. --- Experiment for yourself to see if you like it! --- vim.opt.relativenumber = true +vim.o.numberwidth = 3 +vim.opt.relativenumber = true +vim.opt.scrolloff = 999 +vim.o.textwidth = 0 --- Enable mouse mode, can be useful for resizing splits for example! vim.opt.mouse = 'a' --- Don't show the mode, since it's already in the status line vim.opt.showmode = false --- Sync clipboard between OS and Neovim. --- Schedule the setting after `UiEnter` because it can increase startup-time. --- Remove this option if you want your OS clipboard to remain independent. --- See `:help 'clipboard'` vim.schedule(function() vim.opt.clipboard = 'unnamedplus' end) --- Enable break indent vim.opt.breakindent = true +vim.opt.smartindent = true +vim.opt.tabstop = 2 +vim.opt.shiftwidth = 4 --- Save undo history vim.opt.undofile = true --- Case-insensitive searching UNLESS \C or one or more capital letters in the search term vim.opt.ignorecase = true vim.opt.smartcase = true --- Keep signcolumn on by default vim.opt.signcolumn = 'yes' --- Decrease update time -vim.opt.updatetime = 250 +vim.opt.updatetime = 50 --- Decrease mapped sequence wait time --- Displays which-key popup sooner vim.opt.timeoutlen = 300 --- Configure how new splits should be opened vim.opt.splitright = true vim.opt.splitbelow = true --- Sets how neovim will display certain whitespace characters in the editor. --- See `:help 'list'` --- and `:help 'listchars'` -vim.opt.list = true -vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } +vim.opt.list = false +vim.opt.listchars = { trail = '·', nbsp = '␣' } --- Preview substitutions live, as you type! vim.opt.inccommand = 'split' - --- Show which line your cursor is on -vim.opt.cursorline = true - --- Minimal number of screen lines to keep above and below the cursor. -vim.opt.scrolloff = 10 - --- vim: ts=2 sts=2 sw=2 et diff --git a/snippets/README.md b/snippets/README.md new file mode 100644 index 00000000000..6136e6076cb --- /dev/null +++ b/snippets/README.md @@ -0,0 +1,109 @@ +- [Intro](#intro) +- [Snippet template](#snippet-template) +- [Nodes](#nodes) + - [text node](#text-node) + - [insert node](#insert-node) + - [fmt()](#fmt) + +## Intro + +Configuration za `luasnip` imaš v `nvim/lua/kickstart/plugins/cmp.lua`, pomemben +je line, kjer je required directory za snippet (load_... nekaj). + + return { + { -- Autocompletion + ... + ... + ... + ... + config = function() + require('luasnip.loaders.from_vscode').lazy_load() + require('luasnip.loaders.from_lua').load { paths = { 'C:/Users/joene/AppData/Local/nvim/snippets/' } } + end, + ... + ... + ... + }, + } + +## Snippet template + + local ls = require('luasnip') + local s = ls.snippet + local t = ls.text_node + local i = ls.insert_node + + return { + s( + { -- Table 1: parameters + trig = 'hello', + dscr = "spremeni 'hello' v 'Hello world'", + }, + + { -- Table 2: nodes + t("Hello world") + }, + + { -- Table 3: advanced parameters } + ) + } + +## Nodes + +### text node + +Imaš one-liner. + + "hello" + +in multi-liner: + + [[ + to je multi line, + zato lahko pises z + line breaks :) + ]] + +### insert node + +Kam ti prleti cursor v snipetu. Za skakanje levo in desno se uporabljata `luasnip-jump-next` in `luasnip-jump-prev`. +[Več lah prebereš tuki](https://ejmastnak.com/tutorials/vim-latex/luasnip/#keymaps). + +### fmt() + + s({ + ... + }, fmt() + ) + +basically... + + fmt( + `tuki pride snippet replacement`, + { `tuki pridejo nodes` }, + { `tuki pridejo delimiters` } + ) + +Delimiter je znak, ki se uporabi za placanje cursorja. + +#### primer fmt() uporabe + +``` +s({ + trig = "halo", + dscr = "neki", + }, fmt( + [[ + moje ime: <> + moj priimek: <> + ]], + { + i(1, 'ime'), + i(2, 'priimek') + }, + { delimiters = '<>' } + ) +) +``` + +`fmta` je samo fmt, le da so delimiters nastimani na `<>` po default. diff --git a/snippets/all.lua b/snippets/all.lua new file mode 100644 index 00000000000..992b7b46e9b --- /dev/null +++ b/snippets/all.lua @@ -0,0 +1,41 @@ +local ls = require 'luasnip' +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node +local fmta = require('luasnip.extras.fmt').fmta +local rep = require('luasnip.extras').rep + +return { + -- plugin + s( + { trig = 'plug', dscr = 'return table ta nov plugin' }, + fmta( + [[ + return { + <> + enabled = true, + } + ]], + { i(1) } + ) + ), + + -- advent of code + s( + { trig = 'aoc', dscr = 'start template s tidyverse in util.R za advent of code' }, + fmta( + [[ + library(tidyverse) + source("C:/Users/joene/Documents/progAAAAAAA/adventOfCode2023/util.R", chdir = TRUE, echo = TRUE) + <> + ]], + { i(1) } + ) + ), + + -- pipe operator + s({ trig = 'pap', dscr = 'pipe operator v R-ju', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('%>>% <>', { i(1) })), + + -- R documentation + s({ trig = 'doc', dscr = 'documentation znak za R funkcije', regTrig = false, wordTrig = true }, fmta("#' <>", { i(1) })), +} diff --git a/snippets/c.lua b/snippets/c.lua new file mode 100644 index 00000000000..1dbf9844bb1 --- /dev/null +++ b/snippets/c.lua @@ -0,0 +1,31 @@ +local ls = require 'luasnip' +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node +local fmta = require('luasnip.extras.fmt').fmta +local rep = require('luasnip.extras').rep + +-- include in main funckija, zato je base +return { + s( + { trig = 'base', dscr = 'include stdio.h in main funkcija z return 0', regTrig = false, wordTrig = true }, + fmta( + [[ +#include <> +#include <> + +int main() { + <> + + return 0; +} +]], + { i(1) } + ) + ), + + s( + { trig = 'line', dscr = 'ustvari file pointer za file, ki ga hočeš prebrat', regTrig = false, wordTrig = true }, + fmta('FILE *file = fopen(<>, <>)', { i(1), i(2) }) + ), +} diff --git a/snippets/lua.lua b/snippets/lua.lua new file mode 100644 index 00000000000..ef5835f655a --- /dev/null +++ b/snippets/lua.lua @@ -0,0 +1,14 @@ +local ls = require 'luasnip' +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node +local fmta = require('luasnip.extras.fmt').fmta +local rep = require('luasnip.extras').rep + +return { + s({ trig = 'plug' }, { + t 'return {', + i(1), + t '}', + }), +} diff --git a/snippets/markdown.lua b/snippets/markdown.lua new file mode 100644 index 00000000000..5236e0d9044 --- /dev/null +++ b/snippets/markdown.lua @@ -0,0 +1,327 @@ +local ls = require 'luasnip' +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node +local fmta = require('luasnip.extras.fmt').fmta +local rep = require('luasnip.extras').rep + +-- NOTE: HELP FUNCTIONS FOR MATH MODE +-- https://github.com/frankroeder/dotfiles/blob/657a5dc559e9ff526facc2e74f9cc07a1875cac6/nvim/lua/tsutils.lua#L59 +-- local has_treesitter, ts = pcall(require, 'vim.treesitter') +-- local _, query = pcall(require, 'vim.treesitter.query') + +local MATH_ENVIRONMENTS = { + displaymath = true, + equation = true, + eqnarray = true, + align = true, + math = true, + array = true, +} + +local MATH_NODES = { + displayed_equation = true, + inline_formula = true, +} + +local function get_node_at_cursor() + local cursor = vim.api.nvim_win_get_cursor(0) + local cursor_range = { cursor[1] - 1, cursor[2] } + local buf = vim.api.nvim_get_current_buf() + local ok, parser = pcall(ts.get_parser, buf, 'latex') + if not ok or not parser then + return + end + local root_tree = parser:parse()[1] + local root = root_tree and root_tree:root() + + if not root then + return + end + + return root:named_descendant_for_range(cursor_range[1], cursor_range[2], cursor_range[1], cursor_range[2]) +end + +-- NOTE: https://github.com/nvim-treesitter/nvim-treesitter/issues/1184#issuecomment-830388856 +local is_math_mode = function() + if has_treesitter then + local buf = vim.api.nvim_get_current_buf() + local node = get_node_at_cursor() + while node do + if MATH_NODES[node:type()] then + return true + elseif node:type() == 'math_environment' or node:type() == 'generic_environment' then + local begin = node:child(0) + local names = begin and begin:field 'name' + if names and names[1] and MATH_ENVIRONMENTS[query.get_node_text(names[1], buf):match '[A-Za-z]+'] then + return true + end + end + node = node:parent() + end + return false + end +end + +-- [[ +-- Tukaj vstavljaš snippets za markdown +-- ]] +return { + -- Get in math mode + s({ trig = 'mk', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('$<>$', { i(1) })), + s( + { trig = 'dm', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + $$ + <> + $$ + ]], + { i(1) } + ) + ), + -- environment + s( + { trig = 'beg', name = 'Begin environment', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{<>} + <> + \end{<>} + ]], + { i(1), i(0), rep(1) } + ) + ), + + -- Greek letters + s({ trig = '@a', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\alpha', { condition = is_math_mode }), + s({ trig = '@b', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\beta', { condition = is_math_mode }), + s({ trig = '@g', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\gamma', { condition = is_math_mode }), + s({ trig = '@G', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Gamma', { condition = is_math_mode }), + s({ trig = '@d', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\delta', { condition = is_math_mode }), + s({ trig = '@D', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Delta', { condition = is_math_mode }), + s({ trig = '@e', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\epsilon', { condition = is_math_mode }), + s({ trig = ':e', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\varepsilon', { condition = is_math_mode }), + s({ trig = '@z', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\zeta', { condition = is_math_mode }), + s({ trig = '@t', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\theta', { condition = is_math_mode }), + s({ trig = '@T', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Theta', { condition = is_math_mode }), + s({ trig = ':t', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\vartheta', { condition = is_math_mode }), + s({ trig = '@i', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\iota', { condition = is_math_mode }), + s({ trig = '@k', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\kappa', { condition = is_math_mode }), + s({ trig = '@l', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\lambda', { condition = is_math_mode }), + s({ trig = '@L', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Lambda', { condition = is_math_mode }), + s({ trig = '@s', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\sigma', { condition = is_math_mode }), + s({ trig = '@S', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Sigma', { condition = is_math_mode }), + s({ trig = '@u', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\upsilon', { condition = is_math_mode }), + s({ trig = '@U', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Upsilon', { condition = is_math_mode }), + s({ trig = '@o', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\omega', { condition = is_math_mode }), + s({ trig = '@O', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\Omega', { condition = is_math_mode }), + s({ trig = 'ome', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\omega', { condition = is_math_mode }), + s({ trig = 'Ome', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\varOmega', { condition = is_math_mode }), + + -- Text environment + s({ trig = 'text', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, { t '\\text{', i(0, ''), t '}' }), + s({ trig = '"', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, { t '\\text{', i(0, ''), t '}' }), + + -- Basic operations + s({ trig = 'sr', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, t '^{2}'), + s({ trig = 'cb', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, t '^{3}'), + s({ trig = 'rd', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, { t '^{', i(0, ''), t '}' }), + s({ trig = '_', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, { t '_{', i(0, ''), t '}' }), + s({ trig = 'sts', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, { t '_\\text{', i(0, ''), t '}' }), + s('//', { t '\\frac{', i(0, ''), t '}{', i(1, ''), t '}' }), + s('ee', { t 'e^{', i(0, ''), t '}' }), + s({ trig = 'invs', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, t '^{-1}'), + s('([^\\])(exp|log|ln)', t '[[0]]\\[[1]]'), + s('conj', t '^{*}'), + s({ trig = 'RR', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\mathrm{RR}'), + s({ trig = 'bf', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, { t '\\mathbf{', i(0, ''), t '}' }), + s({ trig = 'rm', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, { t '\\mathrm{', i(0, ''), t '}' }), + + -- Linear algebra + s('([^\\])(det)', t '[[0]]\\[[1]]'), + s('trace', t '\\mathrm{Tr}'), + + -- More operations + s({ trig = '([a-zA-Z])hat', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, { t '\\hat{', i(0, ''), t '}' }, { condition = is_math_mode }), + s({ trig = '([a-zA-Z])bar', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, { t '\\bar{', i(0, ''), t '}' }, { condition = is_math_mode }), + s( + { trig = '([a-zA-Z])tilde', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, + { t '\\tilde{', i(0, ''), t '}' }, + { condition = is_math_mode } + ), + s({ trig = '([a-zA-Z])und', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\underline{<>}', { i(1) }), { condition = is_math_mode }), + s({ trig = '([a-zA-Z])vec', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\vec{<>}', { i(1) }), { condition = is_math_mode }), + s({ trig = '([a-zA-Z]),\\.', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, fmta('\\mathbf{<>}', { i(1) }), { condition = is_math_mode }), + s({ trig = '([a-zA-Z])\\.,', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, fmta('\\mathbf{<>}', { i(1) }), { condition = is_math_mode }), + s( + { trig = '\\\\(${GREEK}),\\.', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, + fmta('\\boldsymbol{\\<>}', { i(1) }), + { condition = is_math_mode } + ), + s( + { trig = '\\\\(${GREEK})\\.,', regTrig = true, wordTrig = false, snippetType = 'autosnippet' }, + fmta('\\boldsymbol{\\<>}', { i(1) }), + { condition = is_math_mode } + ), + + -- Subscripts + s({ trig = 'xnn', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t 'x_{n}', { condition = is_math_mode }), + s({ trig = 'xjj', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t 'x_{j}', { condition = is_math_mode }), + s({ trig = 'xp1', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t 'x_{n+1}', { condition = is_math_mode }), + s({ trig = 'ynn', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t 'y_{n}', { condition = is_math_mode }), + s({ trig = 'yii', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t 'y_{i}', { condition = is_math_mode }), + s({ trig = 'yjj', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t 'y_{j}', { condition = is_math_mode }), + + -- Symbols + s({ trig = 'ooo', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\infty', { condition = is_math_mode }), + s({ trig = 'sum', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\sum', { condition = is_math_mode }), + s({ trig = 'prod', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\prod', { condition = is_math_mode }), + s( + { trig = '\\sum', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta('\\sum_{<>}^<> <>', { i(1, 'i=1'), i(2, 'N'), i(0) }), + { condition = is_math_mode } + ), + s( + { trig = '\\prod', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, + fmta('\\prod_{<>}^<> <>', { i(1, 'i=1'), i(2, 'N'), i(0) }), + { condition = is_math_mode } + ), + s( + { trig = 'lim', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, + fmta('\\lim_{<> \\to <>} <>', { i(1, 'n'), i(2, '\\infty'), i(0) }), + { condition = is_math_mode } + ), + s({ trig = 'nabl', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\nabla', { condition = is_math_mode }), + s({ trig = 'del', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\nabla', { condition = is_math_mode }), + s({ trig = 'xx', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\times', { condition = is_math_mode }), + s({ trig = 'para', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\parallel', { condition = is_math_mode }), + + -- Comparisons and equivalence + s({ trig = '===', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\equiv', { condition = is_math_mode }), + s({ trig = '!=', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\neq', { condition = is_math_mode }), + s({ trig = '>=', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\geq', { condition = is_math_mode }), + s({ trig = '<=', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\leq', { condition = is_math_mode }), + s({ trig = '>>', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\gg', { condition = is_math_mode }), + s({ trig = '<<', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\ll', { condition = is_math_mode }), + s({ trig = 'simm', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\sim', { condition = is_math_mode }), + s({ trig = 'sim=', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\simeq', { condition = is_math_mode }), + s({ trig = 'prop', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\propto', { condition = is_math_mode }), + + -- Arrows + s({ trig = '<->', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\leftrightarrow ', { condition = is_math_mode }), + s({ trig = '->', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\to', { condition = is_math_mode }), + s({ trig = '=>', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\implies', { condition = is_math_mode }), + s({ trig = '=<', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, t '\\impliedby', { condition = is_math_mode }), + + -- Sets and relations + s({ trig = 'orr', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\cup', { condition = is_math_mode }), + s({ trig = 'inn', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\in', { condition = is_math_mode }), + s({ trig = 'notin', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\not\\in', { condition = is_math_mode }), + s({ trig = 'sub=', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\subseteq', { condition = is_math_mode }), + s({ trig = 'sup=', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\supseteq', { condition = is_math_mode }), + s({ trig = 'eset', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\emptyset', { condition = is_math_mode }), + s({ trig = 'cap', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\cap', { condition = is_math_mode }), + s({ trig = 'cup', regTrig = true, wordTrig = true, snippetType = 'autosnippet' }, t '\\cup', { condition = is_math_mode }), + + -- System of equations + s( + { trig = 'eqns', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{cases} + <> + \end{cases} + ]], + { i(1) } + ), + { condition = is_math_mode } + ), + + -- Matrix + s( + { trig = 'mat', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{matrix} + <> + \end{matrix} + ]], + { i(1) } + ), + { condition = is_math_mode } + ), + s( + { trig = 'bmat', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{bmatrix} + <> + \end{bmatrix} + ]], + { i(1) } + ), + { condition = is_math_mode } + ), + s( + { trig = 'pmat', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{pmatrix} + <> + \end{pmatrix} + ]], + { i(1) } + ), + { condition = is_math_mode } + ), + s( + { trig = 'vmat', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{vmatrix} + <> + \end{vmatrix} + ]], + { i(1) } + ), + { condition = is_math_mode } + ), + s( + { trig = 'Vmat', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, + fmta( + [[ + \begin{Vmatrix} + <> + \end{Vmatrix} + ]], + { i(1) } + ), + { condition = is_math_mode } + ), + + -- Definitions and Theorems + s({ trig = 'defn', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\begin{definition}\n <>\n\\end{definition}', { i(1) })), + s({ trig = 'thm', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\begin{theorem}\n <>\n\\end{theorem}', { i(1) })), + s({ trig = 'prop', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\begin{proposition}\n <>\n\\end{proposition}', { i(1) })), + s({ trig = 'lem', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\begin{lemma}\n <>\n\\end{lemma}', { i(1) })), + s({ trig = 'cor', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\begin{corollary}\n <>\n\\end{corollary}', { i(1) })), + s({ trig = 'proof', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\begin{proof}\n <>\n\\end{proof}', { i(1) })), + + -- Text formatting + s({ trig = 'textit', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\textit{<>}', { i(1) })), + s({ trig = 'textbf', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\textbf{<>}', { i(1) })), + s({ trig = 'textsf', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\textsf{<>}', { i(1) })), + s({ trig = 'texttt', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\texttt{<>}', { i(1) })), + s({ trig = 'textsc', regTrig = false, wordTrig = true, snippetType = 'autosnippet' }, fmta('\\textsc{<>}', { i(1) })), + + -- Theorem labels + s({ trig = 'th', regTrig = false, wordTrig = true }, fmta('\\textbf{Theorem:} <>', { i(1) })), + s({ trig = 'df', regTrig = false, wordTrig = true }, fmta('\\textbf{Definition:} <>', { i(1) })), + s({ trig = 'pr', regTrig = false, wordTrig = true }, fmta('\\textbf{Proposition:} <>', { i(1) })), + s({ trig = 'lm', regTrig = false, wordTrig = true }, fmta('\\textbf{Lemma:} <>', { i(1) })), + s({ trig = 'cr', regTrig = false, wordTrig = true }, fmta('\\textbf{Corollary:} <>', { i(1) })), + s({ trig = 'prf', regTrig = false, wordTrig = true }, fmta('\\textbf{Proof:} <>', { i(1) })), + s({ trig = 'rem', regTrig = false, wordTrig = true }, fmta('\\textbf{Remark:} <>', { i(1) })), + s({ trig = 'ex', regTrig = false, wordTrig = true }, fmta('\\textbf{Example:} <>', { i(1) })), +} diff --git a/snippets/math-util.lua b/snippets/math-util.lua new file mode 100644 index 00000000000..935b9495eb1 --- /dev/null +++ b/snippets/math-util.lua @@ -0,0 +1,5 @@ +-- standardna praksa baje +local M = {} + +-- return modul with is_math_mode function +return M diff --git a/startup/nvimStartTime.txt b/startup/nvimStartTime.txt new file mode 100644 index 00000000000..97bbfa6c51a --- /dev/null +++ b/startup/nvimStartTime.txt @@ -0,0 +1,15 @@ +9.337 "004.606" "--- NVIM STARTED ---" +4.721 "001.311" "000.107: require('vim._init_packages')" +4.717 "000.884" "000.400: require('vim._editor')" +4.732 "000.834" "init lua interpreter" +1.669 "000.821" "inits 1" +2.586 "000.730" "parsing arguments" +0.524 "000.330" "early init" +3.825 "000.321" "000.321: require('vim.shared')" +4.712 "000.301" "000.301: require('vim._options')" +0.736 "000.211" "locale set" +1.856 "000.187" "window checked" +4.397 "000.183" "000.183: require('vim.inspect')" +0.194 "000.181" "event init" +0.848 "000.112" "init first window" +0.013 "000.013" "--- NVIM STARTING ---" diff --git a/startup/pluginsStartTime.txt b/startup/pluginsStartTime.txt new file mode 100644 index 00000000000..a0a1a7e63f1 --- /dev/null +++ b/startup/pluginsStartTime.txt @@ -0,0 +1,559 @@ +0.011 "" "000.011: --- NVIM STARTING ---" +0.107 "" "000.097: event init" +0.298 "" "000.190: early init" +0.422 "" "000.124: locale set" +0.499 "" "000.077: init first window" +1.019 "" "000.519: inits 1" +1.131 "" "000.112: window checked" +1.427 "" "000.297: parsing arguments" +2.443 "" "000.314 000.314: require('vim.shared')" +2.999 "" "000.181 000.181: require('vim.inspect')" +3.346 "" "000.333 000.333: require('vim._options')" +3.352 "" "000.901 000.387: require('vim._editor')" +3.356 "" "001.317 000.103: require('vim._init_packages')" +3.368 "" "000.623: init lua interpreter" +3.697 "" "000.329: expanding arguments" +3.719 "" "000.022: inits 2" +3.943 "" "000.224: init highlight" +3.949 "" "000.006: waiting for UI" +4.064 "" "000.115: done waiting for UI" +4.069 "" "000.005: clear screen" +4.378 "" "000.040 000.040: require('vim.keymap')" +6.211 "" "001.184 001.184: require('vim.termcap')" +6.429 "" "000.170 000.170: require('vim.text')" +9.057 "" "004.984 003.589: require('vim._defaults')" +9.065 "" "000.013: init default mappings & autocommands" +9.45 "" "000.135 000.135: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin.vim" +9.762 "" "000.079 000.079: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\indent.vim" +10.524 "" "000.372 000.372: require('options')" +12.337 "" "000.026 000.026: require('vim.F')" +12.407 "" "001.528 001.502: require('vim.diagnostic')" +12.671 "" "002.134 000.606: require('keymaps')" +13.083 "" "000.406 000.406: require('lazy-bootstrap')" +14.582 "" "000.346 000.346: require('lazy')" +14.799 "" "000.203 000.203: require('kickstart/plugins/gitsigns')" +14.973 "" "000.165 000.165: require('kickstart/plugins/which-key')" +15.156 "" "000.176 000.176: require('kickstart/plugins/telescope')" +15.372 "" "000.210 000.210: require('kickstart/plugins/lspconfig')" +15.545 "" "000.165 000.165: require('kickstart/plugins/conform')" +15.756 "" "000.199 000.199: require('kickstart/plugins/cmp')" +15.91 "" "000.145 000.145: require('kickstart/plugins/tokyonight')" +16.046 "" "000.128 000.128: require('kickstart/plugins/todo-comments')" +16.198 "" "000.146 000.146: require('kickstart/plugins/mini')" +16.356 "" "000.152 000.152: require('kickstart/plugins/treesitter')" +16.552 "" "000.184 000.184: require('kickstart.plugins.debug')" +16.712 "" "000.152 000.152: require('kickstart.plugins.lint')" +16.865 "" "000.146 000.146: require('kickstart.plugins.autopairs')" +17.045 "" "000.172 000.172: require('kickstart.plugins.neo-tree')" +17.105 "" "000.022 000.022: require('ffi')" +17.6 "" "000.236 000.236: require('vim.fs')" +18.021 "" "000.341 000.341: require('vim.uri')" +18.057 "" "000.945 000.368: require('vim.loader')" +18.547 "" "000.388 000.388: require('lazy.stats')" +19.103 "" "000.261 000.261: require('lazy.core.util')" +19.347 "" "000.232 000.232: require('lazy.core.config')" +19.837 "" "000.239 000.239: require('lazy.core.handler')" +20.506 "" "000.211 000.211: require('lazy.pkg')" +20.519 "" "000.438 000.227: require('lazy.core.meta')" +20.529 "" "000.683 000.245: require('lazy.core.plugin')" +20.541 "" "001.187 000.266: require('lazy.core.loader')" +21.277 "" "000.259 000.259: require('lazy.core.fragments')" +32.042 "" "000.209 000.209: require('lazy.core.handler.cmd')" +32.223 "" "000.165 000.165: require('lazy.core.handler.keys')" +32.524 "" "000.151 000.151: require('lazy.core.handler.event')" +32.532 "" "000.300 000.149: require('lazy.core.handler.ft')" +33.291 "" "000.095 000.095: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/Nvim-R/ftdetect/r.vim" +35.478 "" "000.388 000.388: require('dap.utils')" +35.626 "" "002.300 001.912: require('dap')" +37.088 "" "000.264 000.264: require('nio.tasks')" +37.382 "" "000.254 000.254: require('nio.control')" +38.289 "" "000.872 000.872: require('nio.uv')" +38.895 "" "000.567 000.567: require('nio.tests')" +39.343 "" "000.154 000.154: require('vim.ui')" +39.385 "" "000.448 000.295: require('nio.ui')" +39.801 "" "000.182 000.182: require('nio.streams')" +39.837 "" "000.420 000.238: require('nio.file')" +40.539 "" "000.177 000.177: require('nio.util')" +40.815 "" "000.764 000.587: require('nio.logger')" +40.855 "" "000.990 000.226: require('nio.lsp')" +41.088 "" "000.203 000.203: require('nio.process')" +41.152 "" "004.867 000.849: require('nio')" +42.246 "" "000.236 000.236: require('dapui.config.highlights')" +42.453 "" "000.834 000.599: require('dapui.config')" +42.467 "" "001.042 000.208: require('dapui.util')" +42.744 "" "000.270 000.270: require('dapui.windows.layout')" +42.755 "" "001.565 000.253: require('dapui.windows')" +43.053 "" "000.294 000.294: require('dapui.controls')" +43.064 "" "007.404 000.678: require('dapui')" +44.288 "" "000.422 000.422: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/filetype.lua" +50.909 "" "000.252 000.252: require('kanagawa-paper.config')" +50.924 "" "000.674 000.423: require('kanagawa-paper')" +51.117 "" "000.176 000.176: require('kanagawa-paper.colors')" +51.321 "" "000.157 000.157: require('kanagawa-paper.themes')" +51.556 "" "000.182 000.182: require('kanagawa-paper.highlights')" +51.739 "" "000.176 000.176: require('kanagawa-paper.highlights.editor')" +51.995 "" "000.206 000.206: require('kanagawa-paper.highlights.syntax')" +52.223 "" "000.171 000.171: require('kanagawa-paper.highlights.treesitter')" +52.446 "" "000.176 000.176: require('kanagawa-paper.highlights.lsp')" +52.831 "" "000.374 000.374: require('kanagawa-paper.highlights.plugins')" +53.265 "" "000.247 000.247: require('kanagawa-paper.lib.hsluv')" +53.279 "" "000.440 000.193: require('kanagawa-paper.lib.color')" +54.335 "" "000.226 000.226: require('kanagawa-paper.highlights.ft')" +55.036 "" "004.851 001.893: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\kanagawa-paper.nvim\colors\kanagawa-paper.vim" +57.365 "" "000.199 000.199: require('tokyonight.config')" +57.384 "" "001.706 001.507: require('tokyonight')" +60.465 "" "000.137 000.137: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/lush.nvim/plugin/lush.vim" +64.067 "" "000.085 000.085: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/plenary.nvim/plugin/plenary.vim" +65.873 "" "001.696 001.696: require('alpha')" +68.145 "" "000.100 000.100: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-web-devicons/plugin/nvim-web-devicons.vim" +70.68 "" "001.832 001.832: require('nvim-web-devicons.icons-default')" +70.849 "" "004.329 002.397: require('nvim-web-devicons')" +71.805 "" "000.951 000.951: require('mini.icons')" +71.82 "" "005.656 000.376: require('alpha.utils')" +72.308 "" "000.185 000.185: require('plenary.bit')" +72.468 "" "000.151 000.151: require('plenary.functional')" +72.486 "" "000.661 000.325: require('plenary.path')" +72.654 "" "000.164 000.164: require('alpha.themes.dashboard')" +72.668 "" "006.779 000.297: require('alpha.themes.theta')" +79.115 "" "000.279 000.279: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-dap/plugin/dap.lua" +81.483 "" "000.265 000.265: require('mason-core.functional')" +81.67 "" "000.174 000.174: require('mason-core.path')" +81.854 "" "000.178 000.178: require('mason.settings')" +81.884 "" "000.997 000.380: require('mason-core.log')" +81.891 "" "002.704 001.707: require('mason-nvim-dap')" +82.076 "" "000.179 000.179: require('mason-nvim-dap.settings')" +82.678 "" "000.181 000.181: require('mason-core.EventEmitter')" +82.843 "" "000.157 000.157: require('mason-core.optional')" +83.242 "" "000.228 000.228: require('mason-core.async')" +83.397 "" "000.147 000.147: require('mason-core.async.uv')" +83.406 "" "000.557 000.182: require('mason-core.fs')" +83.607 "" "000.197 000.197: require('mason-registry.sources')" +83.944 "" "000.157 000.157: require('mason-core.functional.data')" +84.11 "" "000.160 000.160: require('mason-core.functional.function')" +84.146 "" "000.529 000.212: require('mason-core.functional.list')" +84.178 "" "001.839 000.218: require('mason-registry')" +84.52 "" "000.168 000.168: require('mason-core.functional.table')" +84.529 "" "000.347 000.179: require('mason-nvim-dap.mappings.source')" +84.535 "" "002.359 000.173: require('mason-nvim-dap.ensure_installed')" +87.963 "" "000.182 000.182: require('mason-core.functional.string')" +88.257 "" "000.172 000.172: require('mason-nvim-dap.automatic_installation')" +88.465 "" "000.191 000.191: require('mason-core.notify')" +88.919 "" "000.199 000.199: require('mason-nvim-dap.mappings.adapters')" +89.105 "" "000.176 000.176: require('mason-nvim-dap.mappings.filetypes')" +103.152 "" "013.954 013.954: require('mason-nvim-dap.mappings.configurations')" +108.694 "" "005.517 005.517: require('mason-nvim-dap.mappings.adapters.python')" +109.021 "" "000.310 000.310: require('mason-nvim-dap.automatic_setup')" +109.278 "" "000.233 000.233: require('dap.ext.vscode')" +109.767 "" "000.180 000.180: require('mason-core.functional.number')" +110.061 "" "000.280 000.280: require('mason-core.functional.logic')" +110.093 "" "000.722 000.261: require('mason-nvim-dap.api.command')" +112.32 "" "001.204 001.204: require('dapui.client.types')" +112.356 "" "001.810 000.606: require('dapui.client')" +112.948 "" "000.582 000.582: require('dap.breakpoints')" +113.395 "" "000.369 000.369: require('dapui.client.lib')" +114.218 "" "000.394 000.394: require('dapui.render.canvas')" +114.235 "" "000.777 000.383: require('dapui.elements.breakpoints')" +114.456 "" "000.196 000.196: require('dapui.components.breakpoints')" +114.627 "" "000.144 000.144: require('dapui.elements.repl')" +114.77 "" "000.134 000.134: require('dapui.elements.scopes')" +114.931 "" "000.141 000.141: require('dapui.components.scopes')" +115.104 "" "000.167 000.167: require('dapui.components.variables')" +115.268 "" "000.140 000.140: require('dapui.elements.stacks')" +115.559 "" "000.138 000.138: require('dapui.components.frames')" +115.568 "" "000.281 000.143: require('dapui.components.threads')" +115.746 "" "000.157 000.157: require('dapui.elements.watches')" +115.978 "" "000.208 000.208: require('dapui.components.watches')" +116.17 "" "000.146 000.146: require('dapui.elements.hover')" +116.338 "" "000.147 000.147: require('dapui.components.hover')" +116.489 "" "000.141 000.141: require('dapui.elements.console')" +116.956 "" "000.179 000.179: require('dap-go-ts')" +116.981 "" "000.426 000.248: require('dap-go')" +120.328 "" "000.089 000.089: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/twilight.nvim/plugin/twilight.vim" +122.477 "" "000.146 000.146: require('twilight.util')" +122.533 "" "000.361 000.216: require('twilight.config')" +122.71 "" "000.170 000.170: require('twilight.view')" +122.721 "" "002.217 001.685: require('twilight')" +123.142 "" "000.064 000.064: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/zen-mode.nvim/plugin/zen-mode.vim" +125.442 "" "000.187 000.187: require('zen-mode.util')" +125.456 "" "000.347 000.161: require('zen-mode.config')" +125.786 "" "000.158 000.158: require('zen-mode.plugins')" +125.799 "" "000.340 000.181: require('zen-mode.view')" +125.808 "" "002.472 001.785: require('zen-mode')" +128.366 "" "002.268 002.268: require('mini.surround')" +129.093 "" "000.309 000.309: require('mini.pairs')" +132.352 "" "000.170 000.170: require('ibl.utils')" +132.368 "" "000.339 000.168: require('ibl.config')" +132.684 "" "000.143 000.143: require('ibl.indent')" +132.697 "" "000.324 000.181: require('ibl.hooks')" +132.701 "" "000.849 000.186: require('ibl.highlights')" +132.857 "" "000.152 000.152: require('ibl.autocmds')" +133.041 "" "000.173 000.173: require('ibl.inlay_hints')" +133.196 "" "000.148 000.148: require('ibl.virt_text')" +133.727 "" "000.320 000.320: require('ibl.scope_languages')" +133.741 "" "000.539 000.219: require('ibl.scope')" +133.751 "" "003.855 001.993: require('ibl')" +134.006 "" "000.226 000.226: require('vim.iter')" +134.581 "" "000.271 000.271: require('vim.lsp.log')" +135.039 "" "000.447 000.447: require('vim.lsp.protocol')" +135.717 "" "000.296 000.296: require('vim.lsp._snippet_grammar')" +135.937 "" "000.204 000.204: require('vim.highlight')" +135.962 "" "000.912 000.413: require('vim.lsp.util')" +136.368 "" "000.182 000.182: require('vim.lsp.sync')" +136.382 "" "000.414 000.232: require('vim.lsp._changetracking')" +136.748 "" "000.360 000.360: require('vim.lsp.rpc')" +136.864 "" "002.822 000.417: require('vim.lsp')" +137.237 "" "000.367 000.367: require('vim.lsp.handlers')" +143 "" "000.318 000.318: require('nvim-treesitter.utils')" +145.399 "" "000.322 000.322: require('vim.treesitter.language')" +145.59 "" "000.173 000.173: require('vim.func')" +145.812 "" "000.210 000.210: require('vim.func._memoize')" +145.881 "" "001.169 000.464: require('vim.treesitter.query')" +146.144 "" "000.257 000.257: require('vim.treesitter._range')" +146.243 "" "001.939 000.512: require('vim.treesitter.languagetree')" +146.259 "" "002.633 000.694: require('vim.treesitter')" +147.768 "" "004.753 002.120: require('nvim-treesitter.parsers')" +150.244 "" "000.652 000.652: require('nvim-treesitter.compat')" +151.152 "" "000.585 000.585: require('nvim-treesitter.ts_utils')" +151.171 "" "000.910 000.325: require('nvim-treesitter.tsrange')" +151.367 "" "000.190 000.190: require('nvim-treesitter.caching')" +151.384 "" "002.655 000.903: require('nvim-treesitter.query')" +151.404 "" "003.163 000.508: require('nvim-treesitter.configs')" +151.411 "" "003.633 000.469: require('nvim-treesitter.info')" +151.616 "" "000.201 000.201: require('nvim-treesitter.shell_command_selectors')" +151.648 "" "009.267 000.361: require('nvim-treesitter.install')" +151.808 "" "000.155 000.155: require('nvim-treesitter.statusline')" +152.048 "" "000.234 000.234: require('nvim-treesitter.query_predicates')" +152.055 "" "012.024 002.369: require('nvim-treesitter')" +152.386 "" "012.546 000.521: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-treesitter/plugin/nvim-treesitter.lua" +164.635 "" "000.305 000.305: require('nvim-treesitter.indent')" +164.968 "" "000.252 000.252: require('nvim-treesitter.highlight')" +170.763 "" "000.156 000.156: require('luasnip.util.types')" +170.962 "" "000.180 000.180: require('luasnip.util.lazy_table')" +171.172 "" "000.197 000.197: require('luasnip.extras.filetype_functions')" +171.197 "" "000.804 000.272: require('luasnip.default_config')" +171.203 "" "001.093 000.289: require('luasnip.session')" +171.216 "" "001.407 000.314: require('luasnip.util.util')" +171.776 "" "000.339 000.339: require('luasnip.util.path')" +172.279 "" "000.192 000.192: require('luasnip.session.snippet_collection.source')" +172.455 "" "000.159 000.159: require('luasnip.util.table')" +172.648 "" "000.181 000.181: require('luasnip.util.auto_table')" +172.67 "" "000.881 000.351: require('luasnip.session.snippet_collection')" +173.043 "" "000.368 000.368: require('luasnip.util.log')" +173.058 "" "001.838 000.249: require('luasnip.loaders.util')" +173.372 "" "000.308 000.308: require('luasnip.loaders.fs_watchers')" +173.579 "" "000.197 000.197: require('luasnip.loaders.data')" +173.772 "" "000.183 000.183: require('luasnip.session.enqueueable_operations')" +174.843 "" "000.158 000.158: require('luasnip.util.ext_opts')" +175.011 "" "000.152 000.152: require('luasnip.nodes.key_indexer')" +175.024 "" "000.520 000.211: require('luasnip.nodes.util')" +175.196 "" "000.167 000.167: require('luasnip.util.events')" +175.214 "" "000.948 000.260: require('luasnip.nodes.node')" +175.7 "" "000.165 000.165: require('luasnip.util.extend_decorator')" +175.715 "" "000.496 000.331: require('luasnip.nodes.insertNode')" +175.947 "" "000.228 000.228: require('luasnip.nodes.textNode')" +176.191 "" "000.232 000.232: require('luasnip.util.mark')" +176.812 "" "000.188 000.188: require('luasnip.util.select')" +177.035 "" "000.211 000.211: require('luasnip.util.time')" +177.469 "" "001.052 000.653: require('luasnip.util._builtin_vars')" +177.674 "" "001.472 000.420: require('luasnip.util.environ')" +178.034 "" "000.350 000.350: require('luasnip.util.pattern_tokenizer')" +178.295 "" "000.248 000.248: require('luasnip.util.dict')" +190.304 "" "011.800 011.800: require('luasnip.util.jsregexp')" +190.33 "" "012.023 000.223: require('luasnip.nodes.util.trig_engines')" +190.419 "" "016.401 000.404: require('luasnip.nodes.snippet')" +191.402 "" "000.415 000.415: require('luasnip.util.parser.neovim_ast')" +191.868 "" "000.443 000.443: require('luasnip.util.str')" +193.364 "" "001.473 001.473: require('luasnip.util.jsregexp')" +193.565 "" "000.189 000.189: require('luasnip.util.directed_graph')" +193.575 "" "002.805 000.285: require('luasnip.util.parser.ast_utils')" +193.802 "" "000.222 000.222: require('luasnip.nodes.functionNode')" +194.024 "" "000.213 000.213: require('luasnip.nodes.choiceNode')" +194.281 "" "000.250 000.250: require('luasnip.nodes.dynamicNode')" +194.55 "" "000.257 000.257: require('luasnip.util.functions')" +194.565 "" "004.141 000.393: require('luasnip.util.parser.ast_parser')" +194.794 "" "000.224 000.224: require('luasnip.util.parser.neovim_parser')" +194.806 "" "021.024 000.259: require('luasnip.util.parser')" +194.985 "" "000.174 000.174: require('luasnip.nodes.snippetProxy')" +195.239 "" "000.242 000.242: require('luasnip.util.jsonc')" +195.78 "" "000.178 000.178: require('luasnip.nodes.duplicate')" +195.794 "" "000.459 000.281: require('luasnip.loaders.snippet_cache')" +195.806 "" "028.625 002.794: require('luasnip.loaders.from_vscode')" +210.229 "" "000.227 000.227: require('luasnip.nodes.multiSnippet')" +211.582 "" "000.361 000.361: require('luasnip.loaders.from_lua')" +212.879 "" "000.206 000.206: require('luasnip.loaders')" +213.108 "" "000.186 000.186: require('luasnip.config')" +213.118 "" "000.709 000.317: require('luasnip')" +213.504 "" "000.186 000.186: require('luasnip.extras')" +213.515 "" "000.391 000.205: require('luasnip.extras.fmt')" +234.722 "" "002.327 002.327: require('vim.filetype')" +235.079 "" "002.883 000.555: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/LuaSnip/plugin/luasnip.lua" +235.53 "" "000.099 000.099: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/LuaSnip/plugin/luasnip.vim" +239.183 "" "002.352 002.352: require('render-markdown')" +239.826 "" "000.173 000.173: require('render-markdown.core.range')" +239.84 "" "000.415 000.242: require('render-markdown.config')" +240.212 "" "000.182 000.182: require('render-markdown.core.util')" +240.223 "" "000.378 000.196: require('render-markdown.core.log')" +240.41 "" "000.182 000.182: require('render-markdown.presets')" +240.584 "" "000.168 000.168: require('render-markdown.core.treesitter')" +240.595 "" "001.398 000.255: require('render-markdown.state')" +241.276 "" "000.192 000.192: require('render-markdown.core.buffer_state')" +241.689 "" "000.216 000.216: require('render-markdown.core.node_info')" +241.876 "" "000.174 000.174: require('render-markdown.core.str')" +241.89 "" "000.604 000.214: require('render-markdown.core.context')" +242.054 "" "000.161 000.161: require('render-markdown.core.extmark')" +242.254 "" "000.193 000.193: require('render-markdown.core.iter')" +242.634 "" "000.191 000.191: require('render-markdown.core.list')" +242.644 "" "000.383 000.192: require('render-markdown.handler.markdown')" +242.875 "" "000.226 000.226: require('render-markdown.handler.markdown_inline')" +243.062 "" "000.180 000.180: require('render-markdown.handler.latex')" +243.076 "" "002.223 000.284: require('render-markdown.core.ui')" +243.33 "" "000.247 000.247: require('render-markdown.colors')" +243.999 "" "000.221 000.221: require('render-markdown.manager')" +244.016 "" "000.422 000.201: require('render-markdown.api')" +244.022 "" "000.612 000.190: require('render-markdown.command')" +244.054 "" "007.432 000.601: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/render-markdown.nvim/plugin/render-markdown.lua" +252.613 "" "001.613 001.613: require('mini.files')" +256.144 "" "000.556 000.556: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/vim-sleuth/plugin/sleuth.vim" +261.814 "" "000.297 000.297: require('gitsigns.async')" +262.047 "" "000.217 000.217: require('gitsigns.debug.log')" +262.681 "" "000.621 000.621: require('gitsigns.config')" +262.715 "" "004.037 002.902: require('gitsigns')" +265.895 "" "000.782 000.782: require('gitsigns.highlight')" +267.229 "" "000.479 000.479: require('gitsigns.debounce')" +283.747 "" "000.968 000.968: require('lualine_require')" +286.589 "" "007.953 006.985: require('lualine')" +307.234 "" "007.671 007.671: require('lualine.utils.mode')" +339.025 "" "003.196 003.196: require('onedark')" +349.277 "" "000.271 000.271: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-lspconfig/plugin/lspconfig.lua" +350.162 "" "000.237 000.237: require('mason-core.functional.relation')" +350.205 "" "000.525 000.288: require('mason-core.platform')" +350.212 "" "000.767 000.242: require('mason')" +350.565 "" "000.305 000.305: require('mason.api.command')" +354.172 "" "000.185 000.185: require('mason-lspconfig.settings')" +354.189 "" "003.594 003.410: require('mason-lspconfig')" +354.478 "" "000.284 000.284: require('mason-lspconfig.mappings.server')" +354.646 "" "000.157 000.157: require('mason-lspconfig.notify')" +359.074 "" "003.633 003.633: require('cmp_nvim_lsp.source')" +359.095 "" "004.332 000.699: require('cmp_nvim_lsp')" +359.85 "" "000.306 000.306: require('lspconfig.util')" +360.034 "" "000.170 000.170: require('lspconfig.async')" +360.041 "" "000.712 000.237: require('lspconfig.configs')" +360.053 "" "000.947 000.235: require('lspconfig')" +360.233 "" "000.175 000.175: require('lspconfig.configs.pyright')" +361.12 "" "000.298 000.298: require('lspconfig.manager')" +361.468 "" "000.250 000.250: require('lspconfig.configs.r_language_server')" +365.227 "" "000.321 000.321: require('lspconfig.configs.clangd')" +366.294 "" "000.246 000.246: require('lspconfig.configs.ts_ls')" +367.055 "" "000.271 000.271: require('lspconfig.configs.texlab')" +367.848 "" "000.248 000.248: require('lspconfig.configs.lua_ls')" +368.452 "" "000.213 000.213: require('lspconfig.configs.markdown_oxide')" +369.133 "" "000.213 000.213: require('lspconfig.configs.matlab_ls')" +379.691 "" "003.635 003.635: require('bamboo')" +391.273 "" "000.189 000.189: require('bamboo')" +392.516 "" "000.175 000.175: require('bamboo.palette')" +392.557 "" "000.393 000.218: require('bamboo.colors')" +392.765 "" "000.200 000.200: require('bamboo.util')" +392.972 "" "001.304 000.711: require('bamboo.highlights')" +394.224 "" "000.401 000.401: require('bamboo.terminal')" +394.254 "" "004.111 002.217: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\bamboo.nvim\colors\bamboo-multiplex.lua" +406.284 "" "000.271 000.271: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/editorconfig.lua" +406.786 "" "000.259 000.259: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/gzip.vim" +407.278 "" "000.224 000.224: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/man.lua" +412.876 "" "000.314 000.314: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\pack\dist\opt\matchit\plugin\matchit.vim" +412.967 "" "005.431 005.117: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/matchit.vim" +413.633 "" "000.336 000.336: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/matchparen.vim" +414.389 "" "000.484 000.484: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/netrwPlugin.vim" +414.897 "" "000.236 000.236: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/osc52.lua" +415.838 "" "000.664 000.664: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/rplugin.vim" +416.303 "" "000.141 000.141: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/shada.vim" +416.651 "" "000.073 000.073: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/spellfile.vim" +417.16 "" "000.219 000.219: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/tarPlugin.vim" +417.727 "" "000.281 000.281: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/tohtml.lua" +418.143 "" "000.088 000.088: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/tutor.vim" +418.586 "" "000.219 000.219: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/zipPlugin.vim" +437.536 "" "004.088 004.088: require('cmp.utils.api')" +437.881 "" "000.144 000.144: require('cmp.types.cmp')" +438.26 "" "000.163 000.163: require('cmp.utils.misc')" +438.274 "" "000.386 000.223: require('cmp.types.lsp')" +438.415 "" "000.136 000.136: require('cmp.types.vim')" +438.422 "" "000.872 000.206: require('cmp.types')" +438.566 "" "000.140 000.140: require('cmp.utils.highlight')" +438.863 "" "000.147 000.147: require('cmp.utils.debug')" +438.884 "" "000.312 000.165: require('cmp.utils.autocmd')" +439.196 "" "005.971 000.560: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-cmp/plugin/cmp.lua" +440.027 "" "000.174 000.174: require('cmp.utils.char')" +440.041 "" "000.337 000.162: require('cmp.utils.str')" +440.539 "" "000.169 000.169: require('cmp.utils.buffer')" +440.553 "" "000.354 000.185: require('cmp.utils.keymap')" +440.558 "" "000.512 000.159: require('cmp.utils.feedkeys')" +441.027 "" "000.152 000.152: require('cmp.config.mapping')" +441.186 "" "000.150 000.150: require('cmp.utils.cache')" +441.507 "" "000.159 000.159: require('cmp.config.compare')" +441.514 "" "000.321 000.161: require('cmp.config.default')" +441.539 "" "000.815 000.191: require('cmp.config')" +441.563 "" "001.002 000.187: require('cmp.utils.async')" +441.871 "" "000.138 000.138: require('cmp.utils.pattern')" +441.879 "" "000.312 000.175: require('cmp.context')" +442.482 "" "000.196 000.196: require('cmp.utils.snippet')" +442.653 "" "000.163 000.163: require('cmp.matcher')" +442.663 "" "000.564 000.205: require('cmp.entry')" +442.672 "" "000.788 000.224: require('cmp.source')" +443.009 "" "000.172 000.172: require('cmp.utils.event')" +443.515 "" "000.140 000.140: require('cmp.utils.options')" +443.526 "" "000.304 000.164: require('cmp.utils.window')" +443.531 "" "000.485 000.180: require('cmp.view.docs_view')" +443.736 "" "000.201 000.201: require('cmp.view.custom_entries_view')" +443.98 "" "000.236 000.236: require('cmp.view.wildmenu_entries_view')" +444.203 "" "000.215 000.215: require('cmp.view.native_entries_view')" +444.433 "" "000.221 000.221: require('cmp.view.ghost_text_view')" +444.45 "" "001.773 000.244: require('cmp.view')" +444.844 "" "005.345 000.620: require('cmp.core')" +445.261 "" "000.287 000.287: require('cmp.config.sources')" +445.437 "" "000.167 000.167: require('cmp.config.window')" +445.541 "" "006.258 000.460: require('cmp')" +445.813 "" "000.267 000.267: require('lspkind')" +447.523 "" "028.142 015.646: require('cmp')" +447.819 "" "000.288 000.288: require('cmp_luasnip')" +447.874 "" "028.717 000.287: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp_luasnip\after/plugin/cmp_luasnip.lua" +448.338 "" "000.153 000.153: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-nvim-lsp\after/plugin/cmp_nvim_lsp.lua" +448.885 "" "000.154 000.154: require('cmp_nvim_lua')" +448.915 "" "000.328 000.173: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-nvim-lua\after/plugin/cmp_nvim_lua.lua" +449.913 "" "000.140 000.140: require('cmp_buffer.timer')" +449.924 "" "000.298 000.159: require('cmp_buffer.buffer')" +449.929 "" "000.475 000.177: require('cmp_buffer.source')" +449.933 "" "000.614 000.139: require('cmp_buffer')" +449.951 "" "000.756 000.141: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-buffer\after/plugin/cmp_buffer.lua" +450.523 "" "000.170 000.170: require('cmp_path')" +450.542 "" "000.317 000.147: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-path\after/plugin/cmp_path.lua" +451.212 "" "000.208 000.208: require('cmp_cmdline')" +451.266 "" "000.421 000.213: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-cmdline\after/plugin/cmp_cmdline.lua" +451.716 "" "000.160 000.160: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\indent-blankline.nvim\after/plugin/commands.lua" +451.789 "" "438.698 218.204: require('lazy-plugins')" +451.794 "" "441.723 000.113: sourcing C:\Users\joene\AppData\Local\nvim\init.lua" +451.844 "" "000.842: sourcing vimrc file(s)" +453.628 "" "000.163 000.163: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\filetype.lua" +455.597 "" "000.114 000.114: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\synload.vim" +455.845 "" "001.462 001.348: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/syntax/syntax.vim" +455.873 "" "002.405: inits 3" +459.094 "" "003.220: reading ShaDa" +464.42 "" "003.866 003.866: require('lint')" +467.508 "" "000.436 000.436: require('vim.filetype.detect')" +476.07 "" "000.406 000.406: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\autoload\htmlcomplete.vim" +476.252 "" "001.737 001.331: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\html.vim" +477.32 "" "005.853 004.116: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\markdown.vim" +484.657 "" "003.739 003.739: require('markdown')" +484.85 "" "004.103 000.365: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/markdown.nvim/plugin/markdown.lua" +487.359 "" "000.221 000.221: require('markdown.config')" +487.687 "" "000.176 000.176: require('markdown.cmd')" +488.015 "" "000.145 000.145: require('markdown.treesitter')" +488.165 "" "000.144 000.144: require('markdown.util')" +494.163 "" "006.463 006.174: require('markdown.list')" +494.986 "" "000.181 000.181: require('markdown.notify')" +496.227 "" "001.822 001.641: require('markdown.link')" +497.117 "" "000.221 000.221: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/markdown-preview.nvim/plugin/mkdp.vim" +508.092 "" "000.240 000.240: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\html.vim" +509.118 "" "004.553 004.314: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\markdown.vim" +519.682 "" "000.264 000.264: require('vim.treesitter.highlighter')" +520.059 "" "000.223 000.223: require('luasnip.loaders.from_snipmate')" +528.49 "" "000.499 000.499: require('vim.lsp.client')" +529.177 "" "000.204 000.204: require('vim.glob')" +529.198 "" "000.466 000.261: require('vim.lsp._dynamic')" +529.501 "" "000.225 000.225: require('vim._system')" +537.948 "" "000.395 000.395: require('vim.version')" +552.185 "" "000.362 000.362: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax/dtd.vim" +552.315 "" "001.494 001.131: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\xml.vim" +554.956 "" "000.518 000.518: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\javascript.vim" +557.508 "" "000.881 000.881: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\vb.vim" +567.876 "" "008.793 008.793: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\css.vim" +569.96 "" "020.374 008.688: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\html.vim" +572.952 "" "001.064 001.064: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\yaml.vim" +573.329 "" "025.117 003.679: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\markdown.vim" +589.709 "" "000.292 000.292: require('gitsigns.status')" +590.281 "" "000.326 000.326: require('gitsigns.util')" +590.984 "" "000.176 000.176: require('gitsigns.system')" +590.995 "" "000.436 000.260: require('gitsigns.git.cmd')" +591.394 "" "000.212 000.212: require('gitsigns.message')" +591.406 "" "000.406 000.193: require('gitsigns.git.version')" +597.585 "" "007.293 006.451: require('gitsigns.git.repo')" +597.619 "" "007.896 000.277: require('gitsigns.git')" +598.1 "" "000.475 000.475: require('gitsigns.cache')" +598.789 "" "000.258 000.258: require('gitsigns.diff')" +599.126 "" "000.321 000.321: require('gitsigns.hunks')" +599.423 "" "000.282 000.282: require('gitsigns.signs')" +599.453 "" "001.337 000.475: require('gitsigns.manager')" +599.475 "" "010.462 000.463: require('gitsigns.attach')" +599.84 "" "000.308 000.308: require('gitsigns.current_line_blame')" +604.983 "" "000.594 000.594: require('editorconfig')" +605.736 "" "080.376: opening buffers" +612.054 "" "000.425 000.425: require('lint.parser')" +612.077 "" "000.854 000.429: require('lint.linters.markdownlint')" +623.537 "" "016.947: BufEnter autocommands" +623.556 "" "000.019: editing files in windows" +625.346 "" "000.153 000.153: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/todo-comments.nvim/plugin/todo.vim" +634.471 "" "000.328 000.328: require('todo-comments.util')" +634.517 "" "000.786 000.458: require('todo-comments.config')" +635.554 "" "000.604 000.604: require('todo-comments.highlight')" +635.581 "" "001.056 000.452: require('todo-comments.jump')" +635.591 "" "009.924 008.082: require('todo-comments')" +643.9 "" "000.899 000.899: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/telescope.nvim/plugin/telescope.lua" +651.802 "" "000.491 000.491: require('telescope._extensions')" +651.83 "" "007.683 007.191: require('telescope')" +652.292 "" "000.455 000.455: require('telescope.themes')" +653.326 "" "000.491 000.491: require('plenary.strings')" +653.701 "" "000.356 000.356: require('telescope.deprecated')" +656.698 "" "001.014 001.014: require('plenary.log')" +656.804 "" "002.066 001.052: require('telescope.log')" +659.681 "" "000.771 000.771: require('plenary.compat')" +659.733 "" "002.030 001.259: require('plenary.job')" +660.176 "" "000.436 000.436: require('telescope.state')" +660.301 "" "003.488 001.021: require('telescope.utils')" +660.338 "" "006.620 001.066: require('telescope.sorters')" +665.213 "" "012.824 005.357: require('telescope.config')" +671.335 "" "000.685 000.685: require('telescope._extensions.ui-select')" +674.386 "" "000.193 000.193: require('plenary.tbl')" +674.408 "" "000.436 000.243: require('plenary.vararg.rotate')" +674.415 "" "000.671 000.235: require('plenary.vararg')" +674.615 "" "000.195 000.195: require('plenary.errors')" +674.631 "" "001.183 000.317: require('plenary.async.async')" +675.62 "" "000.280 000.280: require('plenary.async.structs')" +675.65 "" "000.538 000.258: require('plenary.async.control')" +675.665 "" "000.770 000.233: require('plenary.async.util')" +675.674 "" "001.035 000.264: require('plenary.async.tests')" +675.681 "" "002.990 000.772: require('plenary.async')" +676.44 "" "000.338 000.338: require('plenary.window.border')" +676.829 "" "000.370 000.370: require('plenary.window')" +677.189 "" "000.335 000.335: require('plenary.popup.utils')" +677.217 "" "001.528 000.485: require('plenary.popup')" +678.401 "" "000.363 000.363: require('telescope.pickers.scroller')" +678.744 "" "000.321 000.321: require('telescope.actions.state')" +679.076 "" "000.315 000.315: require('telescope.actions.utils')" +679.715 "" "000.311 000.311: require('telescope.actions.mt')" +679.759 "" "000.672 000.361: require('telescope.actions.set')" +680.593 "" "000.435 000.435: require('telescope.config.resolve')" +680.618 "" "000.852 000.416: require('telescope.pickers.entry_display')" +681.016 "" "000.390 000.390: require('telescope.from_entry')" +681.313 "" "003.977 001.065: require('telescope.actions')" +681.755 "" "000.433 000.433: require('telescope.debounce')" +682.141 "" "000.369 000.369: require('telescope.mappings')" +682.5 "" "000.344 000.344: require('telescope.pickers.highlights')" +682.808 "" "000.292 000.292: require('telescope.pickers.window')" +683.558 "" "000.343 000.343: require('telescope.algos.linked_list')" +683.575 "" "000.756 000.413: require('telescope.entry_manager')" +683.808 "" "000.225 000.225: require('telescope.pickers.multi')" +683.844 "" "012.470 001.556: require('telescope.pickers')" +684.606 "" "000.472 000.472: require('telescope.make_entry')" +685.003 "" "000.378 000.378: require('telescope.finders.async_static_finder')" +685.905 "" "000.258 000.258: require('plenary.class')" +685.941 "" "000.628 000.370: require('telescope._')" +685.947 "" "000.929 000.301: require('telescope.finders.async_oneshot_finder')" +686.239 "" "000.287 000.287: require('telescope.finders.async_job_finder')" +686.257 "" "002.409 000.343: require('telescope.finders')" +686.603 "" "000.321 000.321: require('telescope.builtin')" +687.624 "" "000.196 000.196: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/which-key.nvim/plugin/which-key.lua" +691.934 "" "004.182 004.182: require('which-key')" +692.244 "" "000.283 000.283: require('which-key.config')" +692.936 "" "016.897: VimEnter autocommands" +693.156 "" "000.220: UIEnter autocommands" +695.582 "" "002.426: before starting main loop" +727.956 "" "032.374: first screen update" +727.97 "" "000.014: --- NVIM STARTED ---" diff --git a/startup/startTimeAnalysis.R b/startup/startTimeAnalysis.R new file mode 100644 index 00000000000..646a49201b7 --- /dev/null +++ b/startup/startTimeAnalysis.R @@ -0,0 +1,62 @@ +library(tidyverse) + +log <- read.delim("startuptime.log", header = F) %>% + unlist() %>% + setNames(NULL) + +nvim_start <- data.frame(name = log[5:19]) +plugins_start <- data.frame(name = log[24:length(log)]) + +nvim_start <- lapply(nvim_start, gsub, pattern = "\\s+", replacement = " ") %>% + as.data.frame() + +plugins_start <- lapply(plugins_start, gsub, pattern = "\\s+", replacement = " ") %>% + as.data.frame() + +nvim_df <- nvim_start %>% + separate( + col = name, + into = c("total_time", "self_time", "dscr"), + sep = " ", + extra = "merge" + ) %>% + { + .[, "total_time"] <- as.numeric(.[, "total_time"]) + . + } %>% + { + .[, "self_time"] %>% + sapply(., sub, pattern = ":", replacement = "") %>% + setNames(NULL) -> mod + + .[, "self_time"] <- mod + . + } + +plugins_df <- plugins_start %>% + separate( + col = name, + into = c("total_time", "self_time", "dscr"), + sep = " ", + extra = "merge" + ) %>% + { + .[, "total_time"] <- as.numeric(.[, "total_time"]) + . + } %>% + { + .[, "self_time"] %>% + sapply(., sub, pattern = ":", replacement = "") %>% + setNames(NULL) -> mod + + .[, "self_time"] <- mod + . + } + +nvim_df %>% + arrange(desc(self_time)) %>% + write.table(., "nvimStartTime.txt", row.names = F, col.names = F) + +plugins_df %>% + arrange(desc(self_time)) %>% + write.table(., "pluginsStartTime.txt", row.names = F, col.names = F) diff --git a/startup/startuptime.log b/startup/startuptime.log new file mode 100644 index 00000000000..2017ba02829 --- /dev/null +++ b/startup/startuptime.log @@ -0,0 +1,588 @@ +--- Startup times for process: Primary/TUI --- + +times in msec + clock self+sourced self: sourced script + clock elapsed: other lines + +000.013 000.013: --- NVIM STARTING --- +000.194 000.181: event init +000.524 000.330: early init +000.736 000.211: locale set +000.848 000.112: init first window +001.669 000.821: inits 1 +001.856 000.187: window checked +002.586 000.730: parsing arguments +003.825 000.321 000.321: require('vim.shared') +004.397 000.183 000.183: require('vim.inspect') +004.712 000.301 000.301: require('vim._options') +004.717 000.884 000.400: require('vim._editor') +004.721 001.311 000.107: require('vim._init_packages') +004.732 000.834: init lua interpreter +009.337 004.606: --- NVIM STARTED --- + +--- Startup times for process: Embedded --- + +times in msec + clock self+sourced self: sourced script + clock elapsed: other lines + +000.011 000.011: --- NVIM STARTING --- +000.107 000.097: event init +000.298 000.190: early init +000.422 000.124: locale set +000.499 000.077: init first window +001.019 000.519: inits 1 +001.131 000.112: window checked +001.427 000.297: parsing arguments +002.443 000.314 000.314: require('vim.shared') +002.999 000.181 000.181: require('vim.inspect') +003.346 000.333 000.333: require('vim._options') +003.352 000.901 000.387: require('vim._editor') +003.356 001.317 000.103: require('vim._init_packages') +003.368 000.623: init lua interpreter +003.697 000.329: expanding arguments +003.719 000.022: inits 2 +003.943 000.224: init highlight +003.949 000.006: waiting for UI +004.064 000.115: done waiting for UI +004.069 000.005: clear screen +004.378 000.040 000.040: require('vim.keymap') +006.211 001.184 001.184: require('vim.termcap') +006.429 000.170 000.170: require('vim.text') +009.057 004.984 003.589: require('vim._defaults') +009.065 000.013: init default mappings & autocommands +009.450 000.135 000.135: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin.vim +009.762 000.079 000.079: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\indent.vim +010.524 000.372 000.372: require('options') +012.337 000.026 000.026: require('vim.F') +012.407 001.528 001.502: require('vim.diagnostic') +012.671 002.134 000.606: require('keymaps') +013.083 000.406 000.406: require('lazy-bootstrap') +014.582 000.346 000.346: require('lazy') +014.799 000.203 000.203: require('kickstart/plugins/gitsigns') +014.973 000.165 000.165: require('kickstart/plugins/which-key') +015.156 000.176 000.176: require('kickstart/plugins/telescope') +015.372 000.210 000.210: require('kickstart/plugins/lspconfig') +015.545 000.165 000.165: require('kickstart/plugins/conform') +015.756 000.199 000.199: require('kickstart/plugins/cmp') +015.910 000.145 000.145: require('kickstart/plugins/tokyonight') +016.046 000.128 000.128: require('kickstart/plugins/todo-comments') +016.198 000.146 000.146: require('kickstart/plugins/mini') +016.356 000.152 000.152: require('kickstart/plugins/treesitter') +016.552 000.184 000.184: require('kickstart.plugins.debug') +016.712 000.152 000.152: require('kickstart.plugins.lint') +016.865 000.146 000.146: require('kickstart.plugins.autopairs') +017.045 000.172 000.172: require('kickstart.plugins.neo-tree') +017.105 000.022 000.022: require('ffi') +017.600 000.236 000.236: require('vim.fs') +018.021 000.341 000.341: require('vim.uri') +018.057 000.945 000.368: require('vim.loader') +018.547 000.388 000.388: require('lazy.stats') +019.103 000.261 000.261: require('lazy.core.util') +019.347 000.232 000.232: require('lazy.core.config') +019.837 000.239 000.239: require('lazy.core.handler') +020.506 000.211 000.211: require('lazy.pkg') +020.519 000.438 000.227: require('lazy.core.meta') +020.529 000.683 000.245: require('lazy.core.plugin') +020.541 001.187 000.266: require('lazy.core.loader') +021.277 000.259 000.259: require('lazy.core.fragments') +032.042 000.209 000.209: require('lazy.core.handler.cmd') +032.223 000.165 000.165: require('lazy.core.handler.keys') +032.524 000.151 000.151: require('lazy.core.handler.event') +032.532 000.300 000.149: require('lazy.core.handler.ft') +033.291 000.095 000.095: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/Nvim-R/ftdetect/r.vim +035.478 000.388 000.388: require('dap.utils') +035.626 002.300 001.912: require('dap') +037.088 000.264 000.264: require('nio.tasks') +037.382 000.254 000.254: require('nio.control') +038.289 000.872 000.872: require('nio.uv') +038.895 000.567 000.567: require('nio.tests') +039.343 000.154 000.154: require('vim.ui') +039.385 000.448 000.295: require('nio.ui') +039.801 000.182 000.182: require('nio.streams') +039.837 000.420 000.238: require('nio.file') +040.539 000.177 000.177: require('nio.util') +040.815 000.764 000.587: require('nio.logger') +040.855 000.990 000.226: require('nio.lsp') +041.088 000.203 000.203: require('nio.process') +041.152 004.867 000.849: require('nio') +042.246 000.236 000.236: require('dapui.config.highlights') +042.453 000.834 000.599: require('dapui.config') +042.467 001.042 000.208: require('dapui.util') +042.744 000.270 000.270: require('dapui.windows.layout') +042.755 001.565 000.253: require('dapui.windows') +043.053 000.294 000.294: require('dapui.controls') +043.064 007.404 000.678: require('dapui') +044.288 000.422 000.422: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/filetype.lua +050.909 000.252 000.252: require('kanagawa-paper.config') +050.924 000.674 000.423: require('kanagawa-paper') +051.117 000.176 000.176: require('kanagawa-paper.colors') +051.321 000.157 000.157: require('kanagawa-paper.themes') +051.556 000.182 000.182: require('kanagawa-paper.highlights') +051.739 000.176 000.176: require('kanagawa-paper.highlights.editor') +051.995 000.206 000.206: require('kanagawa-paper.highlights.syntax') +052.223 000.171 000.171: require('kanagawa-paper.highlights.treesitter') +052.446 000.176 000.176: require('kanagawa-paper.highlights.lsp') +052.831 000.374 000.374: require('kanagawa-paper.highlights.plugins') +053.265 000.247 000.247: require('kanagawa-paper.lib.hsluv') +053.279 000.440 000.193: require('kanagawa-paper.lib.color') +054.335 000.226 000.226: require('kanagawa-paper.highlights.ft') +055.036 004.851 001.893: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\kanagawa-paper.nvim\colors\kanagawa-paper.vim +057.365 000.199 000.199: require('tokyonight.config') +057.384 001.706 001.507: require('tokyonight') +060.465 000.137 000.137: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/lush.nvim/plugin/lush.vim +064.067 000.085 000.085: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/plenary.nvim/plugin/plenary.vim +065.873 001.696 001.696: require('alpha') +068.145 000.100 000.100: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-web-devicons/plugin/nvim-web-devicons.vim +070.680 001.832 001.832: require('nvim-web-devicons.icons-default') +070.849 004.329 002.397: require('nvim-web-devicons') +071.805 000.951 000.951: require('mini.icons') +071.820 005.656 000.376: require('alpha.utils') +072.308 000.185 000.185: require('plenary.bit') +072.468 000.151 000.151: require('plenary.functional') +072.486 000.661 000.325: require('plenary.path') +072.654 000.164 000.164: require('alpha.themes.dashboard') +072.668 006.779 000.297: require('alpha.themes.theta') +079.115 000.279 000.279: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-dap/plugin/dap.lua +081.483 000.265 000.265: require('mason-core.functional') +081.670 000.174 000.174: require('mason-core.path') +081.854 000.178 000.178: require('mason.settings') +081.884 000.997 000.380: require('mason-core.log') +081.891 002.704 001.707: require('mason-nvim-dap') +082.076 000.179 000.179: require('mason-nvim-dap.settings') +082.678 000.181 000.181: require('mason-core.EventEmitter') +082.843 000.157 000.157: require('mason-core.optional') +083.242 000.228 000.228: require('mason-core.async') +083.397 000.147 000.147: require('mason-core.async.uv') +083.406 000.557 000.182: require('mason-core.fs') +083.607 000.197 000.197: require('mason-registry.sources') +083.944 000.157 000.157: require('mason-core.functional.data') +084.110 000.160 000.160: require('mason-core.functional.function') +084.146 000.529 000.212: require('mason-core.functional.list') +084.178 001.839 000.218: require('mason-registry') +084.520 000.168 000.168: require('mason-core.functional.table') +084.529 000.347 000.179: require('mason-nvim-dap.mappings.source') +084.535 002.359 000.173: require('mason-nvim-dap.ensure_installed') +087.963 000.182 000.182: require('mason-core.functional.string') +088.257 000.172 000.172: require('mason-nvim-dap.automatic_installation') +088.465 000.191 000.191: require('mason-core.notify') +088.919 000.199 000.199: require('mason-nvim-dap.mappings.adapters') +089.105 000.176 000.176: require('mason-nvim-dap.mappings.filetypes') +103.152 013.954 013.954: require('mason-nvim-dap.mappings.configurations') +108.694 005.517 005.517: require('mason-nvim-dap.mappings.adapters.python') +109.021 000.310 000.310: require('mason-nvim-dap.automatic_setup') +109.278 000.233 000.233: require('dap.ext.vscode') +109.767 000.180 000.180: require('mason-core.functional.number') +110.061 000.280 000.280: require('mason-core.functional.logic') +110.093 000.722 000.261: require('mason-nvim-dap.api.command') +112.320 001.204 001.204: require('dapui.client.types') +112.356 001.810 000.606: require('dapui.client') +112.948 000.582 000.582: require('dap.breakpoints') +113.395 000.369 000.369: require('dapui.client.lib') +114.218 000.394 000.394: require('dapui.render.canvas') +114.235 000.777 000.383: require('dapui.elements.breakpoints') +114.456 000.196 000.196: require('dapui.components.breakpoints') +114.627 000.144 000.144: require('dapui.elements.repl') +114.770 000.134 000.134: require('dapui.elements.scopes') +114.931 000.141 000.141: require('dapui.components.scopes') +115.104 000.167 000.167: require('dapui.components.variables') +115.268 000.140 000.140: require('dapui.elements.stacks') +115.559 000.138 000.138: require('dapui.components.frames') +115.568 000.281 000.143: require('dapui.components.threads') +115.746 000.157 000.157: require('dapui.elements.watches') +115.978 000.208 000.208: require('dapui.components.watches') +116.170 000.146 000.146: require('dapui.elements.hover') +116.338 000.147 000.147: require('dapui.components.hover') +116.489 000.141 000.141: require('dapui.elements.console') +116.956 000.179 000.179: require('dap-go-ts') +116.981 000.426 000.248: require('dap-go') +120.328 000.089 000.089: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/twilight.nvim/plugin/twilight.vim +122.477 000.146 000.146: require('twilight.util') +122.533 000.361 000.216: require('twilight.config') +122.710 000.170 000.170: require('twilight.view') +122.721 002.217 001.685: require('twilight') +123.142 000.064 000.064: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/zen-mode.nvim/plugin/zen-mode.vim +125.442 000.187 000.187: require('zen-mode.util') +125.456 000.347 000.161: require('zen-mode.config') +125.786 000.158 000.158: require('zen-mode.plugins') +125.799 000.340 000.181: require('zen-mode.view') +125.808 002.472 001.785: require('zen-mode') +128.366 002.268 002.268: require('mini.surround') +129.093 000.309 000.309: require('mini.pairs') +132.352 000.170 000.170: require('ibl.utils') +132.368 000.339 000.168: require('ibl.config') +132.684 000.143 000.143: require('ibl.indent') +132.697 000.324 000.181: require('ibl.hooks') +132.701 000.849 000.186: require('ibl.highlights') +132.857 000.152 000.152: require('ibl.autocmds') +133.041 000.173 000.173: require('ibl.inlay_hints') +133.196 000.148 000.148: require('ibl.virt_text') +133.727 000.320 000.320: require('ibl.scope_languages') +133.741 000.539 000.219: require('ibl.scope') +133.751 003.855 001.993: require('ibl') +134.006 000.226 000.226: require('vim.iter') +134.581 000.271 000.271: require('vim.lsp.log') +135.039 000.447 000.447: require('vim.lsp.protocol') +135.717 000.296 000.296: require('vim.lsp._snippet_grammar') +135.937 000.204 000.204: require('vim.highlight') +135.962 000.912 000.413: require('vim.lsp.util') +136.368 000.182 000.182: require('vim.lsp.sync') +136.382 000.414 000.232: require('vim.lsp._changetracking') +136.748 000.360 000.360: require('vim.lsp.rpc') +136.864 002.822 000.417: require('vim.lsp') +137.237 000.367 000.367: require('vim.lsp.handlers') +143.000 000.318 000.318: require('nvim-treesitter.utils') +145.399 000.322 000.322: require('vim.treesitter.language') +145.590 000.173 000.173: require('vim.func') +145.812 000.210 000.210: require('vim.func._memoize') +145.881 001.169 000.464: require('vim.treesitter.query') +146.144 000.257 000.257: require('vim.treesitter._range') +146.243 001.939 000.512: require('vim.treesitter.languagetree') +146.259 002.633 000.694: require('vim.treesitter') +147.768 004.753 002.120: require('nvim-treesitter.parsers') +150.244 000.652 000.652: require('nvim-treesitter.compat') +151.152 000.585 000.585: require('nvim-treesitter.ts_utils') +151.171 000.910 000.325: require('nvim-treesitter.tsrange') +151.367 000.190 000.190: require('nvim-treesitter.caching') +151.384 002.655 000.903: require('nvim-treesitter.query') +151.404 003.163 000.508: require('nvim-treesitter.configs') +151.411 003.633 000.469: require('nvim-treesitter.info') +151.616 000.201 000.201: require('nvim-treesitter.shell_command_selectors') +151.648 009.267 000.361: require('nvim-treesitter.install') +151.808 000.155 000.155: require('nvim-treesitter.statusline') +152.048 000.234 000.234: require('nvim-treesitter.query_predicates') +152.055 012.024 002.369: require('nvim-treesitter') +152.386 012.546 000.521: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-treesitter/plugin/nvim-treesitter.lua +164.635 000.305 000.305: require('nvim-treesitter.indent') +164.968 000.252 000.252: require('nvim-treesitter.highlight') +170.763 000.156 000.156: require('luasnip.util.types') +170.962 000.180 000.180: require('luasnip.util.lazy_table') +171.172 000.197 000.197: require('luasnip.extras.filetype_functions') +171.197 000.804 000.272: require('luasnip.default_config') +171.203 001.093 000.289: require('luasnip.session') +171.216 001.407 000.314: require('luasnip.util.util') +171.776 000.339 000.339: require('luasnip.util.path') +172.279 000.192 000.192: require('luasnip.session.snippet_collection.source') +172.455 000.159 000.159: require('luasnip.util.table') +172.648 000.181 000.181: require('luasnip.util.auto_table') +172.670 000.881 000.351: require('luasnip.session.snippet_collection') +173.043 000.368 000.368: require('luasnip.util.log') +173.058 001.838 000.249: require('luasnip.loaders.util') +173.372 000.308 000.308: require('luasnip.loaders.fs_watchers') +173.579 000.197 000.197: require('luasnip.loaders.data') +173.772 000.183 000.183: require('luasnip.session.enqueueable_operations') +174.843 000.158 000.158: require('luasnip.util.ext_opts') +175.011 000.152 000.152: require('luasnip.nodes.key_indexer') +175.024 000.520 000.211: require('luasnip.nodes.util') +175.196 000.167 000.167: require('luasnip.util.events') +175.214 000.948 000.260: require('luasnip.nodes.node') +175.700 000.165 000.165: require('luasnip.util.extend_decorator') +175.715 000.496 000.331: require('luasnip.nodes.insertNode') +175.947 000.228 000.228: require('luasnip.nodes.textNode') +176.191 000.232 000.232: require('luasnip.util.mark') +176.812 000.188 000.188: require('luasnip.util.select') +177.035 000.211 000.211: require('luasnip.util.time') +177.469 001.052 000.653: require('luasnip.util._builtin_vars') +177.674 001.472 000.420: require('luasnip.util.environ') +178.034 000.350 000.350: require('luasnip.util.pattern_tokenizer') +178.295 000.248 000.248: require('luasnip.util.dict') +190.304 011.800 011.800: require('luasnip.util.jsregexp') +190.330 012.023 000.223: require('luasnip.nodes.util.trig_engines') +190.419 016.401 000.404: require('luasnip.nodes.snippet') +191.402 000.415 000.415: require('luasnip.util.parser.neovim_ast') +191.868 000.443 000.443: require('luasnip.util.str') +193.364 001.473 001.473: require('luasnip.util.jsregexp') +193.565 000.189 000.189: require('luasnip.util.directed_graph') +193.575 002.805 000.285: require('luasnip.util.parser.ast_utils') +193.802 000.222 000.222: require('luasnip.nodes.functionNode') +194.024 000.213 000.213: require('luasnip.nodes.choiceNode') +194.281 000.250 000.250: require('luasnip.nodes.dynamicNode') +194.550 000.257 000.257: require('luasnip.util.functions') +194.565 004.141 000.393: require('luasnip.util.parser.ast_parser') +194.794 000.224 000.224: require('luasnip.util.parser.neovim_parser') +194.806 021.024 000.259: require('luasnip.util.parser') +194.985 000.174 000.174: require('luasnip.nodes.snippetProxy') +195.239 000.242 000.242: require('luasnip.util.jsonc') +195.780 000.178 000.178: require('luasnip.nodes.duplicate') +195.794 000.459 000.281: require('luasnip.loaders.snippet_cache') +195.806 028.625 002.794: require('luasnip.loaders.from_vscode') +210.229 000.227 000.227: require('luasnip.nodes.multiSnippet') +211.582 000.361 000.361: require('luasnip.loaders.from_lua') +212.879 000.206 000.206: require('luasnip.loaders') +213.108 000.186 000.186: require('luasnip.config') +213.118 000.709 000.317: require('luasnip') +213.504 000.186 000.186: require('luasnip.extras') +213.515 000.391 000.205: require('luasnip.extras.fmt') +234.722 002.327 002.327: require('vim.filetype') +235.079 002.883 000.555: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/LuaSnip/plugin/luasnip.lua +235.530 000.099 000.099: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/LuaSnip/plugin/luasnip.vim +239.183 002.352 002.352: require('render-markdown') +239.826 000.173 000.173: require('render-markdown.core.range') +239.840 000.415 000.242: require('render-markdown.config') +240.212 000.182 000.182: require('render-markdown.core.util') +240.223 000.378 000.196: require('render-markdown.core.log') +240.410 000.182 000.182: require('render-markdown.presets') +240.584 000.168 000.168: require('render-markdown.core.treesitter') +240.595 001.398 000.255: require('render-markdown.state') +241.276 000.192 000.192: require('render-markdown.core.buffer_state') +241.689 000.216 000.216: require('render-markdown.core.node_info') +241.876 000.174 000.174: require('render-markdown.core.str') +241.890 000.604 000.214: require('render-markdown.core.context') +242.054 000.161 000.161: require('render-markdown.core.extmark') +242.254 000.193 000.193: require('render-markdown.core.iter') +242.634 000.191 000.191: require('render-markdown.core.list') +242.644 000.383 000.192: require('render-markdown.handler.markdown') +242.875 000.226 000.226: require('render-markdown.handler.markdown_inline') +243.062 000.180 000.180: require('render-markdown.handler.latex') +243.076 002.223 000.284: require('render-markdown.core.ui') +243.330 000.247 000.247: require('render-markdown.colors') +243.999 000.221 000.221: require('render-markdown.manager') +244.016 000.422 000.201: require('render-markdown.api') +244.022 000.612 000.190: require('render-markdown.command') +244.054 007.432 000.601: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/render-markdown.nvim/plugin/render-markdown.lua +252.613 001.613 001.613: require('mini.files') +256.144 000.556 000.556: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/vim-sleuth/plugin/sleuth.vim +261.814 000.297 000.297: require('gitsigns.async') +262.047 000.217 000.217: require('gitsigns.debug.log') +262.681 000.621 000.621: require('gitsigns.config') +262.715 004.037 002.902: require('gitsigns') +265.895 000.782 000.782: require('gitsigns.highlight') +267.229 000.479 000.479: require('gitsigns.debounce') +283.747 000.968 000.968: require('lualine_require') +286.589 007.953 006.985: require('lualine') +307.234 007.671 007.671: require('lualine.utils.mode') +339.025 003.196 003.196: require('onedark') +349.277 000.271 000.271: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-lspconfig/plugin/lspconfig.lua +350.162 000.237 000.237: require('mason-core.functional.relation') +350.205 000.525 000.288: require('mason-core.platform') +350.212 000.767 000.242: require('mason') +350.565 000.305 000.305: require('mason.api.command') +354.172 000.185 000.185: require('mason-lspconfig.settings') +354.189 003.594 003.410: require('mason-lspconfig') +354.478 000.284 000.284: require('mason-lspconfig.mappings.server') +354.646 000.157 000.157: require('mason-lspconfig.notify') +359.074 003.633 003.633: require('cmp_nvim_lsp.source') +359.095 004.332 000.699: require('cmp_nvim_lsp') +359.850 000.306 000.306: require('lspconfig.util') +360.034 000.170 000.170: require('lspconfig.async') +360.041 000.712 000.237: require('lspconfig.configs') +360.053 000.947 000.235: require('lspconfig') +360.233 000.175 000.175: require('lspconfig.configs.pyright') +361.120 000.298 000.298: require('lspconfig.manager') +361.468 000.250 000.250: require('lspconfig.configs.r_language_server') +365.227 000.321 000.321: require('lspconfig.configs.clangd') +366.294 000.246 000.246: require('lspconfig.configs.ts_ls') +367.055 000.271 000.271: require('lspconfig.configs.texlab') +367.848 000.248 000.248: require('lspconfig.configs.lua_ls') +368.452 000.213 000.213: require('lspconfig.configs.markdown_oxide') +369.133 000.213 000.213: require('lspconfig.configs.matlab_ls') +379.691 003.635 003.635: require('bamboo') +391.273 000.189 000.189: require('bamboo') +392.516 000.175 000.175: require('bamboo.palette') +392.557 000.393 000.218: require('bamboo.colors') +392.765 000.200 000.200: require('bamboo.util') +392.972 001.304 000.711: require('bamboo.highlights') +394.224 000.401 000.401: require('bamboo.terminal') +394.254 004.111 002.217: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\bamboo.nvim\colors\bamboo-multiplex.lua +406.284 000.271 000.271: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/editorconfig.lua +406.786 000.259 000.259: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/gzip.vim +407.278 000.224 000.224: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/man.lua +412.876 000.314 000.314: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\pack\dist\opt\matchit\plugin\matchit.vim +412.967 005.431 005.117: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/matchit.vim +413.633 000.336 000.336: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/matchparen.vim +414.389 000.484 000.484: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/netrwPlugin.vim +414.897 000.236 000.236: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/osc52.lua +415.838 000.664 000.664: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/rplugin.vim +416.303 000.141 000.141: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/shada.vim +416.651 000.073 000.073: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/spellfile.vim +417.160 000.219 000.219: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/tarPlugin.vim +417.727 000.281 000.281: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/tohtml.lua +418.143 000.088 000.088: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/tutor.vim +418.586 000.219 000.219: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/plugin/zipPlugin.vim +437.536 004.088 004.088: require('cmp.utils.api') +437.881 000.144 000.144: require('cmp.types.cmp') +438.260 000.163 000.163: require('cmp.utils.misc') +438.274 000.386 000.223: require('cmp.types.lsp') +438.415 000.136 000.136: require('cmp.types.vim') +438.422 000.872 000.206: require('cmp.types') +438.566 000.140 000.140: require('cmp.utils.highlight') +438.863 000.147 000.147: require('cmp.utils.debug') +438.884 000.312 000.165: require('cmp.utils.autocmd') +439.196 005.971 000.560: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/nvim-cmp/plugin/cmp.lua +440.027 000.174 000.174: require('cmp.utils.char') +440.041 000.337 000.162: require('cmp.utils.str') +440.539 000.169 000.169: require('cmp.utils.buffer') +440.553 000.354 000.185: require('cmp.utils.keymap') +440.558 000.512 000.159: require('cmp.utils.feedkeys') +441.027 000.152 000.152: require('cmp.config.mapping') +441.186 000.150 000.150: require('cmp.utils.cache') +441.507 000.159 000.159: require('cmp.config.compare') +441.514 000.321 000.161: require('cmp.config.default') +441.539 000.815 000.191: require('cmp.config') +441.563 001.002 000.187: require('cmp.utils.async') +441.871 000.138 000.138: require('cmp.utils.pattern') +441.879 000.312 000.175: require('cmp.context') +442.482 000.196 000.196: require('cmp.utils.snippet') +442.653 000.163 000.163: require('cmp.matcher') +442.663 000.564 000.205: require('cmp.entry') +442.672 000.788 000.224: require('cmp.source') +443.009 000.172 000.172: require('cmp.utils.event') +443.515 000.140 000.140: require('cmp.utils.options') +443.526 000.304 000.164: require('cmp.utils.window') +443.531 000.485 000.180: require('cmp.view.docs_view') +443.736 000.201 000.201: require('cmp.view.custom_entries_view') +443.980 000.236 000.236: require('cmp.view.wildmenu_entries_view') +444.203 000.215 000.215: require('cmp.view.native_entries_view') +444.433 000.221 000.221: require('cmp.view.ghost_text_view') +444.450 001.773 000.244: require('cmp.view') +444.844 005.345 000.620: require('cmp.core') +445.261 000.287 000.287: require('cmp.config.sources') +445.437 000.167 000.167: require('cmp.config.window') +445.541 006.258 000.460: require('cmp') +445.813 000.267 000.267: require('lspkind') +447.523 028.142 015.646: require('cmp') +447.819 000.288 000.288: require('cmp_luasnip') +447.874 028.717 000.287: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp_luasnip\after/plugin/cmp_luasnip.lua +448.338 000.153 000.153: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-nvim-lsp\after/plugin/cmp_nvim_lsp.lua +448.885 000.154 000.154: require('cmp_nvim_lua') +448.915 000.328 000.173: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-nvim-lua\after/plugin/cmp_nvim_lua.lua +449.913 000.140 000.140: require('cmp_buffer.timer') +449.924 000.298 000.159: require('cmp_buffer.buffer') +449.929 000.475 000.177: require('cmp_buffer.source') +449.933 000.614 000.139: require('cmp_buffer') +449.951 000.756 000.141: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-buffer\after/plugin/cmp_buffer.lua +450.523 000.170 000.170: require('cmp_path') +450.542 000.317 000.147: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-path\after/plugin/cmp_path.lua +451.212 000.208 000.208: require('cmp_cmdline') +451.266 000.421 000.213: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\cmp-cmdline\after/plugin/cmp_cmdline.lua +451.716 000.160 000.160: sourcing C:\Users\joene\AppData\Local\nvim-data\lazy\indent-blankline.nvim\after/plugin/commands.lua +451.789 438.698 218.204: require('lazy-plugins') +451.794 441.723 000.113: sourcing C:\Users\joene\AppData\Local\nvim\init.lua +451.844 000.842: sourcing vimrc file(s) +453.628 000.163 000.163: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\filetype.lua +455.597 000.114 000.114: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\synload.vim +455.845 001.462 001.348: sourcing C:\tools\neovim\nvim-win64\share/nvim/runtime/syntax/syntax.vim +455.873 002.405: inits 3 +459.094 003.220: reading ShaDa +464.420 003.866 003.866: require('lint') +467.508 000.436 000.436: require('vim.filetype.detect') +476.070 000.406 000.406: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\autoload\htmlcomplete.vim +476.252 001.737 001.331: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\html.vim +477.320 005.853 004.116: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\markdown.vim +484.657 003.739 003.739: require('markdown') +484.850 004.103 000.365: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/markdown.nvim/plugin/markdown.lua +487.359 000.221 000.221: require('markdown.config') +487.687 000.176 000.176: require('markdown.cmd') +488.015 000.145 000.145: require('markdown.treesitter') +488.165 000.144 000.144: require('markdown.util') +494.163 006.463 006.174: require('markdown.list') +494.986 000.181 000.181: require('markdown.notify') +496.227 001.822 001.641: require('markdown.link') +497.117 000.221 000.221: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/markdown-preview.nvim/plugin/mkdp.vim +508.092 000.240 000.240: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\html.vim +509.118 004.553 004.314: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\ftplugin\markdown.vim +519.682 000.264 000.264: require('vim.treesitter.highlighter') +520.059 000.223 000.223: require('luasnip.loaders.from_snipmate') +528.490 000.499 000.499: require('vim.lsp.client') +529.177 000.204 000.204: require('vim.glob') +529.198 000.466 000.261: require('vim.lsp._dynamic') +529.501 000.225 000.225: require('vim._system') +537.948 000.395 000.395: require('vim.version') +552.185 000.362 000.362: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax/dtd.vim +552.315 001.494 001.131: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\xml.vim +554.956 000.518 000.518: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\javascript.vim +557.508 000.881 000.881: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\vb.vim +567.876 008.793 008.793: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\css.vim +569.960 020.374 008.688: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\html.vim +572.952 001.064 001.064: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\yaml.vim +573.329 025.117 003.679: sourcing C:\tools\neovim\nvim-win64\share\nvim\runtime\syntax\markdown.vim +589.709 000.292 000.292: require('gitsigns.status') +590.281 000.326 000.326: require('gitsigns.util') +590.984 000.176 000.176: require('gitsigns.system') +590.995 000.436 000.260: require('gitsigns.git.cmd') +591.394 000.212 000.212: require('gitsigns.message') +591.406 000.406 000.193: require('gitsigns.git.version') +597.585 007.293 006.451: require('gitsigns.git.repo') +597.619 007.896 000.277: require('gitsigns.git') +598.100 000.475 000.475: require('gitsigns.cache') +598.789 000.258 000.258: require('gitsigns.diff') +599.126 000.321 000.321: require('gitsigns.hunks') +599.423 000.282 000.282: require('gitsigns.signs') +599.453 001.337 000.475: require('gitsigns.manager') +599.475 010.462 000.463: require('gitsigns.attach') +599.840 000.308 000.308: require('gitsigns.current_line_blame') +604.983 000.594 000.594: require('editorconfig') +605.736 080.376: opening buffers +612.054 000.425 000.425: require('lint.parser') +612.077 000.854 000.429: require('lint.linters.markdownlint') +623.537 016.947: BufEnter autocommands +623.556 000.019: editing files in windows +625.346 000.153 000.153: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/todo-comments.nvim/plugin/todo.vim +634.471 000.328 000.328: require('todo-comments.util') +634.517 000.786 000.458: require('todo-comments.config') +635.554 000.604 000.604: require('todo-comments.highlight') +635.581 001.056 000.452: require('todo-comments.jump') +635.591 009.924 008.082: require('todo-comments') +643.900 000.899 000.899: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/telescope.nvim/plugin/telescope.lua +651.802 000.491 000.491: require('telescope._extensions') +651.830 007.683 007.191: require('telescope') +652.292 000.455 000.455: require('telescope.themes') +653.326 000.491 000.491: require('plenary.strings') +653.701 000.356 000.356: require('telescope.deprecated') +656.698 001.014 001.014: require('plenary.log') +656.804 002.066 001.052: require('telescope.log') +659.681 000.771 000.771: require('plenary.compat') +659.733 002.030 001.259: require('plenary.job') +660.176 000.436 000.436: require('telescope.state') +660.301 003.488 001.021: require('telescope.utils') +660.338 006.620 001.066: require('telescope.sorters') +665.213 012.824 005.357: require('telescope.config') +671.335 000.685 000.685: require('telescope._extensions.ui-select') +674.386 000.193 000.193: require('plenary.tbl') +674.408 000.436 000.243: require('plenary.vararg.rotate') +674.415 000.671 000.235: require('plenary.vararg') +674.615 000.195 000.195: require('plenary.errors') +674.631 001.183 000.317: require('plenary.async.async') +675.620 000.280 000.280: require('plenary.async.structs') +675.650 000.538 000.258: require('plenary.async.control') +675.665 000.770 000.233: require('plenary.async.util') +675.674 001.035 000.264: require('plenary.async.tests') +675.681 002.990 000.772: require('plenary.async') +676.440 000.338 000.338: require('plenary.window.border') +676.829 000.370 000.370: require('plenary.window') +677.189 000.335 000.335: require('plenary.popup.utils') +677.217 001.528 000.485: require('plenary.popup') +678.401 000.363 000.363: require('telescope.pickers.scroller') +678.744 000.321 000.321: require('telescope.actions.state') +679.076 000.315 000.315: require('telescope.actions.utils') +679.715 000.311 000.311: require('telescope.actions.mt') +679.759 000.672 000.361: require('telescope.actions.set') +680.593 000.435 000.435: require('telescope.config.resolve') +680.618 000.852 000.416: require('telescope.pickers.entry_display') +681.016 000.390 000.390: require('telescope.from_entry') +681.313 003.977 001.065: require('telescope.actions') +681.755 000.433 000.433: require('telescope.debounce') +682.141 000.369 000.369: require('telescope.mappings') +682.500 000.344 000.344: require('telescope.pickers.highlights') +682.808 000.292 000.292: require('telescope.pickers.window') +683.558 000.343 000.343: require('telescope.algos.linked_list') +683.575 000.756 000.413: require('telescope.entry_manager') +683.808 000.225 000.225: require('telescope.pickers.multi') +683.844 012.470 001.556: require('telescope.pickers') +684.606 000.472 000.472: require('telescope.make_entry') +685.003 000.378 000.378: require('telescope.finders.async_static_finder') +685.905 000.258 000.258: require('plenary.class') +685.941 000.628 000.370: require('telescope._') +685.947 000.929 000.301: require('telescope.finders.async_oneshot_finder') +686.239 000.287 000.287: require('telescope.finders.async_job_finder') +686.257 002.409 000.343: require('telescope.finders') +686.603 000.321 000.321: require('telescope.builtin') +687.624 000.196 000.196: sourcing C:/Users/joene/AppData/Local/nvim-data/lazy/which-key.nvim/plugin/which-key.lua +691.934 004.182 004.182: require('which-key') +692.244 000.283 000.283: require('which-key.config') +692.936 016.897: VimEnter autocommands +693.156 000.220: UIEnter autocommands +695.582 002.426: before starting main loop +727.956 032.374: first screen update +727.970 000.014: --- NVIM STARTED --- + diff --git a/todo.md b/todo.md new file mode 100644 index 00000000000..bfe2fdb2a7a --- /dev/null +++ b/todo.md @@ -0,0 +1,9 @@ +# todo + +## UI + +## Util + +- lsp configuration +- zakaj bold v .md ne dela +- java compiling in shit idk