├── .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 = "