diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..da552786 --- /dev/null +++ b/.gitignore @@ -0,0 +1,258 @@ +# Created by https://www.toptal.com/developers/gitignore/api/vim,lua,windows,macos,intellij,go +# Edit at https://www.toptal.com/developers/gitignore?templates=vim,lua,windows,macos,intellij,go + +### Go ### +# If you prefer the allow list template instead of the deny list, see community template: +# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore +# +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +# https://plugins.jetbrains.com/plugin/7973-sonarlint +.idea/**/sonarlint/ + +# SonarQube Plugin +# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator-enh.xml +.idea/**/markdown-navigator/ + +# Cache file creation bug +# See https://youtrack.jetbrains.com/issue/JBR-2257 +.idea/$CACHE_FILE$ + +# CodeStream plugin +# https://plugins.jetbrains.com/plugin/12206-codestream +.idea/codestream.xml + +# Azure Toolkit for IntelliJ plugin +# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij +.idea/**/azureSettings.xml + +### Lua ### +# Compiled Lua sources +luac.out + +# luarocks build files +*.src.rock +*.zip +*.tar.gz + +# Object files +*.o +*.os +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo +*.def +*.exp + +# Shared objects (inc. Windows DLLs) +*.so.* + +# Executables +*.app +*.i*86 +*.x86_64 +*.hex + + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/vim,lua,windows,macos,intellij,go diff --git a/.zshrc b/.zshrc index bb9d3137..0556a493 100644 --- a/.zshrc +++ b/.zshrc @@ -69,3 +69,7 @@ if [ -f '/Users/s09104/Downloads/google-cloud-sdk/path.zsh.inc' ]; then . '/User # The next line enables shell command completion for gcloud. if [ -f '/Users/s09104/Downloads/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/s09104/Downloads/google-cloud-sdk/completion.zsh.inc'; fi + + +eval "$(direnv hook zsh)" + diff --git a/README.md b/README.md index e5af7b5a..e61e42da 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # dotfiles - - -# memo +## memo ``` ln -sfnv $(pwd)/.zshrc ~/ @@ -11,3 +9,8 @@ ln -sfnv $(pwd)/config/starship.toml ~/.config/ ln -sfnv $(pwd)/config/alacritty/alacritty.yml ~/.config/ ln -sfnv $(pwd)/config/nvim/ ~/.config/ ``` + +## 参考 + +### アイコン探し +https://www.nerdfonts.com/cheat-sheet diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml index 8fd4dec2..6edee8d5 100644 --- a/config/alacritty/alacritty.yml +++ b/config/alacritty/alacritty.yml @@ -1,3 +1,7 @@ +shell: + program: /bin/zsh + args: + - --login window: decorations: none startup_mode: Windowed diff --git a/config/nvim/init.lua b/config/nvim/init.lua new file mode 100644 index 00000000..f57129f5 --- /dev/null +++ b/config/nvim/init.lua @@ -0,0 +1,10 @@ +-- _ _ __ __ +-- (_)__ (_) /_ / /_ _____ _ +-- / / _ \/ / __/ / / // / _ `/ +-- /_/_//_/_/\__(_)_/\_,_/\_,_/ +-- + +require('keys') +require('lazyvim') +require('options') +require('theme') diff --git a/config/nvim/init.vim b/config/nvim/init.vim deleted file mode 100644 index 2fd402c5..00000000 --- a/config/nvim/init.vim +++ /dev/null @@ -1,59 +0,0 @@ - -let mapleader = "\" - -set laststatus=2 - -" for US keyboard -nnoremap ; : -nnoremap : ; - -" tab indend -set expandtab -set tabstop=2 -set shiftwidth=2 -set autoindent - -" search -set incsearch -set hlsearch -set ignorecase -set smartcase - -" other -set number -set autoread - -" for mac clipboard -set clipboard+=unnamed - - -" docker run -d -p 7843:8080 plantuml/plantuml-server:jetty -let g:preview_uml_url='http://localhost:7843' - - -" rust -syntax enable -filetype plugin indent on -let g:rustfmt_autosave = 1 -let g:rust_clip_command = 'pbcopy' - -set t_Co=256 -" set background=dark -" テキスト背景色 -au ColorScheme * hi Normal ctermbg=none -" 括弧対応 -au ColorScheme * hi MatchParen cterm=bold ctermfg=214 ctermbg=black -" スペルチェック -au Colorscheme * hi SpellBad ctermfg=23 cterm=none ctermbg=none - -runtime! settings/init/*.vim -runtime! settings/plugconfig/*.vim -runtime! settings/plugconfig/*.lua - -" kotlin対応 -autocmd BufReadPost *.kt setlocal filetype=kotlin - - -let g:git_commit_prefix_lang = 'ja' - -colorscheme nord diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json new file mode 100644 index 00000000..0e5e3e21 --- /dev/null +++ b/config/nvim/lazy-lock.json @@ -0,0 +1,57 @@ +{ + "LuaSnip": { "branch": "master", "commit": "45a4e899ca8f54936fe32ead6bba65f2a8d42e12" }, + "alpha-nvim": { "branch": "main", "commit": "e4fc5e29b731bdf55d204c5c6a11dc3be70f3b65" }, + "ayu-vim": { "branch": "master", "commit": "0745635421688ce777f663d13531996cb4da6514" }, + "bufferline.nvim": { "branch": "main", "commit": "cd27a52ecdfed7f14a41b61b7976f155e3d593c7" }, + "bufpreview.vim": { "branch": "master", "commit": "9b3df1e6f508a6df6951b6bc5353e8f822a0c186" }, + "catppuccin": { "branch": "main", "commit": "e0dd3f9bb1513c98ab4ef9404ea26e18babf858a" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, + "copilot.lua": { "branch": "master", "commit": "e48bd7020a98be217d85c006a298656294fd6210" }, + "copilot.vim": { "branch": "release", "commit": "a4a6d6b3f9e284e7f5c849619e06cd228cad8abd" }, + "denops.vim": { "branch": "main", "commit": "fece0a2b24655e42a3fd10dbbf2962d39b381e90" }, + "fern-renderer-nerdfont.vim": { "branch": "master", "commit": "1e90a78ab5510fbcedc85abeb9a251d978726935" }, + "fern.vim": { "branch": "main", "commit": "cdec1327ec99f0155d0a53aee1beae4c58071558" }, + "friendly-snippets": { "branch": "main", "commit": "8f5db6c5b691a6bbaa5dabd9afeb164ef8a06d04" }, + "gitsigns.nvim": { "branch": "main", "commit": "5a04466685008f29c71fa5ec25d421deb1c83fea" }, + "glyph-palette.vim": { "branch": "master", "commit": "e9d099dcece92959b737bcf211b47b2dc425a3e4" }, + "kanagawa.nvim": { "branch": "master", "commit": "1749cea392acb7d1548a946fcee1e6f1304cd3cb" }, + "lazy.nvim": { "branch": "main", "commit": "25beed5e2e935ebc00d7e3eed1dc502df3c40e39" }, + "lsp-format.nvim": { "branch": "master", "commit": "ca0df5c8544e51517209ea7b86ecc522c98d4f0a" }, + "lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" }, + "lspsaga.nvim": { "branch": "main", "commit": "95ec55dfd5355c90f1cee834bd415e1d2b5d9854" }, + "lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "828a538ac8419f586c010996aefa5df6eb7c250b" }, + "mason.nvim": { "branch": "main", "commit": "5ad3e113b0c3fde3caba8630599373046f6197e8" }, + "mini.indentscope": { "branch": "main", "commit": "f60e9b51a6214c73a170ffc5445ce91560981031" }, + "mini.splitjoin": { "branch": "main", "commit": "5f4237ae557f255a1f1a435c76c6a715be39060a" }, + "modes.nvim": { "branch": "main", "commit": "4d97a51ebbdb649b85f6d79da0009fddd7081a6b" }, + "neodev.nvim": { "branch": "main", "commit": "d89c108a091172fa46dbdcb8486c6645127aabe1" }, + "neotest": { "branch": "master", "commit": "fb0b31ae1dcdc7d68af5c66db4434ae5ebeffcfc" }, + "neotest-go": { "branch": "main", "commit": "f2580cad67ef0181403cf65858ab638ffd3ede9f" }, + "nerdfont.vim": { "branch": "master", "commit": "2cb5dcfc10bf40e04b5946561cad80bad0ebebed" }, + "noice.nvim": { "branch": "main", "commit": "6c87c1d11c38180fb72bf8f45518a0a3e081afc1" }, + "nui.nvim": { "branch": "main", "commit": "d146966a423e60699b084eeb28489fe3b6427599" }, + "null-ls.nvim": { "branch": "main", "commit": "db09b6c691def0038c456551e4e2772186449f35" }, + "nvim-cmp": { "branch": "main", "commit": "c4e491a87eeacf0408902c32f031d802c7eafce8" }, + "nvim-dap": { "branch": "master", "commit": "3bde6f786057fa29d8356559b2ae3a52d9317fba" }, + "nvim-lspconfig": { "branch": "master", "commit": "4b26897a80c41eb2f116b271cbdcd4686fb52dd6" }, + "nvim-treesitter": { "branch": "master", "commit": "51ea343f705a89326cff8dd7a0542d7fe0e6699a" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "52f1f3280d9092bfaee5c45be5962fabee3d9654" }, + "nvim-web-devicons": { "branch": "master", "commit": "efbfed0567ef4bfac3ce630524a0f6c8451c5534" }, + "onedark.nvim": { "branch": "master", "commit": "cae5fdf035ee92c407a29ee2ccfcff503d2be7f1" }, + "plenary.nvim": { "branch": "master", "commit": "1a6a7c929628566cf406aa7da1d048a1ddc7e9a8" }, + "sqlite.lua": { "branch": "master", "commit": "b7e28c8463254c46a8e61c52d27d6a2040492fc3" }, + "telescope-frecency.nvim": { "branch": "master", "commit": "62d3381a32ae541233b03a129ece0aeced30ad5e" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" }, + "telescope.nvim": { "branch": "master", "commit": "2ea8dcd17b4f9b7714354965a28ae4fef4139c71" }, + "todo-comments.nvim": { "branch": "main", "commit": "09b0b17d824d2d56f02ff15967e8a2499a89c731" }, + "trouble.nvim": { "branch": "main", "commit": "20d1b30d6925213abece21d35858a16e11d1e9fc" }, + "vim-fugitive": { "branch": "master", "commit": "43f18ab9155c853a84ded560c6104e6300ad41da" }, + "vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, + "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" }, + "vimdoc-ja": { "branch": "master", "commit": "7c164ea4295f1c37b0c16f908bc956aa8d8a69ac" }, + "which-key.nvim": { "branch": "main", "commit": "38b990f6eabf62014018b4aae70a97d7a6c2eb88" } +} \ No newline at end of file diff --git a/config/nvim/lua/.DS_Store b/config/nvim/lua/.DS_Store new file mode 100644 index 00000000..5008ddfc Binary files /dev/null and b/config/nvim/lua/.DS_Store differ diff --git a/config/nvim/lua/.luarc.json b/config/nvim/lua/.luarc.json new file mode 100644 index 00000000..1e1765c6 --- /dev/null +++ b/config/nvim/lua/.luarc.json @@ -0,0 +1,5 @@ +{ + "diagnostics.globals": [ + "vim" + ] +} \ No newline at end of file diff --git a/config/nvim/lua/keys.lua b/config/nvim/lua/keys.lua new file mode 100644 index 00000000..eaf6c87b --- /dev/null +++ b/config/nvim/lua/keys.lua @@ -0,0 +1,12 @@ +-- [[ Basic Keymaps ]] + +-- Set as the leader key +-- See `:help mapleader` +-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used) +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' + +-- for US keyboard +vim.keymap.set('n', ';', ':', { noremap = true }) +vim.keymap.set('n', ':', ';', { noremap = true }) + diff --git a/config/nvim/lua/lazyvim.lua b/config/nvim/lua/lazyvim.lua new file mode 100644 index 00000000..76d00802 --- /dev/null +++ b/config/nvim/lua/lazyvim.lua @@ -0,0 +1,29 @@ +-- Install package manager +-- https://github.com/folke/lazy.nvim +-- `:help lazy.nvim.txt` for more info +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +local opts = { + defaults = { + lazy = true, + }, + performance = { + cache = { + enabled = true, + }, + }, +} + +-- Any lua file in ~/.config/nvim/lua/plugins/*.lua will be automatically merged in the main plugin spec +require('lazy').setup('plugins', opts) diff --git a/config/nvim/lua/options.lua b/config/nvim/lua/options.lua new file mode 100644 index 00000000..598a7c59 --- /dev/null +++ b/config/nvim/lua/options.lua @@ -0,0 +1,57 @@ +-- [[ Setting options ]] +-- See `:help vim.o` +-- NOTE: You can change these options as you wish! + +-- Set highlight on search +vim.o.hlsearch = true + +-- Make line numbers default +vim.wo.number = true + +-- Enable mouse mode +vim.o.mouse = 'a' + +-- Sync clipboard between OS and Neovim. +-- Remove this option if you want your OS clipboard to remain independent. +-- See `:help 'clipboard'` +vim.o.clipboard = 'unnamedplus' + +-- Enable break indent +vim.o.breakindent = true + +-- Save undo history +vim.o.undofile = true + +-- Case-insensitive searching UNLESS \C or capital in search +vim.o.ignorecase = true +vim.o.smartcase = true + +-- Keep signcolumn on by default +vim.wo.signcolumn = 'yes' + +-- Decrease update time +vim.o.updatetime = 250 +vim.o.timeout = true +vim.o.timeoutlen = 300 + +-- NOTE: You should make sure your terminal supports this +vim.o.termguicolors = true + +-- vim doc ja +vim.o.helplang = 'ja,en' + +-- tab +vim.o.expandtab = true +vim.o.tabstop = 2 +vim.o.shiftwidth = 2 + +-- other +vim.o.autoread = true +vim.o.incsearch = true +vim.o.autoindent = true +vim.o.laststatus = 2 + + +-- vim.cmd([[runtime! settings/init/*.vim]]) +-- vim.cmd([[runtime! settings/plugconfig/*.vim]]) +-- vim.cmd([[runtime! settings/plugconfig/*.lua]]) diff --git a/config/nvim/lua/plugins/alpha.lua b/config/nvim/lua/plugins/alpha.lua new file mode 100644 index 00000000..254ed10f --- /dev/null +++ b/config/nvim/lua/plugins/alpha.lua @@ -0,0 +1,207 @@ +local Ascii = {} +Ascii.miku = { + [[      /^>》, -―‐‐<^}]], + [[     ./:::/,≠´::::::ヽ.]], + [[    /::::〃::::/}::丿ハ]], + [[   ./:::::i{l|/ ノ/ }::}]], + [[   /:::::::瓜イ> ´< ,:ノ]], + [[  ./::::::|ノヘ.{、 (_フ_ノノイ_]], + [[  |:::::::|/}`ス / /]], + [[. |::::::|(_:::つ/   / neovim!]], + [[. ̄ ̄ ̄ ̄ ̄ ̄ ̄\/_____/ ̄ ̄ ̄ ̄ ̄]], +} +Ascii.panda = { + [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣆⠀⢀⣀⣀⣤⣤⣤⣶⣦⣤⣤⣄⣀⣀⠀⢠⣾⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀ ]], + [[⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣿⠟⠀⠀⠀⠀⠀⣀⣤⣤⣤⡀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⡀⠀⠀⠀⠀⠘⣿⡿⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⠀⠀⣠⣾⣿⣿⠛⣿⡇⠀⠀⠀⠀⠀⢸⣿⣿⠛⣿⣿⣦⠀⠀⠀⠀⠸⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠁⠀⠀⠀⠀⣿⣿⣿⣿⣿⡟⢠⣶⣾⣿⣿⣷⣤⢹⣿⣿⣿⣿⣿⡇⠀⠀⣀⣤⣿⣷⣴⣶⣦⣀⡀⠀⠀⠀⠀ ]], + [[⠀⠀⠀⠀ ⠀⠀⠀⢀⣠⣤⣤⣤⣇⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⠀⠘⠻⣿⣿⣿⡿⠋⠀⢹⣿⣿⣿⣿⡇⠀⣿⣿⣿⡏⢹⣿⠉⣿⣿⣿⣷⠀⠀⠀ ]], + [[⠀⠀⠀ ⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⠀⠹⣿⣿⠿⠋⠀⢤⣀⢀⣼⡄⠀⣠⠀⠈⠻⣿⣿⠟⠀⢸⣿⣇⣽⣿⠿⠿⠿⣿⣅⣽⣿⡇⠀⠀ ]], + [[⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠁⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣟⠁⠀⠀⠀⠈⣿⣿⣿⡇⠀⠀⠀ ]], + [[⠛⠛⠛⠛⠛⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛]], + [[⠀⠀⠀⠀⠀⠀⠘⠛⠻⢿⣿⣿⣿⣿⣿⠟⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], +} + +Ascii.pc = { + [[ ,----------------, ,---------,]], + [[ ,-----------------------, ," ,"|]], + [[ ," ,"| ," ," |]], + [[ +-----------------------+ | ," ," |]], + [[ | .-----------------. | | +---------+ |]], + [[ | | neovim! | | | | -==----'| |]], + [[ | | ∧∧ | | | | | |]], + [[ | | (。・ω・。) | | |/----|`---= | |]], + [[ | | (oo) | | | ,/|==== ooo | ;]], + [[ | | ⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒ | | | // |(((( [33]| ,"]], + [[ | `-----------------' |," .;'| |(((( | ,"]], + [[ +-----------------------+ ;; | | |,"]], + [[ /_)______________(_/ //' | +---------+]], + [[ ___________________________/___ `,]], + [[ / oooooooooooooooo .o. oooo /, \,"-----------]], + [[ / ==ooooooooooooooo==.o. ooo= // ,`\--{)B ,"]], + [[/_==__==========__==_ooo__ooo=_/' /___________,"]], + [[`-----------------------------']], +} + + +local function getGreeting() + local tableTime = os.date("*t") + local hour = tableTime.hour + local greetingsTable = { + [1] = " Sleep well", + [2] = " Good morning", + [3] = " Good afternoon", + [4] = " Good evening", + [5] = "望 Good night", + [6] = "今日も一日がんばるぞい!", + } + local greetingIndex = 0 + if 2 < hour or hour < 8 then + greetingIndex = 1 + elseif hour < 12 then + greetingIndex = 2 + elseif hour >= 12 and hour < 20 then + greetingIndex = 3 + elseif hour >= 20 and hour < 22 then + greetingIndex = 4 + elseif hour >= 23 then + greetingIndex = 5 + end + return greetingsTable[greetingIndex] .. "." +end + +local function button(sc, txt, keybind) + local sc_ = sc:gsub("%s", ""):gsub("SPC", "") + local opts = { + position = "center", + text = txt, + shortcut = sc, + cursor = 6, + width = 19, + align_shortcut = "right", + hl_shortcut = "Number", + hl = "Function", + } + if keybind then + opts.keymap = { "n", sc_, keybind, { noremap = true, silent = true } } + end + return { + type = "button", + val = txt, + on_press = function() + local key = vim.api.nvim_replace_termcodes(sc_, true, false, true) + vim.api.nvim_feedkeys(key, "normal", false) + end, + opts = opts, + } +end + +return { + 'goolord/alpha-nvim', + event = "VimEnter", + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + local present, alpha = pcall(require, "alpha") + if not present then + return + end + local header = { + type = "text", + val = Ascii.miku, + opts = { + position = "center", + hl = "Comment", + }, + } + -- local greeting = getGreeting() + local greetHeading = { + type = "text", + val = { "今日も1日がんばるぞい!", "涼風青葉" }, + opts = { + position = "center", + hl = "String", + }, + } + local buttons = { + type = "group", + val = { + button("f", "󰱼 Search", ":Telescope find_files"), + button("e", " New", ":ene"), + -- button("b", " Jump to bookmarks", ":Telescope marks"), + button("c", " Config", ":e $HOME/.config/nvim/init.lua | :cd %:p:h | pwd"), + button("q", " Quit", ":qa"), + }, + opts = { + position = "center", + spacing = 1, + }, + } + local section = { + header = header, + buttons = buttons, + message = greetHeading, + footer = { + type = "text", + val = {}, + opts = { + position = "center", + hl = "Comment", + }, + } + } + local opts = { + layout = { + { type = "padding", val = function() return math.floor(vim.o.lines * 0.25) end }, + section.header, + { type = "padding", val = 1 }, + section.message, + { type = "padding", val = 2 }, + section.buttons, + { type = "padding", val = 1 }, + section.footer, + }, + opts = { + }, + } + alpha.setup(opts) + local autocmd = vim.api.nvim_create_autocmd -- Create autocommand + autocmd("User", { + pattern = "LazyVimStarted", + callback = function() + local stats = require("lazy").stats() + -- local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) + local ms = stats.startuptime + local version = " v" .. + vim.version().major .. "." .. vim.version().minor .. "." .. vim.version().patch + local plugins = "⚡plugins " .. stats.loaded .. "/" .. stats.count .. " in " .. ms .. "ms" + local footer = version .. "\t" .. plugins .. "\n" + section.footer.val = footer + pcall(vim.cmd.AlphaRedraw) + end, + }) + -- Disable the statusline, tabline and cmdline while the alpha dashboard is open + autocmd('User', { + pattern = 'AlphaReady', + desc = 'disable status, tabline and cmdline for alpha', + callback = function() + vim.go.laststatus = 0 + vim.opt.showtabline = 0 + vim.opt.cmdheight = 0 + end, + }) + autocmd('BufUnload', { + buffer = 0, + desc = 'enable status, tabline and cmdline after alpha', + callback = function() + vim.go.laststatus = 2 + vim.opt.showtabline = 2 + vim.opt.cmdheight = 1 + end, + }) + end +} diff --git a/config/nvim/lua/plugins/bufferline.lua b/config/nvim/lua/plugins/bufferline.lua new file mode 100644 index 00000000..48ea2125 --- /dev/null +++ b/config/nvim/lua/plugins/bufferline.lua @@ -0,0 +1,21 @@ +return { + 'akinsho/bufferline.nvim', + dependencies = 'nvim-tree/nvim-web-devicons', + event = { "BufReadPre", "BufNewFile" }, + config = function() + vim.keymap.set('n', '', 'BufferLineCycleNext', {}) + vim.keymap.set('n', '', 'BufferLineCyclePrev', {}) + local bufferline = require('bufferline') + require("bufferline").setup { + options = { + -- mode = "tabs", + style_preset = bufferline.style_preset.minimal, + always_show_bufferline = false, + show_buffer_close_icons = false, + show_close_icon = false, + color_icons = true, + diagnostics = "nvim_lsp", + }, + } + end +} diff --git a/config/nvim/lua/plugins/bufpreview.lua b/config/nvim/lua/plugins/bufpreview.lua new file mode 100644 index 00000000..42d78a56 --- /dev/null +++ b/config/nvim/lua/plugins/bufpreview.lua @@ -0,0 +1,10 @@ +return { + 'kat0h/bufpreview.vim', + build = 'deno task prepare', + ft = { + "markdown", + }, + dependencies = { + 'vim-denops/denops.vim' + } +} diff --git a/config/nvim/lua/plugins/copilot.lua b/config/nvim/lua/plugins/copilot.lua new file mode 100644 index 00000000..15e9bb89 --- /dev/null +++ b/config/nvim/lua/plugins/copilot.lua @@ -0,0 +1,8 @@ +return { + "github/copilot.vim", + event = { "BufReadPre", "BufNewFile" }, + filetypes = { + markdown = true, + help = true, + }, +} diff --git a/config/nvim/lua/plugins/fern.lua b/config/nvim/lua/plugins/fern.lua new file mode 100644 index 00000000..55d778c2 --- /dev/null +++ b/config/nvim/lua/plugins/fern.lua @@ -0,0 +1,28 @@ +return { + 'lambdalisue/fern.vim', + keys = { + { "", ":Fern . -reveal=% -drawer -toggle -width=40", desc = "toggle fern" }, + }, + dependencies = { + { 'lambdalisue/nerdfont.vim', }, + { + 'lambdalisue/fern-renderer-nerdfont.vim', + config = function() + vim.g['fern#renderer'] = "nerdfont" + -- vim.g['fern#renderer#nerdfont#root_symbol'] = "" + end + }, + { + 'lambdalisue/glyph-palette.vim', + config = function() + vim.cmd [[ + augroup my_glyph_palette + autocmd! * + autocmd FileType fern call glyph_palette#apply() + autocmd FileType nerdtree,startify call glyph_palette#apply() + augroup END + ]] + end + } + }, +} diff --git a/config/nvim/lua/plugins/fugitive.lua b/config/nvim/lua/plugins/fugitive.lua new file mode 100644 index 00000000..475a5697 --- /dev/null +++ b/config/nvim/lua/plugins/fugitive.lua @@ -0,0 +1,15 @@ +-- Git related plugins +return { + { + 'tpope/vim-fugitive', + event = { "BufReadPre", "BufNewFile" }, + -- event = "VeryLazy", + keys = { + { "git", mode = "c", "Git", desc = "OpenGit" }, + }, + dependencies = + { + 'tpope/vim-rhubarb', + }, + }, +} diff --git a/config/nvim/lua/plugins/gitssigns.lua b/config/nvim/lua/plugins/gitssigns.lua new file mode 100644 index 00000000..7c490e2f --- /dev/null +++ b/config/nvim/lua/plugins/gitssigns.lua @@ -0,0 +1,21 @@ +return { + -- Adds git releated signs to the gutter, as well as utilities for managing changes + 'lewis6991/gitsigns.nvim', + event = { "BufReadPre", "BufNewFile" }, + opts = { + -- See `:help gitsigns.txt` + signs = { + add = { text = '+' }, + change = { text = '~' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + }, + on_attach = function(bufnr) + -- vim.keymap.set('n', 'gp', require('gitsigns').prev_hunk, + -- { buffer = bufnr, desc = '[G]o to [P]revious Hunk' }) + -- vim.keymap.set('n', 'gn', require('gitsigns').next_hunk, { buffer = bufnr, desc = '[G]o to [N]ext Hunk' }) + -- vim.keymap.set('n', 'ph', require('gitsigns').preview_hunk, { buffer = bufnr, desc = '[P]review [H]unk' }) + end, + }, +} diff --git a/config/nvim/lua/plugins/lspsaga.lua b/config/nvim/lua/plugins/lspsaga.lua new file mode 100644 index 00000000..e4931c6b --- /dev/null +++ b/config/nvim/lua/plugins/lspsaga.lua @@ -0,0 +1,84 @@ +return { + 'nvimdev/lspsaga.nvim', + event = { "BufReadPre", "BufNewFile" }, + config = function() + require("lspsaga").setup({ + ui = { + title = false, + border = "single", + }, + symbol_in_winbar = { + enable = true, + }, + code_action_lightbulb = { + enable = true, + }, + show_outline = { + win_width = 50, + auto_preview = false, + }, + }) + + local keymap = vim.keymap.set + -- LSP finder - Find the symbol's definition + -- If there is no definition, it will instead be hidden + -- When you use an action in finder like "open vsplit", + -- you can use to jump back + keymap("n", "gh", "Lspsaga finder") + + keymap({ "n", "v" }, "ga", "Lspsaga code_action") + + -- Peek definition + -- You can edit the file containing the definition in the floating window + -- It also supports open/vsplit/etc operations, do refer to "definition_action_keys" + -- It also supports tagstack + -- Use to jump back + keymap("n", "gp", "Lspsaga peek_definition") + + -- Go to definition + keymap("n", "gd", "Lspsaga goto_definition") + + -- Show line diagnostics + -- You can pass argument ++unfocus to + -- unfocus the show_line_diagnostics floating window + keymap("n", "sl", "Lspsaga show_line_diagnostics") + + -- Show buffer diagnostics + keymap("n", "sb", "Lspsaga show_buf_diagnostics") + + -- Show workspace diagnostics + keymap("n", "sw", "Lspsaga show_workspace_diagnostics") + + -- Show cursor diagnostics + keymap("n", "sc", "Lspsaga show_cursor_diagnostics") + + -- Diagnostic jump + -- You can use to jump back to your previous location + keymap("n", "g]", "Lspsaga diagnostic_jump_next") + keymap("n", "g[", "Lspsaga diagnostic_jump_prev") + + -- Toggle outline + keymap("n", "o", "Lspsaga outline") + + -- Hover Doc + -- If there is no hover doc, + -- there will be a notification stating that + -- there is no information available. + -- To disable it just use ":Lspsaga hover_doc ++quiet" + -- Pressing the key twice will enter the hover window + keymap("n", "K", "Lspsaga hover_doc") + + -- If you want to keep the hover window in the top right hand corner, + -- you can pass the ++keep argument + -- Note that if you use hover with ++keep, pressing this key again will + -- close the hover window. If you want to jump to the hover window + -- you should use the wincmd command "w" + keymap("n", "K", "Lspsaga hover_doc ++keep") + + -- Call hierarchy + keymap("n", "ci", "Lspsaga incoming_calls") + keymap("n", "co", "Lspsaga outgoing_calls") + + keymap("n", "t", "Lspsaga term_toggle") + end, +} diff --git a/config/nvim/lua/plugins/lualine.lua b/config/nvim/lua/plugins/lualine.lua new file mode 100644 index 00000000..8fd8154a --- /dev/null +++ b/config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,214 @@ +return { + -- See `:help lualine.txt` + -- Set lualine as statusline + 'nvim-lualine/lualine.nvim', + event = { "BufReadPre", "BufNewFile" }, + config = function() + -- Eviline config for lualine + -- Author: shadmansaleh + -- Credit: glepnir + local lualine = require('lualine') + + -- Color table for highlights + -- stylua: ignore + local colors = { + bg = '#202328', + fg = '#bbc2cf', + yellow = '#ECBE7B', + cyan = '#008080', + darkblue = '#081633', + green = '#98be65', + orange = '#FF8800', + violet = '#a9a1e1', + magenta = '#c678dd', + blue = '#51afef', + red = '#ec5f67', + } + + local conditions = { + buffer_not_empty = function() + return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 + end, + hide_in_width = function() + return vim.fn.winwidth(0) > 80 + end, + check_git_workspace = function() + local filepath = vim.fn.expand('%:p:h') + local gitdir = vim.fn.finddir('.git', filepath .. ';') + return gitdir and #gitdir > 0 and #gitdir < #filepath + end, + } + + -- Config + local config = { + options = { + -- Disable sections and component separators + component_separators = '', + section_separators = '', + theme = { + -- We are going to use lualine_c an lualine_x as left and + -- right section. Both are highlighted by c theme . So we + -- are just setting default looks o statusline + normal = { c = { fg = colors.fg, bg = colors.bg } }, + inactive = { c = { fg = colors.fg, bg = colors.bg } }, + }, + }, + sections = { + -- these are to remove the defaults + lualine_a = {}, + lualine_b = {}, + lualine_y = {}, + lualine_z = {}, + -- These will be filled later + lualine_c = {}, + lualine_x = {}, + }, + inactive_sections = { + -- these are to remove the defaults + lualine_a = {}, + lualine_b = {}, + lualine_y = {}, + lualine_z = {}, + lualine_c = {}, + lualine_x = {}, + }, + } + + -- Inserts a component in lualine_c at left section + local function ins_left(component) + table.insert(config.sections.lualine_c, component) + end + + -- Inserts a component in lualine_x at right section + local function ins_right(component) + table.insert(config.sections.lualine_x, component) + end + + ins_left { + function() + return '▊' + end, + color = { fg = colors.blue }, -- Sets highlighting of component + padding = { left = 0, right = 1 }, -- We don't need space before this + } + + ins_left { + -- mode component + function() + return '(^-^)/' + end, + color = function() + -- auto change color according to neovims mode + local mode_color = { + n = colors.red, + i = colors.green, + v = colors.blue, + [''] = colors.blue, + V = colors.blue, + c = colors.magenta, + no = colors.red, + s = colors.orange, + S = colors.orange, + [''] = colors.orange, + ic = colors.yellow, + R = colors.violet, + Rv = colors.violet, + cv = colors.red, + ce = colors.red, + r = colors.cyan, + rm = colors.cyan, + ['r?'] = colors.cyan, + ['!'] = colors.red, + t = colors.red, + } + return { fg = mode_color[vim.fn.mode()] } + end, + padding = { right = 1 }, + } + + ins_left { + 'branch', + icon = '', + color = { fg = colors.violet, gui = 'bold' }, + } + + ins_left { + 'diff', + -- Is it me or the symbol for modified us really weird + diff_color = { + added = { fg = colors.green }, + modified = { fg = colors.orange }, + removed = { fg = colors.red }, + }, + -- symbols = { added = ' ', modified = '󰝤 ', removed = ' ' }, + -- cond = conditions.hide_in_width, + symbols = { added = '+', modified = '~', removed = '-' }, -- Changes the symbols used by the diff. + } + + -- Insert mid section. You can make any number of sections in neovim :) + -- for lualine it's any number greater then 2 + ins_left { + function() + return '%=' + end, + } + + ins_right { + 'diagnostics', + sources = { 'nvim_diagnostic' }, + symbols = { + error = ' ', + -- error = ' ', + warn = ' ', + -- info = ' ', + info = ' ', + hint = ' ' + }, + diagnostics_color = { + color_error = { fg = colors.red }, + color_warn = { fg = colors.yellow }, + color_info = { fg = colors.cyan }, + }, + } + + -- Add components to right sections + ins_right { + 'searchcount', + } + + ins_right { + 'filetype', + } + + ins_right { + -- filesize component + 'filesize', + cond = conditions.buffer_not_empty, + } + + ins_right { + 'o:encoding', -- option component same as &encoding in viml + fmt = string.upper, -- I'm not sure why it's upper case either ;) + cond = conditions.hide_in_width, + color = { fg = colors.green, gui = 'bold' }, + } + + ins_right { + 'fileformat', + fmt = string.upper, + icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh + color = { fg = colors.green, gui = 'bold' }, + } + + ins_right { + function() + return '▊' + end, + color = { fg = colors.blue }, + padding = { left = 1 }, + } + + -- Now don't forget to initialize lualine + lualine.setup(config) + end +} diff --git a/config/nvim/lua/plugins/mason.lua b/config/nvim/lua/plugins/mason.lua new file mode 100644 index 00000000..d563b449 --- /dev/null +++ b/config/nvim/lua/plugins/mason.lua @@ -0,0 +1,22 @@ +return { + 'williamboman/mason.nvim', + cmd = { + "Mason", + "MasonInstall", + "MasonUninstall", + "MasonUninstallAll", + "MasonLog", + "MasonUpdate", -- AstroNvim extension here as well + "MasonUpdateAll", -- AstroNvim specific + }, + opts = { + ui = { + icons = { + package_installed = "✓", + package_uninstalled = "✗", + package_pending = "⟳", + }, + }, + }, + build = ":MasonUpdate", +} diff --git a/config/nvim/lua/plugins/mini.lua b/config/nvim/lua/plugins/mini.lua new file mode 100644 index 00000000..ede6a719 --- /dev/null +++ b/config/nvim/lua/plugins/mini.lua @@ -0,0 +1,22 @@ +return { + { + 'echasnovski/mini.indentscope', + version = '*', + event = { "BufReadPre", "BufNewFile" }, + config = function() + require('mini.indentscope').setup( + { + -- Which character to use for drawing scope indicator + -- '│', '|', '¦', '┆', '┊', '' + symbol = '│', + } + ) + end + }, + { + 'echasnovski/mini.splitjoin', + event = { "BufReadPre", "BufNewFile" }, + opts = { + }, + }, +} diff --git a/config/nvim/lua/plugins/modes.lua b/config/nvim/lua/plugins/modes.lua new file mode 100644 index 00000000..ad6bc36c --- /dev/null +++ b/config/nvim/lua/plugins/modes.lua @@ -0,0 +1,8 @@ +return { + 'mvllow/modes.nvim', + -- event = "VeryLazy", + event = { "BufReadPre", "BufNewFile" }, + config = function() + require('modes').setup() + end +} diff --git a/config/nvim/lua/plugins/neodev.lua b/config/nvim/lua/plugins/neodev.lua new file mode 100644 index 00000000..bba370c3 --- /dev/null +++ b/config/nvim/lua/plugins/neodev.lua @@ -0,0 +1,8 @@ +return { + -- Additional lua configuration, makes nvim stuff amazing! + 'folke/neodev.nvim', + event = { "BufReadPre", "BufNewFile" }, + config = function() + require('neodev').setup() + end +} diff --git a/config/nvim/lua/plugins/neotest.lua b/config/nvim/lua/plugins/neotest.lua new file mode 100644 index 00000000..f15b5f82 --- /dev/null +++ b/config/nvim/lua/plugins/neotest.lua @@ -0,0 +1,15 @@ +return { + "nvim-neotest/neotest", + -- optional = true, + dependencies = { + "nvim-neotest/neotest-go", + }, + opts = { + adapters = { + ["neotest-go"] = { + -- Here we can set options for neotest-go, e.g. + -- args = { "-tags=integration" } + }, + }, + }, +} diff --git a/config/nvim/lua/plugins/noice.lua b/config/nvim/lua/plugins/noice.lua new file mode 100644 index 00000000..b1a8c76c --- /dev/null +++ b/config/nvim/lua/plugins/noice.lua @@ -0,0 +1,55 @@ +return { + "folke/noice.nvim", + event = "VeryLazy", + opts = { + -- add any options here + }, + dependencies = { + -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries + "MunifTanjim/nui.nvim", + -- OPTIONAL: + -- `nvim-notify` is only needed, if you want to use the notification view. + -- If not available, we use `mini` as the fallback + -- "rcarriga/nvim-notify", + }, + config = function() + require("noice").setup({ + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, + }, + }, + cmdline = { + view = "cmdline", + format = { + cmdline = { icon = "|ω·`)" }, + search_down = { icon = "|ω·`)⌄?" }, + search_up = { icon = "|ω·`)⌃?" }, + filter = { icon = "|ω·`)$" }, + lua = { icon = "" }, + help = { icon = "|ω·`)?" }, + }, + }, + -- you can enable a preset for easier configuration + presets = { + bottom_search = true, -- use a classic bottom cmdline for search + command_palette = true, -- position the cmdline and popupmenu together + long_message_to_split = true, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = false, -- add a border to hover docs and signature help + }, + }) + -- require("notify").setup({ + -- -- background_colour = "NotifyBackground", + -- fps = 30, + -- level = 2, + -- minimum_width = 50, + -- render = "compact", + -- stages = "fade", + -- top_down = true + -- }) + end +} diff --git a/config/nvim/lua/plugins/null-ls.lua b/config/nvim/lua/plugins/null-ls.lua new file mode 100644 index 00000000..789a5264 --- /dev/null +++ b/config/nvim/lua/plugins/null-ls.lua @@ -0,0 +1,36 @@ +return { + "jose-elias-alvarez/null-ls.nvim", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + local null_ls = require('null-ls') + local sources = { + null_ls.builtins.diagnostics.cspell.with({ + diagnostics_postprocess = function(diagnostic) + -- レベルをWARNに変更(デフォルトはERROR) + diagnostic.severity = vim.diagnostic.severity["WARN"] + end, + condition = function() + -- cspellが実行できるときのみ有効 + return vim.fn.executable('cspell') > 0 + end, + -- 起動時に設定ファイル読み込み + extra_args = { '--config', '~/.config/cspell/cspell.json' } + }), + null_ls.builtins.diagnostics.hadolint, + null_ls.builtins.formatting.terraform_fmt, + null_ls.builtins.diagnostics.terraform_validate, + null_ls.builtins.formatting.stylua, + } + null_ls.setup({ + sources = sources, + }) + end, + dependencies = { + "mason.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "hadolint" }) + end, + }, +} diff --git a/config/nvim/lua/plugins/nvim-cmp.lua b/config/nvim/lua/plugins/nvim-cmp.lua new file mode 100644 index 00000000..fd98827f --- /dev/null +++ b/config/nvim/lua/plugins/nvim-cmp.lua @@ -0,0 +1,126 @@ +-- [[ Configure nvim-cmp ]] +-- See `:help cmp` + +return { + -- Autocompletion + 'hrsh7th/nvim-cmp', + event = "InsertEnter", + dependencies = { + -- Snippet Engine & its associated nvim-cmp source + 'L3MON4D3/LuaSnip', + 'saadparwaiz1/cmp_luasnip', + + -- Adds LSP completion capabilities + 'hrsh7th/cmp-nvim-lsp', + + -- Adds a number of user-friendly snippets + 'rafamadriz/friendly-snippets', + + { + 'onsails/lspkind.nvim', + }, + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + { + "zbirenbaum/copilot.lua", + -- cmd = "Copilot", + build = ":Copilot auth", + opts = { + cond = false, + suggestion = { enabled = false }, + panel = { enabled = false }, + filetypes = { + markdown = true, + help = true, + }, + }, + }, + { + "zbirenbaum/copilot-cmp", + dependencies = "copilot.lua", + -- 使ってない + cond = false, + opts = {}, + config = function(_, opts) + local copilot_cmp = require("copilot_cmp") + copilot_cmp.setup(opts) + end, + } + }, + config = function() + local cmp = require('cmp') + local luasnip = require 'luasnip' + local lspkind = require('lspkind') + require('luasnip.loaders.from_vscode').lazy_load() + luasnip.config.setup {} + cmp.setup({ + enabled = true, + completion = { + completeopt = 'menu,menuone,noinsert', + }, + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete {}, + [''] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + }), + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + { name = 'buffer' }, + { name = 'path' }, + -- { name = "copilot" }, + }), + formatting = { + fields = { 'abbr', 'kind', 'menu' }, + format = lspkind.cmp_format({ + mode = 'symbol_text', + maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) + ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first) + menu = ({ + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + luasnip = "[LuaSnip]", + }), + + symbol_map = { + Constructor = "", + Field = "ﰠ", + Variable = "", + Class = "ﴯ", + Interface = "", + Module = "", + Property = "ﰠ", + Unit = "塞", + Value = "", + Enum = "", + Keyword = "", + Snippet = "", + EnumMember = "", + Struct = "פּ", + Event = "", + TypeParameter = "", + Copilot = "", + } + }), + }, + experimental = { + ghost_text = true, + }, + }) + end +} diff --git a/config/nvim/lua/plugins/nvim-dap.lua b/config/nvim/lua/plugins/nvim-dap.lua new file mode 100644 index 00000000..c2b330c1 --- /dev/null +++ b/config/nvim/lua/plugins/nvim-dap.lua @@ -0,0 +1,13 @@ +return { + "mfussenegger/nvim-dap", + -- optional = true, + dependencies = { + { + "mason.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + table.insert(opts.ensure_installed, "delve") + end, + }, + }, +} diff --git a/config/nvim/lua/plugins/nvim-lspconfig.lua b/config/nvim/lua/plugins/nvim-lspconfig.lua new file mode 100644 index 00000000..16fcfa18 --- /dev/null +++ b/config/nvim/lua/plugins/nvim-lspconfig.lua @@ -0,0 +1,69 @@ +return { + -- LSP Configuration & Plugins + "neovim/nvim-lspconfig", + -- event = "VeryLazy", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { + { + "williamboman/mason-lspconfig.nvim", + cmd = { "LspInstall", "LspUninstall" }, + config = function() + local mason_lspconfig = require("mason-lspconfig") + mason_lspconfig.setup({ + ensure_installed = { "lua_ls" }, + }) + local capabilities = require("cmp_nvim_lsp").default_capabilities() + mason_lspconfig.setup_handlers({ function(server) + local opt = { + -- -- Function executed when the LSP server startup + -- on_attach = function(client, bufnr) + -- local opts = { noremap=true, silent=true } + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()', opts) + -- vim.cmd 'autocmd BufWritePre * lua vim.lsp.buf.formatting_sync(nil, 1000)' + -- end, + capabilities = capabilities, + } + require("lspconfig")[server].setup(opt) + end, + }) + end, + }, + { + "lukas-reineke/lsp-format.nvim", + config = function() + require("lsp-format").setup {} + + local on_attach = function(client) + require("lsp-format").on_attach(client) + -- ... custom code ... + end + require("lspconfig").gopls.setup { on_attach = on_attach } + require("lspconfig").lua_ls.setup { on_attach = on_attach } + end + }, + }, + config = function() + -- keyboard shortcut + -- vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()') + vim.keymap.set("n", "gf", "lua vim.lsp.buf.formatting()") + vim.keymap.set("n", "gr", "lua vim.lsp.buf.references()") + -- vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()') + vim.keymap.set("n", "gD", "lua vim.lsp.buf.declaration()") + vim.keymap.set("n", "gi", "lua vim.lsp.buf.implementation()") + -- vim.keymap.set('n', 'gt', 'lua vim.lsp.buf.type_definition()') + vim.keymap.set("n", "rn", "lua vim.lsp.buf.rename()") + vim.keymap.set("n", "ge", "lua vim.diagnostic.open_float()") + -- vim.keymap.set('n', 'g]', 'lua vim.diagnostic.goto_next()') + -- vim.keymap.set('n', 'g[', 'lua vim.diagnostic.goto_prev()') + -- LSP handlers + vim.lsp.handlers["textDocument/publishDiagnostics"] = + vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { virtual_text = true }) + -- Reference highlight + vim.cmd([[ + set updatetime=500 + highlight LspReferenceText cterm=underline ctermfg=1 ctermbg=8 gui=underline guifg=#A00000 guibg=#104040 + highlight LspReferenceRead cterm=underline ctermfg=1 ctermbg=8 gui=underline guifg=#A00000 guibg=#104040 + highlight LspReferenceWrite cterm=underline ctermfg=1 ctermbg=8 gui=underline guifg=#A00000 guibg=#104040 + ]]) + end, +} diff --git a/config/nvim/lua/plugins/sleuth.lua b/config/nvim/lua/plugins/sleuth.lua new file mode 100644 index 00000000..38c286ca --- /dev/null +++ b/config/nvim/lua/plugins/sleuth.lua @@ -0,0 +1,5 @@ +return { + -- Detect tabstop and shiftwidth automatically + 'tpope/vim-sleuth', + event = { "BufReadPre", "BufNewFile" }, +} diff --git a/config/nvim/lua/plugins/telescope.lua b/config/nvim/lua/plugins/telescope.lua new file mode 100644 index 00000000..a9caaffb --- /dev/null +++ b/config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,67 @@ +return { + 'nvim-telescope/telescope.nvim', + cmd = { + "Telescope", + }, + event = { "BufReadPre", "BufNewFile" }, + keys = { + { "m", "Telescope marks", desc = "Jump to Mark" }, + }, + dependencies = { + 'nvim-lua/plenary.nvim', + { + "nvim-telescope/telescope-frecency.nvim", + config = function() + require "telescope".load_extension("frecency") + end, + dependencies = { "kkharji/sqlite.lua" } + }, + { + "nvim-telescope/telescope-fzf-native.nvim", + build = "make", + config = function() + require("telescope").load_extension("fzf") + end, + cond = function() + return vim.fn.executable 'make' == 1 + end, + } + }, + config = function() + -- [[ Configure Telescope ]] + -- See `:help telescope` and `:help telescope.setup()` + require("telescope").setup { + defaults = { + mappings = { + i = { + [''] = false, + [''] = false, + }, + }, + }, + extensions = { + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + case_mode = "smart_case", -- or "ignore_case" or "respect_case" + -- the default case_mode is "smart_case" + } + } + } + + -- Enable telescope fzf native, if installed + pcall(require('telescope').load_extension, 'fzf') + + -- See `:help telescope.builtin` + vim.keymap.set('n', 'f', require('telescope.builtin').find_files, { desc = 'search [F]iles' }) + vim.keymap.set('n', 'g', require('telescope.builtin').live_grep, { desc = 'search by [G]rep' }) + vim.keymap.set('n', 'h', require('telescope.builtin').help_tags, { desc = 'search [H]elp' }) + vim.keymap.set('n', 'w', require('telescope.builtin').grep_string, { desc = 'search current [W]ord' }) + -- vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) + vim.keymap.set('n', 'd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) + vim.keymap.set('n', 'b', require('telescope.builtin').buffers, { desc = 'Find existing [B]uffers' }) + vim.api.nvim_set_keymap("n", "", "lua require('telescope').extensions.frecency.frecency()", + { noremap = true, silent = true }) + end, +} diff --git a/config/nvim/lua/plugins/theme.lua b/config/nvim/lua/plugins/theme.lua new file mode 100644 index 00000000..c734e9ac --- /dev/null +++ b/config/nvim/lua/plugins/theme.lua @@ -0,0 +1,40 @@ +return { + { + -- Theme inspired by Atom + 'navarasu/onedark.nvim', + }, + { + 'rebelot/kanagawa.nvim', + }, + { + -- Theme inspired by Atom + 'ayu-theme/ayu-vim', + priority = 1000, + event = "VimEnter", + config = function() + -- 背景透過 + -- vim.cmd([[hi! Normal ctermbg=NONE guibg=NONE]]) + vim.g.ayucolor = "dark" -- for dark version of theme + vim.cmd.colorscheme "ayu" + vim.cmd([[hi! Visual cterm=reverse gui=reverse]]) + vim.cmd([[highlight FernRootSymbol ctermfg=White guifg=#ffffff]]) + end, + }, + { + 'catppuccin/nvim', + name = "catppuccin", + opts = { + term_colors = true, + transparent_background = true, + }, + config = function() + -- vim.cmd.colorscheme "catppuccin" + vim.keymap.set("n", "v", function() + local cat = require("catppuccin") + cat.options.transparent_background = not cat.options.transparent_background + cat.compile() + vim.cmd.colorscheme(vim.g.colors_name) + end) + end, + } +} diff --git a/config/nvim/lua/plugins/todo-comments.lua b/config/nvim/lua/plugins/todo-comments.lua new file mode 100644 index 00000000..faf1ef4d --- /dev/null +++ b/config/nvim/lua/plugins/todo-comments.lua @@ -0,0 +1,12 @@ +return { + { + "folke/todo-comments.nvim", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { "nvim-lua/plenary.nvim" }, + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + }, +} diff --git a/config/nvim/lua/plugins/treesitter.lua b/config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 00000000..f4d8f2d6 --- /dev/null +++ b/config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,111 @@ +return { + -- Highlight, edit, and navigate code + 'nvim-treesitter/nvim-treesitter', + event = "VeryLazy", + dependencies = { + { + 'nvim-treesitter/nvim-treesitter-textobjects', + }, + }, + build = ':TSUpdate', + config = function() + -- require("nvim-treesitter.configs").setup({ + -- auto_install = true, + -- highlight = { + -- enable = true, + -- -- disable = {"markdown"}, + -- }, + -- }) + + -- [[ Configure Treesitter ]] + -- See `:help nvim-treesitter` + require('nvim-treesitter.configs').setup { + -- Add languages to be installed here that you want installed for treesitter + ensure_installed = { + 'go', + 'gosum', + 'gomod', + 'gowork', + 'lua', + 'python', + 'rust', + 'typescript', + 'tsx', + 'vimdoc', + 'vim', + 'kotlin', + 'dockerfile', + "json", + "json5", + "jsonc", + "terraform", + "hcl", + }, + + -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!) + auto_install = true, + + highlight = { enable = true }, + indent = { enable = true }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = '', + node_incremental = '', + scope_incremental = '', + node_decremental = '', + }, + }, + textobjects = { + select = { + enable = true, + lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim + keymaps = { + -- You can use the capture groups defined in textobjects.scm + ['aa'] = '@parameter.outer', + ['ia'] = '@parameter.inner', + ['af'] = '@function.outer', + ['if'] = '@function.inner', + ['ac'] = '@class.outer', + ['ic'] = '@class.inner', + }, + }, + move = { + enable = true, + set_jumps = true, -- whether to set jumps in the jumplist + goto_next_start = { + [']m'] = '@function.outer', + [']]'] = '@class.outer', + }, + goto_next_end = { + [']M'] = '@function.outer', + [']['] = '@class.outer', + }, + goto_previous_start = { + ['[m'] = '@function.outer', + ['[['] = '@class.outer', + }, + goto_previous_end = { + ['[M'] = '@function.outer', + ['[]'] = '@class.outer', + }, + }, + swap = { + enable = true, + swap_next = { + ['a'] = '@parameter.inner', + }, + swap_previous = { + ['A'] = '@parameter.inner', + }, + }, + }, + } + + -- Diagnostic keymaps + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) + vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) + vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) + end +} diff --git a/config/nvim/lua/plugins/trouble.lua b/config/nvim/lua/plugins/trouble.lua new file mode 100644 index 00000000..1179d9f1 --- /dev/null +++ b/config/nvim/lua/plugins/trouble.lua @@ -0,0 +1,10 @@ +return { + "folke/trouble.nvim", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { "nvim-tree/nvim-web-devicons" }, + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + }, +} diff --git a/config/nvim/lua/plugins/vimdoc-ja.lua b/config/nvim/lua/plugins/vimdoc-ja.lua new file mode 100644 index 00000000..cce4a597 --- /dev/null +++ b/config/nvim/lua/plugins/vimdoc-ja.lua @@ -0,0 +1,8 @@ +return { + 'vim-jp/vimdoc-ja', + lazy = true, + keys = { + { "h", mode = "c", }, + }, + -- ft = { "help", }, +} diff --git a/config/nvim/lua/plugins/which-key.lua b/config/nvim/lua/plugins/which-key.lua new file mode 100644 index 00000000..da890915 --- /dev/null +++ b/config/nvim/lua/plugins/which-key.lua @@ -0,0 +1,8 @@ +return { + 'folke/which-key.nvim', + lazy = true, + cmd = { + "WhichKey", + }, + opts = {}, +} diff --git a/config/nvim/lua/theme.lua b/config/nvim/lua/theme.lua new file mode 100644 index 00000000..58c0d387 --- /dev/null +++ b/config/nvim/lua/theme.lua @@ -0,0 +1,10 @@ +-- [[ Highlight on yank ]] +-- See `:help vim.highlight.on_yank()` +local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) +vim.api.nvim_create_autocmd('TextYankPost', { + callback = function() + vim.highlight.on_yank() + end, + group = highlight_group, + pattern = '*', +}) diff --git a/config/nvim/settings/init/plug.vim b/config/nvim/settings/init/plug.vim index 930f9888..cd30c69f 100644 --- a/config/nvim/settings/init/plug.vim +++ b/config/nvim/settings/init/plug.vim @@ -1,86 +1,97 @@ - -call plug#begin('~/.vim/plugged') - Plug 'vim-jp/vimdoc-ja' - - Plug 'mattn/vim-goimports' - Plug 'tyru/open-browser.vim' - Plug 'mechatroner/rainbow_csv' - - " fern - Plug 'lambdalisue/fern.vim' - Plug 'lambdalisue/fern-git-status.vim' - - Plug 'hashivim/vim-terraform' - - " react - Plug 'pangloss/vim-javascript' - Plug 'leafgarland/typescript-vim' - Plug 'peitalin/vim-jsx-typescript' - Plug 'maxmellon/vim-jsx-pretty' - - " UML - Plug 'weirongxu/plantuml-previewer.vim' - Plug 'aklt/plantuml-syntax' - - Plug 'kannokanno/previm' - " Rust - Plug 'rust-lang/rust.vim' - Plug 'mattn/webapi-vim' - - " git - Plug 'airblade/vim-gitgutter' - Plug 'tpope/vim-fugitive' - Plug 'tpope/vim-rhubarb' - - Plug 'hashivim/vim-terraform' - - Plug '/Users/s09104/ghq/github.com/yuucu/vimq.vim' - - Plug 'MTDL9/vim-log-highlighting' - Plug 'tyru/open-browser-github.vim' - Plug 'simeji/winresizer' - Plug 'kdheepak/lazygit.nvim' - - Plug 'udalov/kotlin-vim' - - Plug 'neovim/nvim-lspconfig' - Plug 'williamboman/mason.nvim' - Plug 'williamboman/mason-lspconfig.nvim' - Plug 'hrsh7th/nvim-cmp' - Plug 'hrsh7th/cmp-nvim-lsp' - Plug 'hrsh7th/vim-vsnip' - Plug 'j-hui/fidget.nvim' - Plug 'jjo/vim-cue' - - Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - Plug 'github/copilot.vim' - - - Plug 'kosayoda/nvim-lightbulb' - Plug 'antoinemadec/FixCursorHold.nvim' - Plug 'folke/trouble.nvim' - - Plug 'folke/lsp-colors.nvim' - - Plug 'nvim-lua/plenary.nvim' - Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.1' } - Plug 'nvim-telescope/telescope-frecency.nvim' - Plug 'kkharji/sqlite.lua' - - Plug 'sebdah/vim-delve' - Plug 'nvim-tree/nvim-web-devicons' - - " memo - Plug 'glidenote/memolist.vim' - " go install github.com/mattn/memo@latest - Plug 'delphinus/telescope-memo.nvim' - - " theme - Plug 'sainnhe/sonokai' - Plug 'nordtheme/vim' - Plug 'cocopon/iceberg.vim' - Plug 'AlexvZyl/nordic.nvim' - Plug 'junegunn/seoul256.vim' - Plug 'raphamorim/lucario' - Plug 'preservim/vim-colors-pencil' -call plug#end() +" call plug#begin('~/.vim/plugged') +" Plug 'vim-jp/vimdoc-ja' +" +" Plug 'mattn/vim-goimports' +" Plug 'tyru/open-browser.vim' +" Plug 'mechatroner/rainbow_csv' +" +" " fern +" Plug 'lambdalisue/fern.vim' +" Plug 'lambdalisue/fern-git-status.vim' +" Plug 'TheLeoP/fern-renderer-web-devicons.nvim' +" +" Plug 'hashivim/vim-terraform' +" +" " react +" Plug 'pangloss/vim-javascript' +" Plug 'leafgarland/typescript-vim' +" Plug 'peitalin/vim-jsx-typescript' +" Plug 'maxmellon/vim-jsx-pretty' +" +" " UML +" Plug 'weirongxu/plantuml-previewer.vim' +" Plug 'aklt/plantuml-syntax' +" +" Plug 'kannokanno/previm' " Rust +" Plug 'rust-lang/rust.vim' +" Plug 'mattn/webapi-vim' +" +" " git +" Plug 'airblade/vim-gitgutter' +" Plug 'tpope/vim-fugitive' +" Plug 'tpope/vim-rhubarb' +" +" Plug 'hashivim/vim-terraform' +" +" Plug '/Users/s09104/ghq/github.com/yuucu/vimq.vim' +" +" Plug 'MTDL9/vim-log-highlighting' +" Plug 'tyru/open-browser-github.vim' +" Plug 'simeji/winresizer' +" Plug 'kdheepak/lazygit.nvim' +" +" Plug 'udalov/kotlin-vim' +" +" Plug 'neovim/nvim-lspconfig' +" Plug 'williamboman/mason.nvim' +" Plug 'williamboman/mason-lspconfig.nvim' +" Plug 'jose-elias-alvarez/null-ls.nvim' +" " Plug 'jay-babu/mason-null-ls.nvim' +" Plug 'hrsh7th/nvim-cmp' +" Plug 'hrsh7th/cmp-nvim-lsp' +" Plug 'hrsh7th/vim-vsnip' +" Plug 'j-hui/fidget.nvim' +" Plug 'jjo/vim-cue' +" +" Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} +" Plug 'github/copilot.vim' +" +" +" Plug 'kosayoda/nvim-lightbulb' +" Plug 'antoinemadec/FixCursorHold.nvim' +" Plug 'folke/trouble.nvim' +" +" Plug 'folke/lsp-colors.nvim' +" +" Plug 'nvim-lua/plenary.nvim' +" Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.1' } +" Plug 'nvim-telescope/telescope-frecency.nvim' +" Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' } +" Plug 'kkharji/sqlite.lua' +" +" Plug 'sebdah/vim-delve' +" Plug 'nvim-tree/nvim-web-devicons' +" +" " memo +" Plug 'glidenote/memolist.vim' +" " go install github.com/mattn/memo@latest +" Plug 'delphinus/telescope-memo.nvim' +" +" " theme +" Plug 'sainnhe/sonokai' +" Plug 'nordtheme/vim' +" Plug 'cocopon/iceberg.vim' +" Plug 'AlexvZyl/nordic.nvim' +" Plug 'junegunn/seoul256.vim' +" Plug 'raphamorim/lucario' +" Plug 'preservim/vim-colors-pencil' +" Plug 'ayu-theme/ayu-vim' +" Plug 'sts10/vim-pink-moon' +" Plug 'water-sucks/darkrose.nvim' +" +" Plug 'echasnovski/mini.indentscope' +" Plug 'nvimdev/lspsaga.nvim' +" Plug 'onsails/lspkind.nvim' +" +" " Plug 'tani/vim-typo' +" call plug#end() diff --git a/config/nvim/settings/plugconfig/action.vim b/config/nvim/settings/plugconfig/action.vim deleted file mode 100644 index 4e53d1ca..00000000 --- a/config/nvim/settings/plugconfig/action.vim +++ /dev/null @@ -1 +0,0 @@ -autocmd CursorHold,CursorHoldI * lua require('nvim-lightbulb').update_lightbulb() diff --git a/config/nvim/settings/plugconfig/coc.vim.old b/config/nvim/settings/plugconfig/coc.vim.old deleted file mode 100644 index ee8d4e53..00000000 --- a/config/nvim/settings/plugconfig/coc.vim.old +++ /dev/null @@ -1,185 +0,0 @@ -" coc extensions -let g:coc_global_extensions = [ - \'coc-actions', - \'coc-calc', - \'coc-diagnostic', - \'coc-go', - \'coc-sql', - \'coc-rust-analyzer', - \'coc-sh', - \'coc-git', - \'coc-highlight', - \'coc-markdownlint', - \'coc-html', - \'coc-css', - \'coc-eslint', - \'coc-prettier', - \'coc-tslint-plugin', - \'coc-tsserver', - \'coc-vimlsp', - \'coc-snippets', - \'coc-json', - \'coc-swagger', - \'coc-toml', - \'coc-yaml' -\] - -" Set internal encoding of vim, not needed on neovim, since coc.nvim using some -" unicode characters in the file autoload/float.vim -set encoding=utf-8 - -" TextEdit might fail if hidden is not set. -set hidden - -" Some servers have issues with backup files, see #649. -set nobackup -set nowritebackup - -" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable -" delays and poor user experience. -set updatetime=300 - -" Don't pass messages to |ins-completion-menu|. -set shortmess+=c - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved. -if has("nvim-0.5.0") || has("patch-8.1.1564") - " Recently vim can merge signcolumn and number column into one - set signcolumn=number -else - set signcolumn=yes -endif - -" Use tab for trigger completion with characters ahead and navigate. -" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by -" other plugin before putting this into your config. -inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ coc#refresh() -inoremap pumvisible() ? "\" : "\" - -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" Use to trigger completion. -if has('nvim') - inoremap coc#refresh() -else - inoremap coc#refresh() -endif - -" Make auto-select the first completion item and notify coc.nvim to -" format on enter, could be remapped by other vim plugin -inoremap pumvisible() ? coc#_select_confirm() - \: "\u\\=coc#on_enter()\" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation. -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) - -" Use K to show documentation in preview window. -nnoremap K :call show_documentation() - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -" Applying codeAction to the selected region. -" Example: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) - -" Remap keys for applying codeAction to the current buffer. -nmap ac (coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap qf (coc-fix-current) - -" Run the Code Lens action on the current line. -nmap cl (coc-codelens-action) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if (coc-funcobj-i) -omap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap af (coc-funcobj-a) -xmap ic (coc-classobj-i) -omap ic (coc-classobj-i) -xmap ac (coc-classobj-a) -omap ac (coc-classobj-a) - -" Remap and for scroll float windows/popups. -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" -endif - -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap (coc-range-select) -xmap (coc-range-select) - -" Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocActionAsync('format') - -" Add `:OR` command for organize imports of the current buffer. -command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support. -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline. -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for CoCList -" Show all diagnostics. -nnoremap a :CocList diagnostics -" Manage extensions. -nnoremap e :CocList extensions -" Show commands. -nnoremap c :CocList commands -" Find symbol of current document. -nnoremap o :CocList outline -" Search workspace symbols. -nnoremap s :CocList -I symbols -" Do default action for next item. -nnoremap j :CocNext -" Do default action for previous item. -nnoremap k :CocPrev -" Resume latest coc list. -nnoremap p :CocListResume - -autocmd BufWritePre *.go :silent call CocAction('runCommand', 'editor.action.organizeImport') - -let g:coc_fzf_preview_fullscreen = 1 diff --git a/config/nvim/settings/plugconfig/fern.vim b/config/nvim/settings/plugconfig/fern.vim deleted file mode 100644 index 8f439650..00000000 --- a/config/nvim/settings/plugconfig/fern.vim +++ /dev/null @@ -1,4 +0,0 @@ - -" Ctrl+nでファイルツリーを表示/非表示する -nnoremap :Fern . -reveal=% -drawer -toggle -width=40 -let g:fern_disable_startup_warnings = 1 diff --git a/config/nvim/settings/plugconfig/fidget.lua b/config/nvim/settings/plugconfig/fidget.lua deleted file mode 100644 index 5225f060..00000000 --- a/config/nvim/settings/plugconfig/fidget.lua +++ /dev/null @@ -1 +0,0 @@ -require"fidget".setup{} diff --git a/config/nvim/settings/plugconfig/gitgutter.vim b/config/nvim/settings/plugconfig/gitgutter.vim deleted file mode 100644 index a99b40ec..00000000 --- a/config/nvim/settings/plugconfig/gitgutter.vim +++ /dev/null @@ -1,15 +0,0 @@ - -set signcolumn=yes - -let g:gitgutter_sign_added = '+' -let g:gitgutter_sign_modified = '>' -let g:gitgutter_sign_removed = '-' -let g:gitgutter_sign_removed_first_line = '^' -let g:gitgutter_sign_modified_removed = '<' - -" autocmd VimEnter,ColorScheme * highlight SignColumn guibg=bg ctermbg=bg - -" sign column color autocmd VimEnter,ColorScheme * highlight GitGutterAdd guifg=#000900 ctermfg=2 -" autocmd VimEnter,ColorScheme * highlight GitGutterChange guifg=#bbbb00 ctermfg=3 -" autocmd VimEnter,ColorScheme * highlight GitGutterDelete guifg=#ff2222 ctermfg=1 - diff --git a/config/nvim/settings/plugconfig/lazygit.vim b/config/nvim/settings/plugconfig/lazygit.vim deleted file mode 100644 index 40ee0c5c..00000000 --- a/config/nvim/settings/plugconfig/lazygit.vim +++ /dev/null @@ -1,8 +0,0 @@ -let g:lazygit_floating_window_winblend = 0 " transparency of floating window -let g:lazygit_floating_window_scaling_factor = 0.8 " scaling factor for floating window -let g:lazygit_floating_window_border_chars = ['╭', '╮', '╰', '╯'] " customize lazygit popup window corner characters -let g:lazygit_floating_window_use_plenary = 0 " use plenary.nvim to manage floating window if available -let g:lazygit_use_neovim_remote = 1 " fallback to 0 if neovim-remote is not installed - -" setup mapping to call :LazyGit -nnoremap l :LazyGitCurrentFile diff --git a/config/nvim/settings/plugconfig/mason.lua b/config/nvim/settings/plugconfig/mason.lua deleted file mode 100644 index 970bd38e..00000000 --- a/config/nvim/settings/plugconfig/mason.lua +++ /dev/null @@ -1,80 +0,0 @@ --- 1. LSP Sever management -require('mason').setup() -require('mason-lspconfig').setup_handlers({ function(server) - local opt = { - -- -- Function executed when the LSP server startup - -- on_attach = function(client, bufnr) - -- local opts = { noremap=true, silent=true } - -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()', opts) - -- vim.cmd 'autocmd BufWritePre * lua vim.lsp.buf.formatting_sync(nil, 1000)' - -- end, - capabilities = require('cmp_nvim_lsp').default_capabilities( - vim.lsp.protocol.make_client_capabilities() - ) - } - require('lspconfig')[server].setup(opt) -end }) - --- 2. build-in LSP function --- keyboard shortcut -vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()') -vim.keymap.set('n', 'gf', 'lua vim.lsp.buf.formatting()') -vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()') -vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()') -vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()') -vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()') -vim.keymap.set('n', 'gt', 'lua vim.lsp.buf.type_definition()') -vim.keymap.set('n', 'gn', 'lua vim.lsp.buf.rename()') -vim.keymap.set('n', 'ga', 'lua vim.lsp.buf.code_action()') -vim.keymap.set('n', 'ge', 'lua vim.diagnostic.open_float()') -vim.keymap.set('n', 'g]', 'lua vim.diagnostic.goto_next()') -vim.keymap.set('n', 'g[', 'lua vim.diagnostic.goto_prev()') --- LSP handlers -vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, { virtual_text = true } -) --- Reference highlight -vim.cmd [[ -set updatetime=500 -highlight LspReferenceText cterm=underline ctermfg=1 ctermbg=8 gui=underline guifg=#A00000 guibg=#104040 -highlight LspReferenceRead cterm=underline ctermfg=1 ctermbg=8 gui=underline guifg=#A00000 guibg=#104040 -highlight LspReferenceWrite cterm=underline ctermfg=1 ctermbg=8 gui=underline guifg=#A00000 guibg=#104040 -]] - --- 3. completion (hrsh7th/nvim-cmp) -local cmp = require("cmp") -cmp.setup({ - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - end, - }, - sources = { - { name = "nvim_lsp" }, - -- { name = "buffer" }, - -- { name = "path" }, - }, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [""] = cmp.mapping.confirm { select = true }, - }), - experimental = { - ghost_text = true, - }, -}) --- cmp.setup.cmdline('/', { --- mapping = cmp.mapping.preset.cmdline(), --- sources = { --- { name = 'buffer' } --- } --- }) --- cmp.setup.cmdline(":", { --- mapping = cmp.mapping.preset.cmdline(), --- sources = { --- { name = "path" }, --- { name = "cmdline" }, --- }, --- }) diff --git a/config/nvim/settings/plugconfig/memolist.vim b/config/nvim/settings/plugconfig/memolist.vim deleted file mode 100644 index 67308a48..00000000 --- a/config/nvim/settings/plugconfig/memolist.vim +++ /dev/null @@ -1,11 +0,0 @@ -let g:memolist_path = "~/.memolist/memo" -let g:memolist_memo_suffix = "md" -nnoremap mn :MemoNew -nnoremap ml :Telescope memo list -nnoremap mg :Telescope memo live_grep - -augroup MemoAutoCommit - autocmd! - autocmd BufEnter */.memolist/memo/*.md let b:auto_save = 0 - autocmd BufWritePost */.memolist/memo/*.md silent !memo commit -augroup END diff --git a/config/nvim/settings/plugconfig/telescope.lua b/config/nvim/settings/plugconfig/telescope.lua deleted file mode 100644 index 3638d91e..00000000 --- a/config/nvim/settings/plugconfig/telescope.lua +++ /dev/null @@ -1,20 +0,0 @@ - -local builtin = require('telescope.builtin') -vim.keymap.set('n', 'f', builtin.find_files, {}) -vim.keymap.set('n', 'g', builtin.live_grep, {}) -vim.keymap.set('n', 'b', builtin.buffers, {}) -vim.keymap.set('n', 'h', builtin.help_tags, {}) -vim.keymap.set('n', 'r', builtin.grep_string, {}) -vim.keymap.set('n', 'q', builtin.grep_string, {}) -vim.api.nvim_set_keymap("n", "", "lua require('telescope').extensions.frecency.frecency()", {noremap = true, silent = true}) - -local actions = require("telescope.actions") -require("telescope").setup{ - defaults = { - mappings = { - i = { - [""] = false - }, - }, - } -} diff --git a/config/nvim/settings/plugconfig/treesitter.lua b/config/nvim/settings/plugconfig/treesitter.lua deleted file mode 100644 index b05208e2..00000000 --- a/config/nvim/settings/plugconfig/treesitter.lua +++ /dev/null @@ -1,6 +0,0 @@ -require("nvim-treesitter.configs").setup({ - auto_install = true, - highlight = { - enable = true, - }, -}) diff --git a/config/nvim/settings/plugconfig/trouble.vim b/config/nvim/settings/plugconfig/trouble.vim deleted file mode 100644 index 73603cd4..00000000 --- a/config/nvim/settings/plugconfig/trouble.vim +++ /dev/null @@ -1,5 +0,0 @@ -nnoremap xx TroubleToggle -nnoremap xw TroubleToggle workspace_diagnostics -nnoremap xd TroubleToggle document_diagnostics -nnoremap xq TroubleToggle quickfix -nnoremap xl TroubleToggle loclist diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf index 73f17eac..de9dd1ca 100644 --- a/config/tmux/tmux.conf +++ b/config/tmux/tmux.conf @@ -13,7 +13,7 @@ set -g base-index 1 setw -g pane-base-index 1 # 設定ファイルをリロードする -bind r source-file ~/.tmux.conf \; display "Reloaded!" +bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" # Vimのキーバインドでペインを移動する @@ -39,7 +39,8 @@ set-option -g status-right-length 90 # #H => マシン名 # #P => ペイン番号 # 最左に表示 -set -g status-left "#[fg=cyan]#H:[#I]" +# set -g status-left "#[fg=cyan]#H:[#I]" +set -g status-left "#[fg=cyan]#(top -bn1 | grep \"Cpu(s)\" | sed \"s/.*, *\\([0-9.]*\\)%* id.*/\\1/\" | awk '{print 100 - $1\"%\"}')[#I]" # 最右に表示 set-option -g status-right '#[fg=colour15]#(wifi)#[default] #(battery --tmux) #[fg=colour15] [%Y-%m-%d %H:%M] ' diff --git a/log/after.log b/log/after.log new file mode 100644 index 00000000..3879b0b2 --- /dev/null +++ b/log/after.log @@ -0,0 +1,116 @@ +Extra options: [] +Measured: 10 times + +Total Average: 18.591300 msec +Total Max: 22.050000 msec +Total Min: 17.663000 msec + + AVERAGE MAX MIN +---------------------------- +9.074600 10.543000 8.447000: /Users/s09104/.config/nvim/init.lua +8.804400 10.242000 8.189000: require('lazyvim') +5.580100 6.896000 5.267000: inits 1 +1.749900 2.015000 1.657000: reading ShaDa +1.365600 1.508000 1.247000: require('lazy.view.commands') +1.043700 1.131000 0.924000: require('lazy.view') +0.641800 0.718000 0.554000: require('lazy.view.render') +0.591800 0.663000 0.566000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/matchit.vim +0.559600 0.652000 0.527000: sourcing vimrc file(s) +0.341500 0.414000 0.313000: require('lazy') +0.311500 0.365000 0.292000: require('lazy.core.loader') +0.286300 0.335000 0.244000: require('lazy.manage.git') +0.285900 0.349000 0.252000: locale set +0.252800 0.315000 0.194000: require('lazy.manage') +0.250400 0.282000 0.229000: inits 3 +0.165200 0.208000 0.152000: init lua interpreter +0.155000 0.205000 0.138000: expanding arguments +0.152500 0.231000 0.123000: require('lazy.manage.runner') +0.147900 0.174000 0.136000: require('lazy.stats') +0.147800 0.177000 0.137000: init highlight +0.146000 0.167000 0.139000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/syntax/syntax.vim +0.145700 0.170000 0.112000: require('lazy.view.float') +0.144100 0.161000 0.134000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/netrwPlugin.vim +0.110300 0.185000 0.077000: require('lazy.manage.process') +0.104800 0.146000 0.087000: require('lazy.core.handler') +0.104750 0.216000 0.023000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/filetype.lua +0.103500 0.121000 0.095000: require('lazy.core.util') +0.103100 0.125000 0.096000: require('vim._init_packages') +0.100700 0.116000 0.089000: require('lazy.core.config') +0.094200 0.132000 0.073000: require('lazy.view.diff') +0.092600 0.149000 0.074000: require('lazy.manage.semver') +0.090700 0.151000 0.063000: require('lazy.core.handler.ft') +0.088700 0.103000 0.084000: require('keys') +0.087900 0.100000 0.080000: require('options') +0.087700 0.115000 0.070000: require('lazy.core.handler.event') +0.087200 0.113000 0.063000: require('lazy.core.handler.cmd') +0.086900 0.099000 0.071000: require('lazy.view.config') +0.086500 0.099000 0.082000: require('lazy.core.plugin') +0.086300 0.126000 0.069000: require('lazy.core.handler.keys') +0.085800 0.131000 0.055000: require('plugins.lspsaga') +0.082800 0.105000 0.071000: require('lazy.view.text') +0.078900 0.108000 0.071000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/rplugin.vim +0.077900 0.110000 0.062000: require('plugins.alpha') +0.077900 0.101000 0.071000: require('lazy.util') +0.075800 0.147000 0.058000: require('lazy.manage.task') +0.075600 0.168000 0.056000: require('plugins.fern') +0.075000 0.117000 0.062000: require('plugins.telescope') +0.074600 0.085000 0.071000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim +0.073300 0.106000 0.062000: require('plugins.treesitter') +0.072800 0.081000 0.066000: require('theme') +0.071600 0.099000 0.058000: require('plugins.bufpreview') +0.071500 0.083000 0.068000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/matchparen.vim +0.070700 0.088000 0.059000: require('plugins.lualine') +0.069900 0.078000 0.067000: opening buffers +0.069900 0.082000 0.059000: require('plugins.mason') +0.068700 0.085000 0.059000: require('lazy.view.sections') +0.068000 0.102000 0.055000: require('plugins.nvim-cmp') +0.067300 0.077000 0.063000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/gzip.vim +0.066800 0.081000 0.059000: early init +0.066800 0.081000 0.060000: init default mappings & autocommands +0.066100 0.117000 0.051000: require('plugins.mini') +0.065600 0.115000 0.053000: require('plugins.nvim-lspconfig') +0.065500 0.077000 0.056000: require('plugins.theme') +0.065300 0.095000 0.056000: require('plugins.copilot') +0.064800 0.096000 0.052000: require('plugins.bufferline') +0.064300 0.106000 0.051000: require('plugins.nvim-dap') +0.064200 0.097000 0.048000: require('plugins.neodev') +0.063600 0.101000 0.049000: require('plugins.sleuth') +0.063300 0.103000 0.050000: require('plugins.null-ls') +0.062200 0.084000 0.051000: require('plugins.fugitive') +0.061700 0.077000 0.054000: require('plugins.todo-comments') +0.061000 0.073000 0.051000: require('plugins.gitssigns') +0.060600 0.096000 0.049000: require('plugins.modes') +0.060600 0.082000 0.051000: require('plugins.which-key') +0.060000 0.091000 0.050000: require('plugins.noice') +0.060000 0.071000 0.054000: require('plugins.vimdoc-ja') +0.059500 0.074000 0.054000: require('plugins.trouble') +0.057000 0.066000 0.055000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/zipPlugin.vim +0.054900 0.060000 0.052000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/tarPlugin.vim +0.054400 0.062000 0.048000: require('plugins.neotest') +0.049000 0.061000 0.045000: require('vim._editor') +0.045300 0.055000 0.041000: event init +0.039500 0.045000 0.038000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/tohtml.vim +0.039300 0.047000 0.035000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/editorconfig.lua +0.038600 0.046000 0.035000: require('vim.shared') +0.036300 0.045000 0.032000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/man.lua +0.033700 0.037000 0.031000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/nvim.lua +0.032900 0.037000 0.030000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/syntax/synload.vim +0.028800 0.033000 0.026000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/shada.vim +0.025100 0.031000 0.022000: init first window +0.024400 0.029000 0.023000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/ftplugin.vim +0.017000 0.021000 0.016000: require('vim._meta') +0.016100 0.020000 0.014000: require('vim.loader') +0.014700 0.019000 0.013000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/indent.vim +0.011000 0.015000 0.009000: require('vim.fs') +0.009600 0.015000 0.008000: inits 2 +0.008300 0.010000 0.008000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/spellfile.vim +0.007100 0.008000 0.007000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/tutor.vim +0.006700 0.011000 0.005000: window checked +0.006500 0.009000 0.006000: clear screen +0.006300 0.008000 0.006000: require('ffi') +0.006200 0.007000 0.006000: BufEnter autocommands +0.004200 0.005000 0.004000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/health.vim +0.004200 0.005000 0.004000: require('vim.keymap') +0.002000 0.002000 0.002000: --- NVIM STARTING --- +0.001100 0.002000 0.001000: parsing arguments +0.001000 0.001000 0.001000: editing files in windows diff --git a/log/before.log b/log/before.log new file mode 100644 index 00000000..3cb05a17 --- /dev/null +++ b/log/before.log @@ -0,0 +1,318 @@ +Extra options: [] +Measured: 10 times + +Total Average: 346.137300 msec +Total Max: 586.829000 msec +Total Min: 208.216000 msec + + AVERAGE MAX MIN +------------------------------ +57.618500 76.718000 44.272000: /Users/s09104/.config/nvim/init.vim +31.929000 76.115000 9.948000: loading rtp plugins +13.106500 29.239000 7.468000: /Users/s09104/.config/nvim/settings/init/plug.vim +12.431400 14.091000 10.466000: /Users/s09104/.config/nvim/settings/plugconfig/telescope.lua +12.374300 14.176000 10.476000: /Users/s09104/.config/nvim/settings/plugconfig/mason.lua +11.782800 13.407000 9.983000: require('telescope.builtin') +11.733200 18.161000 6.791000: inits 1 +11.565000 13.200000 9.799000: require('telescope.builtin.__lsp') + 6.693600 8.200000 5.762000: require('telescope.actions') + 6.492600 8.263000 5.343000: /Users/s09104/.config/nvim/settings/plugconfig/fidget.lua + 5.464000 7.242000 4.639000: require('vim.lsp') + 5.401100 6.606000 4.796000: require('cmp') + 4.954900 6.138000 4.431000: require('cmp.core') + 4.213500 7.454000 2.898000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/matchit.vim + 4.144400 6.642000 2.667000: /Users/s09104/.vim/plugged/vim-vsnip/plugin/vsnip.vim + 4.034600 7.362000 3.167000: /Users/s09104/.vim/plugged/vim/colors/nord.vim + 4.009500 4.842000 3.283000: /Users/s09104/.config/nvim/settings/plugconfig/treesitter.lua + 3.950700 5.644000 3.322000: require('telescope.config') + 3.716400 6.046000 2.393000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vsnip.vim + 3.372300 5.549000 2.163000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vsnip/session.vim + 3.290400 4.826000 2.534000: require('trouble') + 3.126000 3.809000 2.557000: require('nvim-treesitter.configs') + 2.860100 3.542000 2.336000: require('nvim-treesitter.query') + 2.564500 4.289000 2.161000: require('vim.lsp.handlers') + 2.415100 3.141000 2.032000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/syntax/syntax.vim + 2.206000 3.884000 1.442000: /Users/s09104/.vim/plugged/nvim-lspconfig/plugin/lspconfig.lua + 2.032700 3.342000 1.673000: require('telescope.pickers') + 2.023800 2.423000 1.745000: reading ShaDa + 1.965600 5.982000 0.782000: /Users/s09104/.local/share/nvim/site/autoload/plug.vim + 1.682100 2.333000 1.358000: require('trouble.view') + 1.647900 2.091000 1.412000: require('telescope.finders') + 1.438100 2.140000 1.191000: require('cmp.view') + 1.391300 1.774000 1.164000: require('telescope.sorters') + 1.388200 3.068000 1.106000: require('vim.lsp.util') + 1.345500 2.284000 0.619000: BufEnter autocommands + 1.328900 1.826000 1.084000: require('trouble.renderer') + 1.321100 2.398000 0.802000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vsnip/snippet.vim + 1.307700 2.394000 0.813000: require('vim.version') + 1.284000 1.613000 1.037000: require('nvim-treesitter.tsrange') + 1.242200 1.492000 1.016000: require('nvim-treesitter.compat') + 1.234800 2.179000 0.806000: /Users/s09104/.vim/plugged/vim-gitgutter/plugin/gitgutter.vim + 1.199600 5.082000 0.554000: /Users/s09104/.vim/plugged/rainbow_csv/autoload/rainbow_csv.vim + 1.174900 1.395000 1.060000: require('cmp.utils.async') + 1.157900 1.411000 0.948000: require('vim.treesitter') + 1.153700 2.572000 0.916000: require('mason') + 1.141400 1.480000 0.925000: require('nvim-treesitter.ts_utils') + 1.079200 4.747000 0.521000: /Users/s09104/.vim/plugged/copilot.vim/plugin/copilot.vim + 1.056500 2.313000 0.781000: require('vim.diagnostic') + 1.005800 1.225000 0.900000: require('cmp.config') + 0.980800 2.359000 0.511000: /Users/s09104/.vim/plugged/vim-fugitive/plugin/fugitive.vim + 0.959500 1.008000 0.922000: require('plenary.strings') + 0.954200 1.073000 0.796000: require('trouble.providers') + 0.928000 1.601000 0.745000: require('plenary.async.control') + 0.915500 1.171000 0.745000: require('vim.treesitter.languagetree') + 0.839500 1.248000 0.683000: require('nvim-treesitter.install') + 0.821500 1.862000 0.660000: sourcing vimrc file(s) + 0.821100 1.954000 0.651000: require('mason-core.platform') + 0.820300 1.040000 0.609000: require('lspconfig') + 0.817800 1.867000 0.515000: /Users/s09104/.vim/plugged/nvim-treesitter/plugin/nvim-treesitter.lua + 0.770200 0.905000 0.656000: require('plenary.popup') + 0.758900 1.159000 0.637000: require('vim.filetype.detect') + 0.756200 0.829000 0.646000: require('plenary.path') + 0.735200 1.097000 0.587000: require('nvim-treesitter.parsers') + 0.726233 2.977000 0.037000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/filetype.lua + 0.720200 0.776000 0.617000: require('telescope.utils') + 0.712300 0.921000 0.512000: require('lspconfig.configs') + 0.699100 1.234000 0.526000: require('mason-registry') + 0.695700 1.004000 0.458000: require('fidget') + 0.665200 0.734000 0.577000: require('vim.filetype') + 0.660300 0.917000 0.552000: require('cmp.source') + 0.607300 0.735000 0.530000: require('plenary.async.async') + 0.602400 0.792000 0.540000: require('cmp.utils.feedkeys') + 0.598300 1.469000 0.283000: /Users/s09104/.vim/plugged/lsp-colors.nvim/plugin/lsp-colors.vim + 0.583200 1.563000 0.324000: /Users/s09104/.vim/plugged/nvim-cmp/plugin/cmp.lua + 0.574200 2.954000 0.240000: /Users/s09104/.vim/plugged/copilot.vim/autoload/copilot.vim + 0.564900 0.612000 0.490000: require('vim.lsp.protocol') + 0.543600 0.664000 0.466000: require('telescope.make_entry') + 0.512700 1.268000 0.318000: require('nvim-treesitter') + 0.508500 0.703000 0.452000: require('cmp.utils.keymap') + 0.507700 0.692000 0.442000: require('cmp.config.mapping') + 0.504500 0.596000 0.425000: require('mason.api.command') + 0.477000 2.519000 0.026000: /Users/s09104/.vim/plugged/plenary.nvim/plugin/plenary.vim + 0.457300 0.696000 0.376000: require('cmp.entry') + 0.435800 1.308000 0.165000: /Users/s09104/.vim/plugged/telescope.nvim/plugin/telescope.lua + 0.432900 0.939000 0.306000: require('mason-core.fs') + 0.431400 0.605000 0.345000: require('vim.treesitter.query') + 0.427200 0.625000 0.347000: require('telescope.finders.async_static_finder') + 0.426300 0.777000 0.273000: /Users/s09104/.vim/plugged/open-browser-github.vim/plugin/openbrowser/github.vim + 0.424900 0.866000 0.336000: require('mason-lspconfig') + 0.423700 0.553000 0.286000: require('telescope.actions.set') + 0.409300 0.585000 0.314000: require('lspconfig.util') + 0.404300 0.513000 0.365000: require('telescope.finders.async_oneshot_finder') + 0.403500 0.808000 0.193000: /Users/s09104/.vim/plugged/vim-delve/plugin/delve.vim + 0.401900 0.736000 0.326000: require('cmp.view.docs_view') + 0.389800 1.221000 0.104000: opening buffers + 0.380500 0.562000 0.322000: require('cmp.types') + 0.377600 1.289000 0.191000: /Users/s09104/.vim/plugged/copilot.vim/autoload/copilot/agent.vim + 0.375800 0.662000 0.298000: require('cmp.view.custom_entries_view') + 0.375000 0.702000 0.310000: require('vim.lsp.buf') + 0.372800 0.466000 0.291000: require('trouble.util') + 0.371000 0.707000 0.273000: require('telescope.log') + 0.361900 0.545000 0.260000: require('telescope.pickers.entry_display') + 0.355700 0.902000 0.220000: loading after plugins + 0.347100 0.366000 0.297000: require('vim.lsp.rpc') + 0.345500 0.877000 0.162000: require('lsp-colors') + 0.336900 0.943000 0.199000: require('telescope') + 0.319000 0.367000 0.278000: require('plenary.job') + 0.316400 0.335000 0.278000: require('vim.lsp.semantic_tokens') + 0.313400 0.421000 0.257000: require('plenary.async') + 0.298800 0.616000 0.212000: require('mason-lspconfig.mappings.server') + 0.296800 0.536000 0.149000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/netrwPlugin.vim + 0.296800 0.380000 0.230000: require('cmp_nvim_lsp') + 0.293600 0.386000 0.230000: locale set + 0.292000 0.391000 0.264000: require('telescope._') + 0.290900 0.368000 0.265000: require('plenary.vararg') + 0.285200 0.635000 0.151000: /Users/s09104/.vim/plugged/winresizer/plugin/winresizer.vim + 0.271400 0.324000 0.246000: require('vim.lsp._snippet') + 0.270800 0.316000 0.246000: require('telescope.entry_manager') + 0.269300 1.143000 0.028000: /Users/s09104/.config/nvim/settings/plugconfig/memolist.vim + 0.268600 0.479000 0.213000: require('_copilot') + 0.254200 0.283000 0.234000: require('cmp.config.default') + 0.252100 0.496000 0.184000: require('plenary.log') + 0.250200 0.445000 0.172000: init lua interpreter + 0.250000 0.313000 0.219000: require('plenary.window.border') + 0.249300 0.295000 0.216000: require('cmp.utils.window') + 0.243700 1.107000 0.128000: require('mason-core.functional') + 0.240400 0.289000 0.191000: expanding arguments + 0.239800 0.730000 0.147000: require('nvim-treesitter.query_predicates') + 0.239000 0.258000 0.217000: require('cmp.utils.str') + 0.232500 1.432000 0.053000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/tohtml.vim + 0.227900 0.481000 0.178000: require('vim.lsp.codelens') + 0.216600 0.599000 0.159000: require('vim.lsp.diagnostic') + 0.216200 0.819000 0.091000: require('telescope._extensions') + 0.214700 0.293000 0.174000: require('plenary.async.tests') + 0.208400 1.057000 0.079000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/gzip.vim + 0.208300 0.484000 0.105000: loading packages + 0.206500 0.290000 0.185000: require('plenary.vararg.rotate') + 0.205600 0.245000 0.173000: require('telescope.mappings') + 0.202600 0.282000 0.184000: require('vim.lsp.log') + 0.199100 0.236000 0.179000: require('mason-core.functional.function') + 0.198700 0.719000 0.126000: require('telescope.debounce') + 0.198600 0.212000 0.181000: require('plenary.bit') + 0.197000 0.209000 0.166000: require('vim.lsp.sync') + 0.196600 0.232000 0.163000: require('cmp.context') + 0.193100 0.242000 0.141000: require('telescope.actions.mt') + 0.191700 0.382000 0.141000: require('nvim-treesitter.info') + 0.190400 0.271000 0.172000: require('nvim-treesitter.shell_command_selectors') + 0.190200 1.325000 0.030000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/editorconfig.lua + 0.186100 0.304000 0.133000: require('telescope.config.resolve') + 0.184600 0.769000 0.079000: require('cmp.utils.highlight') + 0.182500 0.383000 0.125000: require('fidget.spinners') + 0.180700 0.232000 0.130000: require('fidget.log') + 0.177300 0.441000 0.139000: require('nvim-treesitter.utils') + 0.172800 0.743000 0.051000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip/VS/LSP/Position.vim + 0.172000 0.269000 0.135000: require('mason-core.functional.list') + 0.170400 0.492000 0.072000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim + 0.168000 0.247000 0.117000: require('trouble.config') + 0.167700 0.176000 0.157000: init highlight + 0.167200 0.185000 0.148000: require('cmp.view.wildmenu_entries_view') + 0.166800 0.200000 0.146000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/vsnip.vim + 0.165000 0.214000 0.134000: require('mason-core.async') + 0.161500 0.175000 0.149000: require('mason-core.log') + 0.155900 0.358000 0.113000: require('telescope.pickers.highlights') + 0.155300 0.321000 0.130000: require('cmp.utils.misc') + 0.154200 0.172000 0.142000: require('cmp.config.compare') + 0.154000 0.188000 0.128000: require('cmp.matcher') + 0.151200 0.613000 0.069000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/rplugin.vim + 0.150100 0.219000 0.124000: require('cmp.types.lsp') + 0.149100 0.169000 0.119000: require('telescope.actions.utils') + 0.148500 0.161000 0.120000: require('telescope.pickers.scroller') + 0.147400 0.176000 0.115000: require('mason-core.terminator') + 0.146300 0.189000 0.115000: require('cmp_nvim_lsp.source') + 0.145100 0.164000 0.121000: require('vim.highlight') + 0.144200 0.224000 0.111000: require('vim.treesitter._range') + 0.139800 0.184000 0.113000: require('vim.treesitter.language') + 0.136800 0.424000 0.082000: require('mason-core.optional') + 0.135000 0.224000 0.105000: require('vim._init_packages') + 0.133500 0.385000 0.074000: /Users/s09104/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim + 0.133200 0.151000 0.122000: require('telescope.algos.linked_list') + 0.132200 0.333000 0.060000: /Users/s09104/.vim/plugged/open-browser.vim/plugin/openbrowser.vim + 0.129600 0.139000 0.113000: require('cmp.view.native_entries_view') + 0.127500 0.139000 0.105000: require('cmp.view.ghost_text_view') + 0.126700 0.134000 0.112000: require('trouble.providers.lsp') + 0.124500 0.615000 0.059000: require('mason-core.async.uv') + 0.121900 0.270000 0.076000: require('trouble.colors') + 0.121300 0.160000 0.102000: require('plenary.async.util') + 0.121200 0.241000 0.090000: require('nvim-treesitter.statusline') + 0.119700 0.173000 0.100000: require('mason-registry.sources') + 0.118900 0.224000 0.067000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/matchparen.vim + 0.118500 0.129000 0.106000: require('trouble.providers.telescope') + 0.117500 0.277000 0.093000: require('telescope.finders.async_job_finder') + 0.116500 0.282000 0.088000: require('nvim-treesitter.caching') + 0.115100 0.146000 0.100000: require('mason-core.functional.string') + 0.113400 0.127000 0.103000: require('cmp.utils.char') + 0.112500 0.139000 0.101000: require('telescope.actions.state') + 0.110100 0.165000 0.082000: require('mason-core.functional.table') + 0.107700 0.215000 0.085000: require('mason-core.path') + 0.106300 0.474000 0.059000: require('mason-lspconfig.settings') + 0.106200 0.249000 0.080000: require('trouble.text') + 0.105700 0.336000 0.070000: require('trouble.folds') + 0.105200 0.118000 0.088000: require('trouble.providers.qf') + 0.100700 0.121000 0.079000: require('telescope.from_entry') + 0.100500 0.118000 0.087000: require('plenary.async.structs') + 0.100300 0.444000 0.048000: event init + 0.099300 0.117000 0.089000: require('mason.settings') + 0.098700 0.124000 0.089000: require('telescope.pickers.window') + 0.098500 0.111000 0.087000: require('plenary.functional') + 0.098100 0.125000 0.087000: require('plenary.class') + 0.097600 0.148000 0.087000: require('telescope.pickers.multi') + 0.097000 0.115000 0.088000: require('cmp.utils.api') + 0.096700 0.103000 0.083000: require('telescope.state') + 0.096600 0.105000 0.083000: require('trouble.providers.diagnostic') + 0.096300 0.104000 0.086000: init default mappings & autocommands + 0.095100 0.279000 0.043000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip/VS/LSP/Text.vim + 0.094800 0.154000 0.083000: require('plenary.tbl') + 0.093600 0.120000 0.072000: require('lspconfig.server_configurations.lua_ls') + 0.093200 0.112000 0.081000: require('telescope.deprecated') + 0.093000 0.165000 0.065000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip/VS/LSP/Diff.vim + 0.092200 0.113000 0.078000: early init + 0.091100 0.123000 0.070000: require('cmp.utils.autocmd') + 0.090900 0.187000 0.071000: /Users/s09104/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim + 0.090500 0.109000 0.075000: require('mason-core.EventEmitter') + 0.090200 0.101000 0.083000: require('plenary.window') + 0.090100 0.114000 0.074000: require('plenary.popup.utils') + 0.087200 0.144000 0.062000: require('lspconfig.server_configurations.tsserver') + 0.086500 0.094000 0.080000: require('mason-core.functional.logic') + 0.083300 0.097000 0.074000: require('plenary.errors') + 0.080800 0.126000 0.071000: require('cmp.types.cmp') + 0.080700 0.093000 0.062000: require('lspconfig.server_configurations.gopls') + 0.080600 0.230000 0.036000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/man.lua + 0.080300 0.087000 0.074000: require('mason-core.functional.relation') + 0.080300 0.092000 0.066000: require('cmp.utils.cache') + 0.079400 0.101000 0.066000: require('cmp.utils.event') + 0.078900 0.258000 0.038000: /Users/s09104/.vim/plugged/lazygit.nvim/plugin/lazygit.vim + 0.077100 0.109000 0.059000: require('lspconfig.server_configurations.marksman') + 0.076000 0.092000 0.068000: require('cmp.utils.debug') + 0.075900 0.104000 0.066000: require('cmp.utils.buffer') + 0.074600 0.090000 0.062000: require('lspconfig.server_configurations.vimls') + 0.073800 0.083000 0.065000: require('mason-core.functional.data') + 0.073000 0.116000 0.066000: /Users/s09104/.vim/plugged/vim-gitgutter/autoload/gitgutter/highlight.vim + 0.072700 0.083000 0.062000: require('cmp.config.sources') + 0.072600 0.087000 0.061000: require('lspconfig.server_configurations.dagger') + 0.072600 0.083000 0.061000: require('cmp.utils.pattern') + 0.072500 0.111000 0.059000: require('mason-lspconfig.notify') + 0.071900 0.084000 0.059000: require('cmp.utils.options') + 0.071700 0.082000 0.059000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip/VS/LSP/TextEdit.vim + 0.070600 0.086000 0.054000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/zipPlugin.vim + 0.069800 0.084000 0.064000: require('cmp.config.window') + 0.069700 0.182000 0.044000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/tarPlugin.vim + 0.069600 0.122000 0.038000: /Users/s09104/.vim/plugged/vim-rhubarb/plugin/rhubarb.vim + 0.068500 0.137000 0.031000: /Users/s09104/.vim/plugged/rainbow_csv/plugin/rainbow_csv.vim + 0.068300 0.146000 0.035000: /Users/s09104/.vim/plugged/fern.vim/plugin/fern.vim + 0.067800 0.096000 0.054000: require('cmp.types.vim') + 0.067300 0.088000 0.057000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip/VS/Vim/Buffer.vim + 0.062900 0.100000 0.022000: /Users/s09104/.vim/plugged/rust.vim/plugin/cargo.vim + 0.058800 0.101000 0.052000: require('vim._editor') + 0.057000 0.124000 0.037000: /Users/s09104/.vim/plugged/copilot.vim/autoload/copilot/job.vim + 0.055200 0.138000 0.027000: /Users/s09104/.vim/plugged/FixCursorHold.nvim/plugin/fix_cursorhold_nvim.vim + 0.053200 0.159000 0.039000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/syntax/synload.vim + 0.050600 0.092000 0.026000: /Users/s09104/.vim/plugged/memolist.vim/plugin/memolist.vim + 0.048000 0.298000 0.011000: /Users/s09104/.config/nvim/settings/plugconfig/trouble.vim + 0.046900 0.096000 0.025000: require('vim.shared') + 0.046200 0.099000 0.024000: /Users/s09104/.vim/plugged/trouble.nvim/plugin/trouble.vim + 0.043300 0.062000 0.031000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/nvim.lua + 0.043300 0.078000 0.028000: require('vim.inspect') + 0.041000 0.053000 0.034000: init first window + 0.038800 0.095000 0.018000: /Users/s09104/.vim/plugged/previm/plugin/previm.vim + 0.038400 0.084000 0.026000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/shada.vim + 0.034400 0.107000 0.012000: /Users/s09104/.vim/plugged/vim-goimports/plugin/goimports.vim + 0.034200 0.052000 0.022000: /Users/s09104/.vim/plugged/cmp-nvim-lsp/after/plugin/cmp_nvim_lsp.lua + 0.033000 0.062000 0.014000: /Users/s09104/.vim/plugged/nvim-web-devicons/plugin/nvim-web-devicons.vim + 0.031800 0.061000 0.014000: /Users/s09104/.vim/plugged/vim-cue/plugin/cue.vim + 0.028600 0.051000 0.015000: /Users/s09104/.vim/plugged/rust.vim/plugin/rust.vim + 0.028300 0.071000 0.018000: /Users/s09104/.vim/plugged/vim-terraform/ftdetect/hcl.vim + 0.026100 0.032000 0.021000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip/VS/Vim/Option.vim + 0.021500 0.026000 0.015000: inits 2 + 0.020900 0.036000 0.017000: require('vim._meta') + 0.020700 0.090000 0.012000: /Users/s09104/.vim/plugged/plantuml-syntax/ftdetect/plantuml.vim + 0.018900 0.039000 0.009000: /Users/s09104/.vim/plugged/vim-vsnip/autoload/vital/_vsnip.vim + 0.018800 0.034000 0.011000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/ftoff.vim + 0.018800 0.036000 0.011000: /Users/s09104/.vim/plugged/fern-git-status.vim/plugin/fern_git_status.vim + 0.017400 0.027000 0.012000: /Users/s09104/.vim/plugged/vim-javascript/ftdetect/javascript.vim + 0.017333 0.045000 0.004000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/ftplugin.vim + 0.017300 0.053000 0.008000: /Users/s09104/.vim/plugged/plantuml-previewer.vim/plugin/plantuml-previewer.vim + 0.015700 0.023000 0.012000: /Users/s09104/.vim/plugged/rust.vim/ftdetect/rust.vim + 0.013900 0.034000 0.008000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/spellfile.vim + 0.013800 0.028000 0.007000: window checked + 0.013800 0.017000 0.011000: require('ffi') + 0.013400 0.028000 0.007000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/tutor.vim + 0.013100 0.015000 0.011000: /Users/s09104/.config/nvim/settings/plugconfig/lazygit.vim + 0.012800 0.014000 0.011000: clear screen + 0.012400 0.015000 0.009000: /Users/s09104/.config/nvim/settings/plugconfig/gitgutter.vim + 0.011466 0.087000 0.004000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/indent.vim + 0.010600 0.013000 0.010000: /Users/s09104/.vim/plugged/vim-log-highlighting/ftdetect/log.vim + 0.010200 0.012000 0.007000: /Users/s09104/.config/nvim/settings/plugconfig/fern.vim + 0.007800 0.009000 0.006000: inits 3 + 0.007700 0.010000 0.007000: /Users/s09104/.vim/plugged/vim-cue/ftdetect/cue.vim + 0.007300 0.009000 0.006000: /Users/s09104/.vim/plugged/vim-jsx-typescript/ftdetect/typescript.vim + 0.007300 0.009000 0.006000: /Users/s09104/.vim/plugged/typescript-vim/ftdetect/typescript.vim + 0.007300 0.016000 0.004000: /Users/s09104/.vim/plugged/vim-javascript/ftdetect/flow.vim + 0.007100 0.016000 0.004000: /opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/plugin/health.vim + 0.006400 0.008000 0.006000: /Users/s09104/.vim/plugged/kotlin-vim/ftdetect/kotlin.vim + 0.006100 0.013000 0.005000: /Users/s09104/.vim/plugged/vim-fugitive/ftdetect/fugitive.vim + 0.006000 0.009000 0.005000: /Users/s09104/.config/nvim/settings/plugconfig/action.vim + 0.004200 0.018000 0.002000: --- NVIM STARTING --- + 0.003900 0.005000 0.003000: require('vim.keymap') + 0.003800 0.019000 0.001000: parsing arguments + 0.003100 0.004000 0.002000: require('vim.F') + 0.001800 0.002000 0.001000: editing files in windows