├── .DS_Store ├── .gitignore ├── images ├── File.png ├── .DS_Store ├── Dashboard.png ├── LazyGit.png ├── Signature.png ├── Autocompletion.png └── lsp-installer.png ├── lua ├── core │ ├── sniprun-nvim │ │ └── init.lua │ ├── lspconfig-nvim │ │ ├── init.lua │ │ ├── lsp_installer.lua │ │ └── handler.lua │ ├── winbar-nvim │ │ └── init.lua │ ├── indentline-nvim │ │ └── init.lua │ ├── toggleterm-nvim │ │ └── init.lua │ ├── lualine-nvim │ │ └── init.lua │ ├── dashboard-nvim │ │ └── init.lua │ ├── test-nvim │ │ └── init.lua │ ├── jaq-nvim │ │ └── init.lua │ ├── gitsign-nvim │ │ └── init.lua │ ├── autopairs-nvim │ │ └── init.lua │ ├── dap-nvim │ │ └── init.lua │ ├── presence-nvim │ │ └── init.lua │ ├── treesitter-nvim │ │ └── init.lua │ ├── nvimtree-nvim │ │ └── init.lua │ ├── cmp-nvim │ │ └── init.lua │ ├── telescope-nvim │ │ └── init.lua │ └── whichkey-nvim │ │ └── init.lua ├── utils │ ├── init.lua │ ├── mappings.lua │ ├── options.lua │ └── nekorc.lua └── plugins │ └── init.lua ├── .luarc.json ├── .github ├── workflow │ └── action.yml └── workflows │ └── runner.yml ├── init.lua ├── docs └── KEYMAPS.md ├── install.sh └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | plugin/packer_compiled.lua 3 | lua/plugins/spotify.lua -------------------------------------------------------------------------------- /images/File.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/File.png -------------------------------------------------------------------------------- /images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/.DS_Store -------------------------------------------------------------------------------- /images/Dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/Dashboard.png -------------------------------------------------------------------------------- /images/LazyGit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/LazyGit.png -------------------------------------------------------------------------------- /images/Signature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/Signature.png -------------------------------------------------------------------------------- /images/Autocompletion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/Autocompletion.png -------------------------------------------------------------------------------- /images/lsp-installer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RyaWcksn/Neko-Vim/HEAD/images/lsp-installer.png -------------------------------------------------------------------------------- /lua/core/sniprun-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require'sniprun'.setup({ 2 | -- display = {"NvimNotify"}, 3 | }) 4 | -------------------------------------------------------------------------------- /lua/utils/init.lua: -------------------------------------------------------------------------------- 1 | require("utils.mappings") 2 | require("utils.nekorc") 3 | require("utils.options") 4 | -------------------------------------------------------------------------------- /.luarc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", 3 | "Lua.diagnostics.globals": [ 4 | "vim" 5 | ] 6 | } -------------------------------------------------------------------------------- /lua/core/lspconfig-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local status_ok, _ = pcall(require, "lspconfig") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | require("core.lspconfig-nvim.handler").setup() 7 | require("core.lspconfig-nvim.lsp_installer") 8 | -------------------------------------------------------------------------------- /.github/workflow/action.yml: -------------------------------------------------------------------------------- 1 | name: Push 2 | on: [push] 3 | jobs: 4 | Explore-Github-Actions: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - run: echo "Pushed" 8 | - name: List files in the repository 9 | run: | 10 | ls ${{ github.workspace }} 11 | -------------------------------------------------------------------------------- /lua/core/winbar-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require('winbar').setup({ 2 | enabled = true, 3 | 4 | show_file_path = true, 5 | show_symbols = true, 6 | 7 | icons = { 8 | file_icon_default = '', 9 | seperator = '>', 10 | editor_state = '●', 11 | lock_icon = '', 12 | }, 13 | 14 | exclude_filetype = { 15 | 'help', 16 | 'startify', 17 | 'dashboard', 18 | 'packer', 19 | 'neogitstatus', 20 | 'NvimTree', 21 | 'Trouble', 22 | 'alpha', 23 | 'lir', 24 | 'Outline', 25 | 'spectre_panel', 26 | 'toggleterm', 27 | 'qf', 28 | } 29 | }) 30 | -------------------------------------------------------------------------------- /lua/core/indentline-nvim/init.lua: -------------------------------------------------------------------------------- 1 | if vim.fn.has("unix") == 1 then 2 | require("indent_blankline").setup{ 3 | char = "│", 4 | buftype_exclude = {"terminal", "nvim-lsp-installer"}, 5 | filetype_exclude = {"dashboard", "nvimtree", "packer", "nvim-lsp-installer"}, 6 | show_current_context = true, 7 | show_current_context_start = true, 8 | } 9 | elseif vim.fn.has("mac") == 1 then 10 | require("indent_blankline").setup{ 11 | char = "│", 12 | buftype_exclude = {"terminal", "nvim-lsp-installer"}, 13 | filetype_exclude = {"dashboard", "nvimtree", "packer", "nvim-lsp-installer"}, 14 | } 15 | end 16 | -------------------------------------------------------------------------------- /lua/core/toggleterm-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local status_ok, toggleterm = pcall(require, "toggleterm") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | toggleterm.setup { 7 | size = 20, 8 | hide_numbers = true, 9 | shade_filetypes = {}, 10 | shade_terminals = true, 11 | shading_factor = 2, 12 | start_in_insert = true, 13 | insert_mappings = true, 14 | persist_size = true, 15 | direction = "float", 16 | close_on_exit = true, 17 | shell = vim.o.shell, 18 | float_opts = { 19 | border = "curved", 20 | winblend = 0, 21 | highlights = { 22 | border = "Normal", 23 | background = "Normal", 24 | }, 25 | }, 26 | } 27 | -------------------------------------------------------------------------------- /init.lua: -------------------------------------------------------------------------------- 1 | local impatient_ok, impatient = pcall(require, "impatient") 2 | if impatient_ok then 3 | impatient.enable_profile() 4 | end 5 | require("plugins") 6 | require("utils") 7 | local folds = require('utils.nekorc') 8 | 9 | local autoCommands = { 10 | -- other autocommands 11 | open_folds = { 12 | { "BufReadPost,FileReadPost", "*", "normal zR" } 13 | } 14 | } 15 | vim.diagnostic.config({ 16 | virtual_text = false, 17 | }) 18 | 19 | folds.nvim_create_augroups(autoCommands) 20 | 21 | vim.api.nvim_set_hl(0, 'LspCodeLens', { fg = '#88C0D0', underline = true }) 22 | vim.api.nvim_create_autocmd("TermOpen", { 23 | pattern = "term://*", 24 | command = "setlocal nonumber norelativenumber signcolumn=no | setfiletype terminal", 25 | }) 26 | 27 | -------------------------------------------------------------------------------- /lua/core/lspconfig-nvim/lsp_installer.lua: -------------------------------------------------------------------------------- 1 | local no_err, lsp_installer = pcall(require,"nvim-lsp-installer") 2 | if not no_err then 3 | return 4 | end 5 | 6 | local module = require('utils.nekorc') 7 | 8 | lsp_installer.on_server_ready(function(server) 9 | local opts = { 10 | on_attach = require("core.lspconfig-nvim.handler").on_attach, 11 | capabilities = require("core.lspconfig-nvim.handler").capabilities, 12 | } 13 | local lsp_installer_servers = require("nvim-lsp-installer.servers") 14 | local servers = module.languages.servers 15 | 16 | for _, name in pairs(servers) do 17 | ---@diagnostic disable-next-line: redefined-local 18 | local ok, server = lsp_installer_servers.get_server(name) 19 | if ok then 20 | if not server:is_installed() then 21 | server:install() 22 | end 23 | end 24 | end 25 | 26 | server:setup(opts) 27 | vim.cmd([[ do User LspAttachBuffers ]]) 28 | end) 29 | -------------------------------------------------------------------------------- /lua/core/lualine-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local module = require('utils.nekorc') 2 | 3 | require("lualine").setup({ 4 | options = { 5 | icons_enabled = true, 6 | theme = module.lualine_theme, 7 | disabled_filetypes = {'dashboard', 'NvimTree', 'Outline', 'Terminal'}, 8 | section_separators = { 9 | left = "", 10 | right = "", 11 | }, 12 | component_separators = { 13 | left = "", 14 | right = "", 15 | }, 16 | }, 17 | 18 | sections = { 19 | lualine_a = {}, 20 | lualine_b = { module.lualine_modules.mode, module.lualine_modules.branch, module.lualine_modules.user }, 21 | lualine_c = {}, 22 | lualine_x = {}, 23 | lualine_y = { module.lualine_modules.diagnostic, module.lualine_modules.diff }, 24 | lualine_z = {}, 25 | 26 | }, 27 | inactive_sections = { 28 | lualine_a = {}, 29 | lualine_b = {}, 30 | lualine_c = { "filename" }, 31 | lualine_x = { "hostname" }, 32 | lualine_y = {}, 33 | lualine_z = {}, 34 | }, 35 | tabline = {}, 36 | extensions = { "nvim-tree" }, 37 | }) 38 | 39 | -------------------------------------------------------------------------------- /lua/core/dashboard-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local g = vim.g 2 | g.dashboard_disable_at_vimenter = 0 -- dashboard is disabled by default 3 | g.dashboard_disable_statusline = 1 4 | g.dashboard_default_executive = "telescope" 5 | 6 | g.dashboard_custom_header = { 7 | "⣿⡿⢿⡿⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⣿⣿", 8 | "⣿⡇⠀⢀⣀⠀⠀⠀⠈⠉⠛⠛⣽⣯⣭⣭⣽⣭⣟⣿⠛⠉⠁⠀⠀⠀⠀⠀⢸⣿", 9 | "⣿⣇⠀⠨⡿⠉⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿", 10 | "⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿", 11 | "⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿", 12 | "⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿", 13 | "⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⢠⢀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿", 14 | "⡇⢠⠀⠀⢠⠀⠀⠀⢠⠠⠄⠀⢃⠀⠀⠀⠀⠀⡆⠀⢤⠀⢀⠀⠀⠀⠀⣿⣿⣿", 15 | "⡇⡰⠀⠀⢨⠀⠀⠀⠀⠐⠀⠀⠈⠀⠀⠀⠀⠠⠀⠀⠀⠂⠆⠀⠀⠀⠀⣿⣿⣿", 16 | "⣇⠿⠀⠀⢸⠀⠀⠀⠈⢹⣿⠋⠙⠀⠀⠀⠀⠀⣿⡿⠛⠛⠃⠀⠀⠀⠀⣿⣿⣿", 17 | "⣿⣴⡆⠀⠀⠀⠀⠀⠀⢸⢿⡿⡇⠀⠀⠀⠀⠀⠻⣿⡶⠇⠀⠀⢀⠀⠀⣿⣿⣿", 18 | "⣿⣿⣿⣆⠀⠀⠀⠀⠀⠃⠔⠁⠀⠀⠀⠀⠀⠈⠢⠈⠀⠀⠀⡄⠀⢠ ⣿⣿⣿", 19 | "⣿⣿⣿⣧⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢠⡇⠀⢸⣿⣿⣿", 20 | "⣿⣿⣿⡿⠀⠀⣵⠀⠀⠸⣶⣤⣀⠀⠀⠀⠀⢀⣠⣴⡞⠀⠀⣾⡇⠀⢸⣿⣿⣿", 21 | "⣿⣿⣿⣷⠂⠀⣿⡇⠀⠀⢿⣿⠏⠀⠀⠀⠀⠀⢿⣿⠁⠀⢠⣿⣷⠀⠸⣿⣿⣿", 22 | "⣿⣿⣿⡿⡆⢀⣿⣷⠀⠀⠘⣿⣄⠀⠈⠀⢀⠀⣸⠇⠀⠀⣼⣿⣿⠀⠀⣿⣿⣿", 23 | "⣿⣿⣿⡇⠀⣸⣿⣿⡆⠀⠀⣿⡿⠋⠀⠀⠀⠙⣿⠁⠀⢰⣿⣿⣿⡆⠀⢻⣿⣿", 24 | } 25 | 26 | g.dashboard_custom_section = { 27 | a = { description = { "ﰍ Find File " }, command = "FZF" }, 28 | c = { description = { " New File " }, command = "DashboardNewFile" }, 29 | d = { description = { " Config File " }, command = "e ~/.config/nvim/lua/utils/nekorc.lua" }, 30 | e = { description = { " Sandbox " }, command = "e ~/sandbox" }, 31 | } 32 | 33 | g.dashboard_custom_footer = { 34 | " (=^・ω・^=) ", 35 | "> Neko Vim <", 36 | "      ", 37 | } 38 | -------------------------------------------------------------------------------- /lua/core/test-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require('nvim-test').setup({ 2 | run = true, -- run tests (using for debug) 3 | commands_create = true, -- create commands (TestFile, TestLast, ...) 4 | filename_modifier = ":.", -- modify filenames before tests run(:h filename-modifiers) 5 | silent = false, -- less notifications 6 | term = "toggleterm", -- a terminal to run ("terminal"|"toggleterm") 7 | termOpts = { 8 | direction = "float", -- terminal's direction ("horizontal"|"vertical"|"float") 9 | width = 96, -- terminal's width (for vertical|float) 10 | height = 24, -- terminal's height (for horizontal|float) 11 | go_back = false, -- return focus to original window after executing 12 | stopinsert = "auto", -- exit from insert mode (true|false|"auto") 13 | keep_one = true, -- keep only one terminal for testing 14 | }, 15 | runners = { -- setup tests runners 16 | cs = "nvim-test.runners.dotnet", 17 | go = "nvim-test.runners.go-test", 18 | haskell = "nvim-test.runners.hspec", 19 | javacriptreact = "nvim-test.runners.jest", 20 | javascript = "nvim-test.runners.jest", 21 | lua = "nvim-test.runners.busted", 22 | python = "nvim-test.runners.pytest", 23 | ruby = "nvim-test.runners.rspec", 24 | rust = "nvim-test.runners.cargo-test", 25 | typescript = "nvim-test.runners.jest", 26 | typescriptreact = "nvim-test.runners.jest", 27 | } 28 | }) 29 | -------------------------------------------------------------------------------- /docs/KEYMAPS.md: -------------------------------------------------------------------------------- 1 |

Keymaps ⌨️

2 | 3 | | Keymaps | Commands | 4 | |-----------------|-----------------------------------------------| 5 | | Space + e | Open file tree | 6 | | Space + w | Save file | 7 | | Space + q | Quit | 8 | | Space + ff | Telescope file manager | 9 | | Space + h/j/k/l | Switch panel | 10 | | Space + v | Split to right | 11 | | Space + b | Split to bottom | 12 | | Tab + Shift-Tab | Switch tab left right | 13 | | Space + 1~0 | Jump tab | 14 | | F2 | Open floating terminal | 15 | | tz | Make floating terminal large | 16 | | tZ | Make floating terminal small | 17 | | Ctrl + x | Open terminal bellow like VSCode | 18 | | Ctrl + c | Close tab | 19 | | Space + tn | New tab | 20 | | ; | Command mode | 21 | | jk | Exit insert mode | 22 | | Space + zz | Zen mode for distractions free coding session | 23 | | Ctrl + h/j/k/l | Move line left/down/up/right | 24 | | Alt + h/j/k/l | Resize splits | 25 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function print_logo() 4 | { 5 | cat <<'EOF' 6 | ⣿⡿⢿⡿⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⣿⣿ 7 | ⣿⡇⠀⢀⣀⠀⠀⠀⠈⠉⠛⠛⣽⣯⣭⣭⣽⣭⣟⣿⠛⠉⠁⠀⠀⠀⠀⠀⢸⣿ 8 | ⣿⣇⠀⠨⡿⠉⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿ 9 | ⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿ 10 | ⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿ 11 | ⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿ 12 | ⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⢠⢀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿ 13 | ⡇⢠⠀⠀⢠⠀⠀⠀⢠⠠⠄⠀⢃⠀⠀⠀⠀⠀⡆⠀⢤⠀⢀⠀⠀⠀⠀⣿⣿⣿ 14 | ⡇⡰⠀⠀⢨⠀⠀⠀⠀⠐⠀⠀⠈⠀⠀⠀⠀⠠⠀⠀⠀⠂⠆⠀⠀⠀⠀⣿⣿⣿ 15 | ⣇⠿⠀⠀⢸⠀⠀⠀⠈⢹⣿⠋⠙⠀⠀⠀⠀⠀⣿⡿⠛⠛⠃⠀⠀⠀⠀⣿⣿⣿ 16 | ⣿⣴⡆⠀⠀⠀⠀⠀⠀⢸⢿⡿⡇⠀⠀⠀⠀⠀⠻⣿⡶⠇⠀⠀⢀⠀⠀⣿⣿⣿ 17 | ⣿⣿⣿⣆⠀⠀⠀⠀⠀⠃⠔⠁⠀⠀⠀⠀⠀⠈⠢⠈⠀⠀⠀⡄⠀⢠ ⣿⣿⣿ 18 | ⣿⣿⣿⣧⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢠⡇⠀⢸⣿⣿⣿ 19 | ⣿⣿⣿⡿⠀⠀⣵⠀⠀⠸⣶⣤⣀⠀⠀⠀⠀⢀⣠⣴⡞⠀⠀⣾⡇⠀⢸⣿⣿⣿ 20 | ⣿⣿⣿⣷⠂⠀⣿⡇⠀⠀⢿⣿⠏⠀⠀⠀⠀⠀⢿⣿⠁⠀⢠⣿⣷⠀⠸⣿⣿⣿ 21 | ⣿⣿⣿⡿⡆⢀⣿⣷⠀⠀⠘⣿⣄⠀⠈⠀⢀⠀⣸⠇⠀⠀⣼⣿⣿⠀⠀⣿⣿⣿ 22 | ⣿⣿⣿⡇⠀⣸⣿⣿⡆⠀⠀⣿⡿⠋⠀⠀⠀⠙⣿⠁⠀⢰⣿⣿⣿⡆⠀⢻⣿⣿ 23 | EOF 24 | } 25 | 26 | function main() 27 | { 28 | print_logo 29 | 30 | echo "Cloning Neko-Vim..." 31 | cd .config 32 | FILE=$HOME/.config/nvim 33 | if [ -d ! "$FILE" ]; then 34 | echo "Backing up old configuration..." 35 | mv nvim nvim.bak 36 | fi 37 | 38 | git clone https://github.com/RyaWcksn/Neko-Vim.git nvim 39 | 40 | echo "Cloning package manager..." 41 | git clone --depth 0 https://github.com/wbthomason/packer.nvim\ 42 | ~/.local/share/nvim/site/pack/packer/start/packer.nvim 43 | 44 | nvim +PackerSync 45 | 46 | echo "Thank you $USER for using Neko-Vim as your text editor/IDE" 47 | echo "" 48 | echo "Development still continue, if found some issue please report to" 49 | echo "https://github.com/RyaWcksn/Neko-Vim/issues" 50 | } 51 | 52 | main 53 | -------------------------------------------------------------------------------- /.github/workflows/runner.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: CI 4 | 5 | # Controls when the workflow will run 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the "master" branch 8 | push: 9 | branches: 10 | - master 11 | pull_request: 12 | types: [opened] 13 | branches: 14 | - master 15 | 16 | # Allows you to run this workflow manually from the Actions tab 17 | workflow_dispatch: 18 | 19 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 20 | jobs: 21 | # This workflow contains a single job called "build" 22 | build: 23 | # The type of runner that the job will run on 24 | runs-on: ubuntu-latest 25 | 26 | # Steps represent a sequence of tasks that will be executed as part of the job 27 | steps: 28 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 29 | - uses: actions/checkout@v3 30 | 31 | - name: Setup Node 32 | uses: actions/setup-node@v1 33 | with: 34 | node-version: 16.x 35 | 36 | - name: Install dependencies 37 | run: npx ci 38 | 39 | - name: Install semantic-release extra plugins 40 | run: npm install --save-dev @semantic-release/changelog @semantic-release/git 41 | 42 | - name: Lint 43 | run: npm run lint-fix 44 | 45 | - name: Test 46 | run: npm run test:unit --if-present 47 | 48 | - name: Build 49 | run: npm run build 50 | 51 | - name: Release 52 | env: 53 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 54 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 55 | run: npx semantic-release 56 | -------------------------------------------------------------------------------- /lua/core/jaq-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require('jaq-nvim').setup{ 2 | -- Commands used with 'Jaq' 3 | cmds = { 4 | -- Default UI used (see `Usage` for options) 5 | default = "float", 6 | 7 | -- Uses external commands such as 'g++' and 'cargo' 8 | external = { 9 | typescript = "deno run %", 10 | javascript = "node %", 11 | markdown = "glow %", 12 | python = "python3 %", 13 | rust = "rustc % && ./$fileBase && rm $fileBase", 14 | cpp = "g++ % -o $fileBase && ./$fileBase", 15 | go = "go run %", 16 | sh = "sh %", 17 | }, 18 | 19 | -- Uses internal commands such as 'source' and 'luafile' 20 | internal = { 21 | lua = "luafile %", 22 | vim = "source %" 23 | } 24 | }, 25 | 26 | -- UI settings 27 | ui = { 28 | -- Start in insert mode 29 | startinsert = false, 30 | 31 | -- Switch back to current file 32 | -- after using Jaq 33 | wincmd = false, 34 | 35 | -- Floating Window / FTerm settings 36 | float = { 37 | -- Floating window border (see ':h nvim_open_win') 38 | border = "none", 39 | 40 | -- Num from `0 - 1` for measurements 41 | height = 0.8, 42 | width = 0.8, 43 | x = 0.5, 44 | y = 0.5, 45 | 46 | -- Highlight group for floating window/border (see ':h winhl') 47 | border_hl = "FloatBorder", 48 | float_hl = "Normal", 49 | 50 | -- Floating Window Transparency (see ':h winblend') 51 | blend = 0 52 | }, 53 | 54 | terminal = { 55 | -- Position of terminal 56 | position = "bot", 57 | 58 | -- Open the terminal without line numbers 59 | line_no = false, 60 | 61 | -- Size of terminal 62 | size = 10 63 | }, 64 | 65 | toggleterm = { 66 | -- Position of terminal, one of "vertical" | "horizontal" | "window" | "float" 67 | position = "horizontal", 68 | 69 | -- Size of terminal 70 | size = 10 71 | }, 72 | 73 | quickfix = { 74 | -- Position of quickfix window 75 | position = "bot", 76 | 77 | -- Size of quickfix window 78 | size = 10 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /lua/core/gitsign-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require('gitsigns').setup { 2 | signs = { 3 | add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, 4 | change = {hl = 'GitSignsChange', text = '|', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, 5 | delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, 6 | topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, 7 | changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, 8 | }, 9 | signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` 10 | numhl = false, -- Toggle with `:Gitsigns toggle_numhl` 11 | linehl = false, -- Toggle with `:Gitsigns toggle_linehl` 12 | word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` 13 | keymaps = { 14 | -- Default keymap options 15 | noremap = true, 16 | 17 | ['n ]c'] = { expr = true, "&diff ? ']c' : 'lua require\"gitsigns.actions\".next_hunk()'"}, 18 | ['n [c'] = { expr = true, "&diff ? '[c' : 'lua require\"gitsigns.actions\".prev_hunk()'"}, 19 | }, 20 | watch_gitdir = { 21 | interval = 1000, 22 | follow_files = true 23 | }, 24 | attach_to_untracked = true, 25 | current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame` 26 | current_line_blame_opts = { 27 | virt_text = true, 28 | virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' 29 | delay = 1000, 30 | }, 31 | current_line_blame_formatter_opts = { 32 | relative_time = false 33 | }, 34 | sign_priority = 6, 35 | update_debounce = 100, 36 | status_formatter = nil, -- Use default 37 | max_file_length = 40000, 38 | preview_config = { 39 | -- Options passed to nvim_open_win 40 | border = 'single', 41 | style = 'minimal', 42 | relative = 'cursor', 43 | row = 0, 44 | col = 1 45 | }, 46 | yadm = { 47 | enable = false 48 | }, 49 | } 50 | -------------------------------------------------------------------------------- /lua/core/autopairs-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local status_ok, npairs = pcall(require, "nvim-autopairs") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local Rule = require "nvim-autopairs.rule" 7 | local ts_conds = require "nvim-autopairs.ts-conds" 8 | 9 | require("nvim-treesitter.configs").setup { autopairs = { enable = true } } 10 | 11 | 12 | npairs.setup { 13 | active = true, 14 | on_config_done = nil, 15 | ---@usage modifies the function or method delimiter by filetypes 16 | map_char = { 17 | all = "(", 18 | tex = "{", 19 | }, 20 | ---@usage check bracket in same line 21 | enable_check_bracket_line = false, 22 | ---@usage check treesitter 23 | check_ts = true, 24 | ts_config = { 25 | lua = { "string", "source" }, 26 | javascript = { "string", "template_string" }, 27 | java = false, 28 | }, 29 | disable_filetype = { "TelescopePrompt", "spectre_panel" }, 30 | ignored_next_char = string.gsub([[ [%w%%%'%[%"%.] ]], "%s+", ""), 31 | enable_moveright = true, 32 | ---@usage disable when recording or executing a macro 33 | disable_in_macro = false, 34 | ---@usage add bracket pairs after quote 35 | enable_afterquote = true, 36 | ---@usage map the key 37 | map_bs = true, 38 | ---@usage map to delete a pair if possible 39 | map_c_w = false, 40 | ---@usage disable when insert after visual block mode 41 | disable_in_visualblock = false, 42 | ---@usage change default fast_wrap 43 | fast_wrap = { 44 | map = "", 45 | chars = { "{", "[", "(", '"', "'" }, 46 | pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), 47 | offset = 0, -- Offset from pattern match 48 | end_key = "$", 49 | keys = "qwertyuiopzxcvbnmasdfghjkl", 50 | check_comma = true, 51 | highlight = "Search", 52 | highlight_grey = "Comment", 53 | }, 54 | } 55 | npairs.add_rules { 56 | Rule("%", "%", "lua"):with_pair(ts_conds.is_ts_node { "string", "comment" }), 57 | Rule("$", "$", "lua"):with_pair(ts_conds.is_not_ts_node { "function" }), 58 | } 59 | 60 | local cmp_autopairs = require "nvim-autopairs.completion.cmp" 61 | local cmp_status_ok, cmp = pcall(require, "cmp") 62 | if not cmp_status_ok then 63 | return 64 | end 65 | cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } }) 66 | -------------------------------------------------------------------------------- /lua/core/lspconfig-nvim/handler.lua: -------------------------------------------------------------------------------- 1 | local module = require('utils.nekorc') 2 | local M = {} 3 | 4 | M.setup = function() 5 | local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " } 6 | for type, icon in pairs(signs) do 7 | local hl = "DiagnosticSign" .. type 8 | vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) 9 | end 10 | 11 | local config = { 12 | virtual_text = false, 13 | signs = { 14 | active = signs, 15 | }, 16 | update_in_insert = true, 17 | underline = true, 18 | severity_sort = true, 19 | float = { 20 | focusable = false, 21 | style = "minimal", 22 | border = "rounded", 23 | source = "always", 24 | header = "", 25 | prefix = "", 26 | }, 27 | } 28 | vim.diagnostic.config(config) 29 | vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { 30 | border = "single", 31 | }) 32 | 33 | vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { 34 | border = "single", 35 | }) 36 | 37 | vim.api.nvim_set_hl(0, 'LspCodeLens', { link = 'LspDiagnosticsHint', default = true }) 38 | vim.api.nvim_set_hl(0, 'LspCodeLensText', { link = 'LspDiagnosticsInformation', default = true }) 39 | vim.api.nvim_set_hl(0, 'LspCodeLensSign', { link = 'LspDiagnosticsInformation', default = true }) 40 | vim.api.nvim_set_hl(0, 'LspCodeLensSeparator', { link = 'Boolean', default = true }) 41 | 42 | vim.o.updatetime = 250 43 | vim.cmd([[autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false, scope="cursor"})]]) 44 | if vim.fn.mode == "i" then 45 | vim.cmd([[autocmd! CursorHold,CursorHoldI,CursorMovedI * lua vim.lsp.buf.signature_help(nil, {focus=false, scope="cursor"})]]) 46 | end 47 | 48 | local Handlers = { 49 | ["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "single" }), 50 | ["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "single" }), 51 | } 52 | 53 | local servers = module.languages.servers 54 | for _, server in ipairs(servers) do 55 | if server == "gopls" then 56 | module.gopls(Handlers) 57 | end 58 | if server == "golangci_lint_ls" then 59 | module.golang_ci(Handlers) 60 | end 61 | end 62 | end 63 | 64 | return M 65 | -------------------------------------------------------------------------------- /lua/core/dap-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local dap, dapui = require("dap"), require("dapui") 2 | 3 | dap.listeners.after.event_initialized["dapui_config"] = function() 4 | dapui.open() 5 | end 6 | dap.listeners.before.event_terminated["dapui_config"] = function() 7 | dapui.close() 8 | end 9 | dap.listeners.before.event_exited["dapui_config"] = function() 10 | dapui.close() 11 | end 12 | 13 | 14 | require("nvim-dap-virtual-text").setup() 15 | require('dap-go').setup() 16 | require("dapui").setup() 17 | 18 | 19 | dap.adapters.delve = { 20 | type = 'server', 21 | port = '${port}', 22 | executable = { 23 | command = 'dlv', 24 | args = { 'dap', '-l', '127.0.0.1:${port}' }, 25 | } 26 | } 27 | 28 | dap.adapters.go = function(callback, config) 29 | stdout = vim.loop.new_pipe(false) 30 | stderr = vim.loop.new_pipe(false) 31 | local pid_or_err 32 | port = config.port or port 33 | 34 | local host = config.host or "127.0.0.1" 35 | 36 | local addr = string.format("%s:%d", host, port) 37 | -- print('ERROR: ', err) 38 | end 39 | if not data or data == "" then 40 | return 41 | end 42 | if data:find("couldn't start") then 43 | end 44 | 45 | vim.schedule(function() 46 | require("dap.repl").append(data) 47 | end) 48 | 49 | -- https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_dap.md 50 | dap.configurations.go = { 51 | { 52 | type = "delve", 53 | name = "Debug", 54 | request = "launch", 55 | program = "${file}" 56 | }, 57 | { 58 | type = "delve", 59 | name = "Debug test", -- configuration for debugging test files 60 | request = "launch", 61 | mode = "test", 62 | program = "${file}" 63 | }, 64 | -- works with go.mod packages and sub packages 65 | { 66 | type = "delve", 67 | name = "Debug test (go.mod)", 68 | request = "launch", 69 | mode = "test", 70 | program = "./${relativeFileDirname}" 71 | } 72 | } 73 | 74 | 75 | 76 | 77 | local dap_breakpoint = { 78 | error = { 79 | text = "🟥", 80 | texthl = "LspDiagnosticsSignError", 81 | linehl = "", 82 | numhl = "", 83 | }, 84 | rejected = { 85 | text = " ", 86 | texthl = "LspDiagnosticsSignHint", 87 | linehl = "", 88 | numhl = "", 89 | }, 90 | stopped = { 91 | text = "⭐️", 92 | texthl = "LspDiagnosticsSignInformation", 93 | linehl = "DiagnosticUnderlineInfo", 94 | numhl = "LspDiagnosticsSignInformation", 95 | }, 96 | } 97 | 98 | vim.fn.sign_define("DapBreakpoint", dap_breakpoint.error) 99 | vim.fn.sign_define("DapStopped", dap_breakpoint.stopped) 100 | vim.fn.sign_define("DapBreakpointRejected", dap_breakpoint.rejected) 101 | -------------------------------------------------------------------------------- /lua/core/presence-nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- The setup config table shows all available config options with their default values: 2 | require("presence"):setup({ 3 | -- General options 4 | auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`) 5 | neovim_image_text = "世界一最高なIDE", -- Text displayed when hovered over the Neovim image 6 | main_image = "file", -- Main image display (either "neovim" or "file") 7 | -- client_id = "793271441293967371", -- Use your own Discord application client id (not recommended) 8 | log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") 9 | debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`) 10 | enable_line_number = false, -- Displays the current line number instead of the current project 11 | blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches 12 | buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "