initial commit
This commit is contained in:
parent
0a76b1a8f8
commit
f555d223d3
1
config/environment.d/git_askpass.conf
Normal file
1
config/environment.d/git_askpass.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
GIT_ASKPASS=/usr/bin/ksshaskpass
|
2
config/environment.d/ssh_askpass.conf
Normal file
2
config/environment.d/ssh_askpass.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
SSH_ASKPASS=/usr/bin/ksshaskpass
|
||||||
|
SSH_ASKPASS_REQUIRE=prefer
|
28
config/nvim/init.lua
Normal file
28
config/nvim/init.lua
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
require "configs.options"
|
||||||
|
require "configs.keymaps"
|
||||||
|
require "configs.filetypes"
|
||||||
|
require "configs.plugins"
|
||||||
|
require "configs.tabout"
|
||||||
|
|
||||||
|
require "plugins.cmp"
|
||||||
|
require "plugins.telescope"
|
||||||
|
require "plugins.treesitter"
|
||||||
|
require "plugins.autopairs"
|
||||||
|
require "plugins.nvim-tree"
|
||||||
|
require "plugins.bufferline"
|
||||||
|
require "plugins.lualine"
|
||||||
|
require "plugins.neoscroll"
|
||||||
|
require "plugins.toggleterm"
|
||||||
|
require "plugins.project"
|
||||||
|
require "plugins.impatient"
|
||||||
|
require "plugins.indentline"
|
||||||
|
require "plugins.alpha"
|
||||||
|
require "plugins.whichkey"
|
||||||
|
require "plugins.autocommands"
|
||||||
|
require "plugins.comment"
|
||||||
|
require "plugins.gitsigns"
|
||||||
|
require "lsp"
|
||||||
|
|
||||||
|
require "ui.colorscheme"
|
||||||
|
require "ui.onedark"
|
||||||
|
|
4
config/nvim/lua/configs/filetypes.lua
Normal file
4
config/nvim/lua/configs/filetypes.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
pattern = 'sh',
|
||||||
|
command = 'setlocal shiftwidth=4 tabstop=4'
|
||||||
|
})
|
70
config/nvim/lua/configs/keymaps.lua
Normal file
70
config/nvim/lua/configs/keymaps.lua
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
|
||||||
|
local term_opts = { silent = true }
|
||||||
|
|
||||||
|
-- Shorten function name
|
||||||
|
local keymap = vim.api.nvim_set_keymap
|
||||||
|
|
||||||
|
--Remap space as leader key
|
||||||
|
keymap("", "<Space>", "<Nop>", opts)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = " "
|
||||||
|
|
||||||
|
-- Modes
|
||||||
|
-- normal_mode = "n",
|
||||||
|
-- insert_mode = "i",
|
||||||
|
-- visual_mode = "v",
|
||||||
|
-- visual_block_mode = "x",
|
||||||
|
-- term_mode = "t",
|
||||||
|
-- command_mode = "c",
|
||||||
|
|
||||||
|
-- Normal --
|
||||||
|
-- Better window navigation
|
||||||
|
keymap("n", "<C-h>", "<C-w>h", opts)
|
||||||
|
keymap("n", "<C-j>", "<C-w>j", opts)
|
||||||
|
keymap("n", "<C-k>", "<C-w>k", opts)
|
||||||
|
keymap("n", "<C-l>", "<C-w>l", opts)
|
||||||
|
|
||||||
|
-- Resize with arrows
|
||||||
|
keymap("n", "<C-Up>", ":resize -2<CR>", opts)
|
||||||
|
keymap("n", "<C-Down>", ":resize +2<CR>", opts)
|
||||||
|
keymap("n", "<C-Left>", ":vertical resize -2<CR>", opts)
|
||||||
|
keymap("n", "<C-Right>", ":vertical resize +2<CR>", opts)
|
||||||
|
|
||||||
|
-- Navigate buffers
|
||||||
|
keymap("n", "<S-l>", ":bnext<CR>", opts)
|
||||||
|
keymap("n", "<S-h>", ":bprevious<CR>", opts)
|
||||||
|
|
||||||
|
-- Move text up and down
|
||||||
|
keymap("n", "<A-j>", "<Esc>:m .+1<CR>==gi", opts)
|
||||||
|
keymap("n", "<A-k>", "<Esc>:m .-2<CR>==gi", opts)
|
||||||
|
|
||||||
|
-- Insert --
|
||||||
|
-- Press jk fast to exit insert mode
|
||||||
|
keymap("i", "jk", "<ESC>", opts)
|
||||||
|
keymap("i", "kj", "<ESC>", opts)
|
||||||
|
|
||||||
|
-- Visual --
|
||||||
|
-- Stay in indent mode
|
||||||
|
keymap("v", "<", "<gv", opts)
|
||||||
|
keymap("v", ">", ">gv", opts)
|
||||||
|
|
||||||
|
-- Move text up and down
|
||||||
|
keymap("v", "<A-j>", ":m .+1<CR>==", opts)
|
||||||
|
keymap("v", "<A-k>", ":m .-2<CR>==", opts)
|
||||||
|
keymap("v", "p", '"_dP', opts)
|
||||||
|
|
||||||
|
-- Visual Block --
|
||||||
|
-- Move text up and down
|
||||||
|
keymap("x", "J", ":move '>+1<CR>gv-gv", opts)
|
||||||
|
keymap("x", "K", ":move '<-2<CR>gv-gv", opts)
|
||||||
|
keymap("x", "<A-j>", ":move '>+1<CR>gv-gv", opts)
|
||||||
|
keymap("x", "<A-k>", ":move '<-2<CR>gv-gv", opts)
|
||||||
|
|
||||||
|
-- Terminal --
|
||||||
|
-- Better terminal navigation
|
||||||
|
-- keymap("t", "<C-h>", "<C-\\><C-N><C-w>h", term_opts)
|
||||||
|
-- keymap("t", "<C-j>", "<C-\\><C-N><C-w>j", term_opts)
|
||||||
|
-- keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", term_opts)
|
||||||
|
-- keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", term_opts)
|
||||||
|
|
50
config/nvim/lua/configs/options.lua
Normal file
50
config/nvim/lua/configs/options.lua
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
local options = {
|
||||||
|
backup = false,
|
||||||
|
clipboard = "unnamedplus",
|
||||||
|
cmdheight = 2,
|
||||||
|
completeopt = { "menuone", "noselect" },
|
||||||
|
conceallevel = 0,
|
||||||
|
fileencoding = "utf-8",
|
||||||
|
hlsearch = true,
|
||||||
|
ignorecase = true,
|
||||||
|
mouse = "a",
|
||||||
|
pumheight = 10,
|
||||||
|
showmode = false,
|
||||||
|
showtabline = 2,
|
||||||
|
smartcase = true,
|
||||||
|
smartindent = true,
|
||||||
|
splitbelow = true,
|
||||||
|
splitright = true,
|
||||||
|
swapfile = true,
|
||||||
|
-- termguicolors = true,
|
||||||
|
timeoutlen = 300,
|
||||||
|
undofile = true,
|
||||||
|
updatetime = 300,
|
||||||
|
writebackup = false,
|
||||||
|
expandtab = true,
|
||||||
|
shiftwidth = 2,
|
||||||
|
tabstop = 2,
|
||||||
|
cursorline = true,
|
||||||
|
number = true,
|
||||||
|
relativenumber = false,
|
||||||
|
numberwidth = 4,
|
||||||
|
|
||||||
|
signcolumn = "yes",
|
||||||
|
wrap = false,
|
||||||
|
linebreak = true,
|
||||||
|
scrolloff = 8,
|
||||||
|
sidescrolloff = 8,
|
||||||
|
guifont = "Hirad Iosevka:h17",
|
||||||
|
whichwrap = "bs<>[]hl",
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v in pairs(options) do
|
||||||
|
vim.opt[k] = v
|
||||||
|
end
|
||||||
|
|
||||||
|
-- vim.opt.shortmess = "ilmnrx" -- flags to shorten vim messages, see :help 'shortmess'
|
||||||
|
vim.opt.shortmess:append "c" -- don't give |ins-completion-menu| messages
|
||||||
|
vim.opt.iskeyword:append "-" -- hyphenated words recognized by searches
|
||||||
|
vim.opt.formatoptions:remove({ "c", "r", "o" }) -- don't insert the current comment leader automatically for auto-wrapping comments using 'textwidth', hitting <Enter> in insert mode, or hitting 'o' or 'O' in normal mode.
|
||||||
|
vim.opt.runtimepath:remove("/usr/share/vim/vimfiles") -- separate vim plugins from neovim in case vim still in use
|
||||||
|
|
99
config/nvim/lua/configs/plugins.lua
Normal file
99
config/nvim/lua/configs/plugins.lua
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
local fn = vim.fn
|
||||||
|
|
||||||
|
-- Automatically install packer
|
||||||
|
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||||
|
if fn.empty(fn.glob(install_path)) > 0 then
|
||||||
|
PACKER_BOOTSTRAP = fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--depth",
|
||||||
|
"1",
|
||||||
|
"https://github.com/wbthomason/packer.nvim",
|
||||||
|
install_path,
|
||||||
|
})
|
||||||
|
print("Installing packer close and reopen NeoVIM...")
|
||||||
|
vim.cmd([[packadd packer.nvim]])
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Autocommand that reloads neovim whenever you save the plugins.lua file
|
||||||
|
vim.cmd([[
|
||||||
|
augroup packer_user_config
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
||||||
|
augroup end
|
||||||
|
]])
|
||||||
|
|
||||||
|
-- Use a protected call so we don't error out on first use
|
||||||
|
local status_ok, packer = pcall(require, "packer")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Have packer use a popup window
|
||||||
|
packer.init({
|
||||||
|
display = {
|
||||||
|
open_fn = function()
|
||||||
|
return require("packer.util").float({ border = "rounded" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Install plugins here
|
||||||
|
return packer.startup(function(use)
|
||||||
|
use { "wbthomason/packer.nvim" }
|
||||||
|
use { "nvim-lua/plenary.nvim" }
|
||||||
|
use { "windwp/nvim-autopairs" }
|
||||||
|
use { "numToStr/Comment.nvim" }
|
||||||
|
use { "JoosepAlviste/nvim-ts-context-commentstring" }
|
||||||
|
use { "kyazdani42/nvim-web-devicons" }
|
||||||
|
use { "kyazdani42/nvim-tree.lua" }
|
||||||
|
use { "akinsho/bufferline.nvim" }
|
||||||
|
use { "moll/vim-bbye" }
|
||||||
|
use { "nvim-lualine/lualine.nvim" }
|
||||||
|
use { "akinsho/toggleterm.nvim" }
|
||||||
|
use { "ahmedkhalf/project.nvim" }
|
||||||
|
use { "lewis6991/impatient.nvim" }
|
||||||
|
use { "lukas-reineke/indent-blankline.nvim" }
|
||||||
|
use { "goolord/alpha-nvim" }
|
||||||
|
use { "folke/which-key.nvim" }
|
||||||
|
use { "karb94/neoscroll.nvim" }
|
||||||
|
|
||||||
|
-- Colorschemes
|
||||||
|
use { "folke/tokyonight.nvim" }
|
||||||
|
use { "lunarvim/darkplus.nvim" }
|
||||||
|
use { "navarasu/onedark.nvim" }
|
||||||
|
use { "Mofiqul/dracula.nvim" }
|
||||||
|
|
||||||
|
-- cmp
|
||||||
|
use { "hrsh7th/nvim-cmp" }
|
||||||
|
use { "hrsh7th/cmp-buffer" }
|
||||||
|
use { "hrsh7th/cmp-path" }
|
||||||
|
use { "saadparwaiz1/cmp_luasnip" }
|
||||||
|
use { "hrsh7th/cmp-nvim-lsp" }
|
||||||
|
use { "hrsh7th/cmp-nvim-lua" }
|
||||||
|
|
||||||
|
-- Snippets
|
||||||
|
use { "L3MON4D3/LuaSnip" }
|
||||||
|
use { "rafamadriz/friendly-snippets" }
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
use { "neovim/nvim-lspconfig" }
|
||||||
|
use { "williamboman/mason.nvim" }
|
||||||
|
use { "williamboman/mason-lspconfig.nvim" }
|
||||||
|
use { "jose-elias-alvarez/null-ls.nvim" }
|
||||||
|
use { "RRethy/vim-illuminate" }
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
use { "nvim-telescope/telescope.nvim" }
|
||||||
|
|
||||||
|
-- Treesitter
|
||||||
|
use { "nvim-treesitter/nvim-treesitter" }
|
||||||
|
|
||||||
|
-- Git
|
||||||
|
use { "lewis6991/gitsigns.nvim" }
|
||||||
|
|
||||||
|
--Automatically setup configuration after cleaning packer.nvim
|
||||||
|
if PACKER_BOOTSTRAP then
|
||||||
|
require("packer").sync()
|
||||||
|
end
|
||||||
|
end)
|
22
config/nvim/lua/configs/tabout.lua
Normal file
22
config/nvim/lua/configs/tabout.lua
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
function EscapePair()
|
||||||
|
local closers = {")", "]", "}", ">", "'", '"', "`", ","}
|
||||||
|
local line = vim.api.nvim_get_current_line()
|
||||||
|
local row, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
local after = line:sub(col + 1, -1)
|
||||||
|
local closer_col = #after + 1
|
||||||
|
local closer_i = nil
|
||||||
|
for i, closer in ipairs(closers) do
|
||||||
|
local cur_index, _ = after:find(closer)
|
||||||
|
if cur_index and (cur_index < closer_col) then
|
||||||
|
closer_col = cur_index
|
||||||
|
closer_i = i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if closer_i then
|
||||||
|
vim.api.nvim_win_set_cursor(0, {row, col + closer_col})
|
||||||
|
else
|
||||||
|
vim.api.nvim_win_set_cursor(0, {row, col + 1})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-l>', '<cmd>lua EscapePair()<CR>', { noremap = true, silent = true})
|
91
config/nvim/lua/lsp/handlers.lua
Normal file
91
config/nvim/lua/lsp/handlers.lua
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local status_cmp_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
|
||||||
|
if not status_cmp_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
M.capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
M.capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
M.capabilities = cmp_nvim_lsp.default_capabilities(M.capabilities)
|
||||||
|
|
||||||
|
M.setup = function()
|
||||||
|
local signs = {
|
||||||
|
|
||||||
|
{ name = "DiagnosticSignError", text = "" },
|
||||||
|
{ name = "DiagnosticSignWarn", text = "" },
|
||||||
|
{ name = "DiagnosticSignHint", text = "" },
|
||||||
|
{ name = "DiagnosticSignInfo", text = "" },
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, sign in ipairs(signs) do
|
||||||
|
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
|
||||||
|
end
|
||||||
|
|
||||||
|
local config = {
|
||||||
|
virtual_text = false, -- disable virtual text
|
||||||
|
signs = {
|
||||||
|
active = signs, -- show signs
|
||||||
|
},
|
||||||
|
update_in_insert = true,
|
||||||
|
underline = true,
|
||||||
|
severity_sort = true,
|
||||||
|
float = {
|
||||||
|
focusable = true,
|
||||||
|
style = "minimal",
|
||||||
|
border = "rounded",
|
||||||
|
source = "always",
|
||||||
|
header = "",
|
||||||
|
prefix = "",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.diagnostic.config(config)
|
||||||
|
|
||||||
|
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||||
|
border = "rounded",
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||||
|
border = "rounded",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
local function lsp_keymaps(bufnr)
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
local keymap = vim.api.nvim_buf_set_keymap
|
||||||
|
keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "gI", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "gl", "<cmd>lua vim.diagnostic.open_float()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>lf", "<cmd>lua vim.lsp.buf.format{ async = true }<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>li", "<cmd>LspInfo<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>lI", "<cmd>LspInstallInfo<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>lj", "<cmd>lua vim.diagnostic.goto_next({buffer=0})<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>lk", "<cmd>lua vim.diagnostic.goto_prev({buffer=0})<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>lr", "<cmd>lua vim.lsp.buf.rename()<cr>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>ls", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
|
||||||
|
keymap(bufnr, "n", "<leader>lq", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.on_attach = function(client, bufnr)
|
||||||
|
if client.name == "tsserver" then
|
||||||
|
client.server_capabilities.documentFormattingProvider = false
|
||||||
|
end
|
||||||
|
|
||||||
|
if client.name == "sumneko_lua" then
|
||||||
|
client.server_capabilities.documentFormattingProvider = false
|
||||||
|
end
|
||||||
|
|
||||||
|
lsp_keymaps(bufnr)
|
||||||
|
local status_ok, illuminate = pcall(require, "illuminate")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
illuminate.on_attach(client)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
8
config/nvim/lua/lsp/init.lua
Normal file
8
config/nvim/lua/lsp/init.lua
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
local status_ok, _ = pcall(require, "lspconfig")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
require "lsp.mason"
|
||||||
|
require("lsp.handlers").setup()
|
||||||
|
require "lsp.null-ls"
|
52
config/nvim/lua/lsp/mason.lua
Normal file
52
config/nvim/lua/lsp/mason.lua
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
local servers = {
|
||||||
|
"lua_ls",
|
||||||
|
-- "cssls",
|
||||||
|
-- "html",
|
||||||
|
-- "tsserver",
|
||||||
|
"pyright",
|
||||||
|
-- "bashls",
|
||||||
|
"jsonls",
|
||||||
|
-- "yamlls",
|
||||||
|
}
|
||||||
|
|
||||||
|
local settings = {
|
||||||
|
ui = {
|
||||||
|
border = "none",
|
||||||
|
icons = {
|
||||||
|
package_installed = "◍",
|
||||||
|
package_pending = "◍",
|
||||||
|
package_uninstalled = "◍",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
log_level = vim.log.levels.INFO,
|
||||||
|
max_concurrent_installers = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
require("mason").setup(settings)
|
||||||
|
require("mason-lspconfig").setup({
|
||||||
|
ensure_installed = servers,
|
||||||
|
automatic_installation = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig")
|
||||||
|
if not lspconfig_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local opts = {}
|
||||||
|
|
||||||
|
for _, server in pairs(servers) do
|
||||||
|
opts = {
|
||||||
|
on_attach = require("lsp.handlers").on_attach,
|
||||||
|
capabilities = require("lsp.handlers").capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
|
server = vim.split(server, "@")[1]
|
||||||
|
|
||||||
|
local require_ok, conf_opts = pcall(require, "lsp.settings." .. server)
|
||||||
|
if require_ok then
|
||||||
|
opts = vim.tbl_deep_extend("force", conf_opts, opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
lspconfig[server].setup(opts)
|
||||||
|
end
|
19
config/nvim/lua/lsp/null-ls.lua
Normal file
19
config/nvim/lua/lsp/null-ls.lua
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||||
|
if not null_ls_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||||
|
local formatting = null_ls.builtins.formatting
|
||||||
|
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||||
|
local diagnostics = null_ls.builtins.diagnostics
|
||||||
|
|
||||||
|
null_ls.setup({
|
||||||
|
debug = false,
|
||||||
|
sources = {
|
||||||
|
formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
|
||||||
|
formatting.black.with({ extra_args = { "--fast" } }),
|
||||||
|
formatting.stylua,
|
||||||
|
-- diagnostics.flake8
|
||||||
|
},
|
||||||
|
})
|
197
config/nvim/lua/lsp/settings/jsonls.lua
Normal file
197
config/nvim/lua/lsp/settings/jsonls.lua
Normal file
|
@ -0,0 +1,197 @@
|
||||||
|
local default_schemas = nil
|
||||||
|
local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls")
|
||||||
|
if status_ok then
|
||||||
|
default_schemas = jsonls_settings.get_default_schemas()
|
||||||
|
end
|
||||||
|
|
||||||
|
local schemas = {
|
||||||
|
{
|
||||||
|
description = "TypeScript compiler configuration file",
|
||||||
|
fileMatch = {
|
||||||
|
"tsconfig.json",
|
||||||
|
"tsconfig.*.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/tsconfig.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Lerna config",
|
||||||
|
fileMatch = { "lerna.json" },
|
||||||
|
url = "https://json.schemastore.org/lerna.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Babel configuration",
|
||||||
|
fileMatch = {
|
||||||
|
".babelrc.json",
|
||||||
|
".babelrc",
|
||||||
|
"babel.config.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/babelrc.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "ESLint config",
|
||||||
|
fileMatch = {
|
||||||
|
".eslintrc.json",
|
||||||
|
".eslintrc",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/eslintrc.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Bucklescript config",
|
||||||
|
fileMatch = { "bsconfig.json" },
|
||||||
|
url = "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/8.2.0/docs/docson/build-schema.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Prettier config",
|
||||||
|
fileMatch = {
|
||||||
|
".prettierrc",
|
||||||
|
".prettierrc.json",
|
||||||
|
"prettier.config.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/prettierrc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Vercel Now config",
|
||||||
|
fileMatch = { "now.json" },
|
||||||
|
url = "https://json.schemastore.org/now",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Stylelint config",
|
||||||
|
fileMatch = {
|
||||||
|
".stylelintrc",
|
||||||
|
".stylelintrc.json",
|
||||||
|
"stylelint.config.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/stylelintrc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "A JSON schema for the ASP.NET LaunchSettings.json files",
|
||||||
|
fileMatch = { "launchsettings.json" },
|
||||||
|
url = "https://json.schemastore.org/launchsettings.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Schema for CMake Presets",
|
||||||
|
fileMatch = {
|
||||||
|
"CMakePresets.json",
|
||||||
|
"CMakeUserPresets.json",
|
||||||
|
},
|
||||||
|
url = "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Configuration file as an alternative for configuring your repository in the settings page.",
|
||||||
|
fileMatch = {
|
||||||
|
".codeclimate.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/codeclimate.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "LLVM compilation database",
|
||||||
|
fileMatch = {
|
||||||
|
"compile_commands.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/compile-commands.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Config file for Command Task Runner",
|
||||||
|
fileMatch = {
|
||||||
|
"commands.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/commands.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.",
|
||||||
|
fileMatch = {
|
||||||
|
"*.cf.json",
|
||||||
|
"cloudformation.json",
|
||||||
|
},
|
||||||
|
url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/cloudformation.schema.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.",
|
||||||
|
fileMatch = {
|
||||||
|
"serverless.template",
|
||||||
|
"*.sam.json",
|
||||||
|
"sam.json",
|
||||||
|
},
|
||||||
|
url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/sam.schema.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Json schema for properties json file for a GitHub Workflow template",
|
||||||
|
fileMatch = {
|
||||||
|
".github/workflow-templates/**.properties.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/github-workflow-template-properties.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "golangci-lint configuration file",
|
||||||
|
fileMatch = {
|
||||||
|
".golangci.toml",
|
||||||
|
".golangci.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/golangci-lint.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "JSON schema for the JSON Feed format",
|
||||||
|
fileMatch = {
|
||||||
|
"feed.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/feed.json",
|
||||||
|
versions = {
|
||||||
|
["1"] = "https://json.schemastore.org/feed-1.json",
|
||||||
|
["1.1"] = "https://json.schemastore.org/feed.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Packer template JSON configuration",
|
||||||
|
fileMatch = {
|
||||||
|
"packer.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/packer.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "NPM configuration file",
|
||||||
|
fileMatch = {
|
||||||
|
"package.json",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/package.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "JSON schema for Visual Studio component configuration files",
|
||||||
|
fileMatch = {
|
||||||
|
"*.vsconfig",
|
||||||
|
},
|
||||||
|
url = "https://json.schemastore.org/vsconfig.json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description = "Resume json",
|
||||||
|
fileMatch = { "resume.json" },
|
||||||
|
url = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local function extend(tab1, tab2)
|
||||||
|
for _, value in ipairs(tab2 or {}) do
|
||||||
|
table.insert(tab1, value)
|
||||||
|
end
|
||||||
|
return tab1
|
||||||
|
end
|
||||||
|
|
||||||
|
local extended_schemas = extend(schemas, default_schemas)
|
||||||
|
|
||||||
|
local opts = {
|
||||||
|
settings = {
|
||||||
|
json = {
|
||||||
|
schemas = extended_schemas,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup = {
|
||||||
|
commands = {
|
||||||
|
Format = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return opts
|
9
config/nvim/lua/lsp/settings/pyright.lua
Normal file
9
config/nvim/lua/lsp/settings/pyright.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
return {
|
||||||
|
settings = {
|
||||||
|
python = {
|
||||||
|
analysis = {
|
||||||
|
typeCheckingMode = "off",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
16
config/nvim/lua/lsp/settings/sumneko_lua.lua
Normal file
16
config/nvim/lua/lsp/settings/sumneko_lua.lua
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
return {
|
||||||
|
settings = {
|
||||||
|
|
||||||
|
Lua = {
|
||||||
|
diagnostics = {
|
||||||
|
globals = { "vim" },
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
library = {
|
||||||
|
[vim.fn.expand("$VIMRUNTIME/lua")] = true,
|
||||||
|
[vim.fn.stdpath("config") .. "/lua"] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
42
config/nvim/lua/plugins/alpha.lua
Normal file
42
config/nvim/lua/plugins/alpha.lua
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
local status_ok, alpha = pcall(require, "alpha")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local dashboard = require("alpha.themes.dashboard")
|
||||||
|
dashboard.section.header.val = {
|
||||||
|
[[ __ ]],
|
||||||
|
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
|
||||||
|
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
|
||||||
|
[[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
|
||||||
|
[[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
|
||||||
|
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
|
||||||
|
}
|
||||||
|
dashboard.section.buttons.val = {
|
||||||
|
dashboard.button("f", " Find file", ":Telescope find_files <CR>"),
|
||||||
|
dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
|
||||||
|
dashboard.button("p", " Find project", ":Telescope projects <CR>"),
|
||||||
|
dashboard.button("r", " Recently used files", ":Telescope oldfiles <CR>"),
|
||||||
|
dashboard.button("t", " Find text", ":Telescope live_grep <CR>"),
|
||||||
|
dashboard.button("c", " Configuration", ":e $MYVIMRC <CR>"),
|
||||||
|
dashboard.button("q", " Quit Neovim", ":qa<CR>"),
|
||||||
|
}
|
||||||
|
|
||||||
|
local function footer()
|
||||||
|
-- NOTE: requires the fortune-mod package to work
|
||||||
|
-- local handle = io.popen("fortune")
|
||||||
|
-- local fortune = handle:read("*a")
|
||||||
|
-- handle:close()
|
||||||
|
-- return fortune
|
||||||
|
return "chrisatmachine.com"
|
||||||
|
end
|
||||||
|
|
||||||
|
dashboard.section.footer.val = footer()
|
||||||
|
|
||||||
|
dashboard.section.footer.opts.hl = "Type"
|
||||||
|
dashboard.section.header.opts.hl = "Include"
|
||||||
|
dashboard.section.buttons.opts.hl = "Keyword"
|
||||||
|
|
||||||
|
dashboard.opts.opts.noautocmd = true
|
||||||
|
-- vim.cmd([[autocmd User AlphaReady echo 'ready']])
|
||||||
|
alpha.setup(dashboard.opts)
|
37
config/nvim/lua/plugins/autocommands.lua
Normal file
37
config/nvim/lua/plugins/autocommands.lua
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
vim.cmd [[
|
||||||
|
augroup _general_settings
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType qf,help,man,lspinfo nnoremap <silent> <buffer> q :close<CR>
|
||||||
|
autocmd TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200})
|
||||||
|
autocmd BufWinEnter * :set formatoptions-=cro
|
||||||
|
autocmd FileType qf set nobuflisted
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _git
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType gitcommit setlocal wrap
|
||||||
|
autocmd FileType gitcommit setlocal spell
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _markdown
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType markdown setlocal wrap
|
||||||
|
autocmd FileType markdown setlocal spell
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _auto_resize
|
||||||
|
autocmd!
|
||||||
|
autocmd VimResized * tabdo wincmd =
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _alpha
|
||||||
|
autocmd!
|
||||||
|
autocmd User AlphaReady set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2
|
||||||
|
augroup end
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- Autoformat
|
||||||
|
-- augroup _lsp
|
||||||
|
-- autocmd!
|
||||||
|
-- autocmd BufWritePre * lua vim.lsp.buf.formatting()
|
||||||
|
-- augroup end
|
59
config/nvim/lua/plugins/autopairs.lua
Normal file
59
config/nvim/lua/plugins/autopairs.lua
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
-- Setup nvim-cmp.
|
||||||
|
local status_ok, npairs = pcall(require, "nvim-autopairs")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
npairs.setup {
|
||||||
|
check_ts = true,
|
||||||
|
ts_config = {
|
||||||
|
lua = { "string", "source" },
|
||||||
|
javascript = { "string", "template_string" },
|
||||||
|
java = false,
|
||||||
|
},
|
||||||
|
disable_filetype = { "TelescopePrompt", "spectre_panel" },
|
||||||
|
fast_wrap = {
|
||||||
|
map = "<M-e>",
|
||||||
|
chars = { "{", "[", "(", '"', "'" },
|
||||||
|
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
|
||||||
|
offset = 0, -- Offset from pattern match
|
||||||
|
end_key = "$",
|
||||||
|
keys = "qwertyuiopzxcvbnmasdfghjkl",
|
||||||
|
check_comma = true,
|
||||||
|
highlight = "PmenuSel",
|
||||||
|
highlight_grey = "LineNr",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
|
||||||
|
local cmp_status_ok, cmp = pcall(require, "cmp")
|
||||||
|
if not cmp_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } })
|
||||||
|
|
||||||
|
local npairs = require'nvim-autopairs'
|
||||||
|
local Rule = require'nvim-autopairs.rule'
|
||||||
|
|
||||||
|
local brackets = { { '(', ')' }, { '[', ']' }, { '{', '}' } }
|
||||||
|
npairs.add_rules {
|
||||||
|
Rule(' ', ' ')
|
||||||
|
:with_pair(function (opts)
|
||||||
|
local pair = opts.line:sub(opts.col - 1, opts.col)
|
||||||
|
return vim.tbl_contains({
|
||||||
|
brackets[1][1]..brackets[1][2],
|
||||||
|
brackets[2][1]..brackets[2][2],
|
||||||
|
brackets[3][1]..brackets[3][2],
|
||||||
|
}, pair)
|
||||||
|
end)
|
||||||
|
}
|
||||||
|
for _,bracket in pairs(brackets) do
|
||||||
|
npairs.add_rules {
|
||||||
|
Rule(bracket[1]..' ', ' '..bracket[2])
|
||||||
|
:with_pair(function() return false end)
|
||||||
|
:with_move(function(opts)
|
||||||
|
return opts.prev_char:match('.%'..bracket[2]) ~= nil
|
||||||
|
end)
|
||||||
|
:use_key(bracket[2])
|
||||||
|
}
|
||||||
|
end
|
166
config/nvim/lua/plugins/bufferline.lua
Normal file
166
config/nvim/lua/plugins/bufferline.lua
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
local status_ok, bufferline = pcall(require, "bufferline")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
bufferline.setup {
|
||||||
|
options = {
|
||||||
|
numbers = "none", -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
|
||||||
|
close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
|
||||||
|
right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
|
||||||
|
left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
|
||||||
|
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
|
||||||
|
-- NOTE: this plugin is designed with this icon in mind,
|
||||||
|
-- and so changing this is NOT recommended, this is intended
|
||||||
|
-- as an escape hatch for people who cannot bear it for whatever reason
|
||||||
|
indicator_icon = nil,
|
||||||
|
indicator = { style = "icon", icon = "▎"},
|
||||||
|
buffer_close_icon = '',
|
||||||
|
modified_icon = "●",
|
||||||
|
close_icon = "",
|
||||||
|
left_trunc_marker = "",
|
||||||
|
right_trunc_marker = "",
|
||||||
|
--- name_formatter can be used to change the buffer's label in the bufferline.
|
||||||
|
--- Please note some names can/will break the
|
||||||
|
--- bufferline so use this at your discretion knowing that it has
|
||||||
|
--- some limitations that will *NOT* be fixed.
|
||||||
|
-- name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"
|
||||||
|
-- -- remove extension from markdown files for example
|
||||||
|
-- if buf.name:match('%.md') then
|
||||||
|
-- return vim.fn.fnamemodify(buf.name, ':t:r')
|
||||||
|
-- end
|
||||||
|
-- end,
|
||||||
|
max_name_length = 30,
|
||||||
|
max_prefix_length = 30, -- prefix used when a buffer is de-duplicated
|
||||||
|
tab_size = 21,
|
||||||
|
diagnostics = false, -- | "nvim_lsp" | "coc",
|
||||||
|
diagnostics_update_in_insert = false,
|
||||||
|
-- diagnostics_indicator = function(count, level, diagnostics_dict, context)
|
||||||
|
-- return "("..count..")"
|
||||||
|
-- end,
|
||||||
|
-- NOTE: this will be called a lot so don't do any heavy processing here
|
||||||
|
-- custom_filter = function(buf_number)
|
||||||
|
-- -- filter out filetypes you don't want to see
|
||||||
|
-- if vim.bo[buf_number].filetype ~= "<i-dont-want-to-see-this>" then
|
||||||
|
-- return true
|
||||||
|
-- end
|
||||||
|
-- -- filter out by buffer name
|
||||||
|
-- if vim.fn.bufname(buf_number) ~= "<buffer-name-I-dont-want>" then
|
||||||
|
-- return true
|
||||||
|
-- end
|
||||||
|
-- -- filter out based on arbitrary rules
|
||||||
|
-- -- e.g. filter out vim wiki buffer from tabline in your work repo
|
||||||
|
-- if vim.fn.getcwd() == "<work-repo>" and vim.bo[buf_number].filetype ~= "wiki" then
|
||||||
|
-- return true
|
||||||
|
-- end
|
||||||
|
-- end,
|
||||||
|
offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
|
||||||
|
show_buffer_icons = true,
|
||||||
|
show_buffer_close_icons = true,
|
||||||
|
show_close_icon = true,
|
||||||
|
show_tab_indicators = true,
|
||||||
|
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
|
||||||
|
-- can also be a table containing 2 custom separators
|
||||||
|
-- [focused and unfocused]. eg: { '|', '|' }
|
||||||
|
separator_style = "thin", -- | "thick" | "thin" | { 'any', 'any' },
|
||||||
|
enforce_regular_tabs = true,
|
||||||
|
always_show_bufferline = true,
|
||||||
|
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
|
||||||
|
-- -- add custom logic
|
||||||
|
-- return buffer_a.modified > buffer_b.modified
|
||||||
|
-- end
|
||||||
|
},
|
||||||
|
highlights = {
|
||||||
|
fill = {
|
||||||
|
fg = { attribute = "fg", highlight = "Visual" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
background = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- buffer_selected = {
|
||||||
|
-- fg = {attribute='fg',highlight='#ff0000'},
|
||||||
|
-- bg = {attribute='bg',highlight='#0000ff'},
|
||||||
|
-- gui = 'none'
|
||||||
|
-- },
|
||||||
|
buffer_visible = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
|
||||||
|
close_button = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
close_button_visible = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
-- close_button_selected = {
|
||||||
|
-- fg = {attribute='fg',highlight='TabLineSel'},
|
||||||
|
-- bg ={attribute='bg',highlight='TabLineSel'}
|
||||||
|
-- },
|
||||||
|
|
||||||
|
tab_selected = {
|
||||||
|
fg = { attribute = "fg", highlight = "Normal" },
|
||||||
|
bg = { attribute = "bg", highlight = "Normal" },
|
||||||
|
},
|
||||||
|
tab = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
tab_close = {
|
||||||
|
-- fg = {attribute='fg',highlight='LspDiagnosticsDefaultError'},
|
||||||
|
fg = { attribute = "fg", highlight = "TabLineSel" },
|
||||||
|
bg = { attribute = "bg", highlight = "Normal" },
|
||||||
|
},
|
||||||
|
|
||||||
|
duplicate_selected = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLineSel" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLineSel" },
|
||||||
|
underline = true,
|
||||||
|
},
|
||||||
|
duplicate_visible = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
underline = true,
|
||||||
|
},
|
||||||
|
duplicate = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
underline = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
modified = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
modified_selected = {
|
||||||
|
fg = { attribute = "fg", highlight = "Normal" },
|
||||||
|
bg = { attribute = "bg", highlight = "Normal" },
|
||||||
|
},
|
||||||
|
modified_visible = {
|
||||||
|
fg = { attribute = "fg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
|
||||||
|
separator = {
|
||||||
|
fg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
bg = { attribute = "bg", highlight = "TabLine" },
|
||||||
|
},
|
||||||
|
separator_selected = {
|
||||||
|
fg = { attribute = "bg", highlight = "Normal" },
|
||||||
|
bg = { attribute = "bg", highlight = "Normal" },
|
||||||
|
},
|
||||||
|
-- separator_visible = {
|
||||||
|
-- fg = {attribute='bg',highlight='TabLine'},
|
||||||
|
-- bg = {attribute='bg',highlight='TabLine'}
|
||||||
|
-- },
|
||||||
|
indicator_selected = {
|
||||||
|
fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" },
|
||||||
|
bg = { attribute = "bg", highlight = "Normal" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
135
config/nvim/lua/plugins/cmp.lua
Normal file
135
config/nvim/lua/plugins/cmp.lua
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
local cmp_status_ok, cmp = pcall(require, "cmp")
|
||||||
|
if not cmp_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local snip_status_ok, luasnip = pcall(require, "luasnip")
|
||||||
|
if not snip_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
require("luasnip/loaders/from_vscode").lazy_load()
|
||||||
|
|
||||||
|
local check_backspace = function()
|
||||||
|
local col = vim.fn.col "." - 1
|
||||||
|
return col == 0 or vim.fn.getline("."):sub(col, col):match "%s"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- פּ ﯟ some other good icons
|
||||||
|
-- פּ ﯟ some other good icons
|
||||||
|
local kind_icons = {
|
||||||
|
Text = "",
|
||||||
|
Method = "m",
|
||||||
|
Function = "",
|
||||||
|
Constructor = "",
|
||||||
|
Field = "",
|
||||||
|
Variable = "",
|
||||||
|
Class = "",
|
||||||
|
Interface = "",
|
||||||
|
Module = "",
|
||||||
|
Property = "",
|
||||||
|
Unit = "",
|
||||||
|
Value = "",
|
||||||
|
Enum = "",
|
||||||
|
Keyword = "",
|
||||||
|
Snippet = "",
|
||||||
|
Color = "",
|
||||||
|
File = "",
|
||||||
|
Reference = "",
|
||||||
|
Folder = "",
|
||||||
|
EnumMember = "",
|
||||||
|
Constant = "",
|
||||||
|
Struct = "",
|
||||||
|
Event = "",
|
||||||
|
Operator = "",
|
||||||
|
TypeParameter = "",
|
||||||
|
}
|
||||||
|
-- find more here: https://www.nerdfonts.com/cheat-sheet
|
||||||
|
|
||||||
|
cmp.setup {
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
["<C-k>"] = cmp.mapping.select_prev_item(),
|
||||||
|
["<C-j>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
||||||
|
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
||||||
|
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
||||||
|
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||||
|
["<C-e>"] = cmp.mapping {
|
||||||
|
i = cmp.mapping.abort(),
|
||||||
|
c = cmp.mapping.close(),
|
||||||
|
},
|
||||||
|
-- Accept currently selected item. If none selected, `select` first item.
|
||||||
|
-- Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
["<CR>"] = cmp.mapping.confirm { select = true },
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expandable() then
|
||||||
|
luasnip.expand()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif check_backspace() then
|
||||||
|
fallback()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
"i",
|
||||||
|
"s",
|
||||||
|
}),
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
"i",
|
||||||
|
"s",
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
fields = { "kind", "abbr", "menu" },
|
||||||
|
format = function(entry, vim_item)
|
||||||
|
-- Kind icons
|
||||||
|
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
|
||||||
|
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
|
||||||
|
vim_item.menu = ({
|
||||||
|
nvim_lsp = "[LSP]",
|
||||||
|
luasnip = "[Snippet]",
|
||||||
|
buffer = "[Buffer]",
|
||||||
|
path = "[Path]",
|
||||||
|
})[entry.source.name]
|
||||||
|
return vim_item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "luasnip" },
|
||||||
|
{ name = "buffer" },
|
||||||
|
{ name = "path" },
|
||||||
|
},
|
||||||
|
confirm_opts = {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = false,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered({
|
||||||
|
winhighlight = "Normal:Normal,FloatBorder:BorderBG,CursorLine:PmenuSel,Search:None",
|
||||||
|
}),
|
||||||
|
documentation = {
|
||||||
|
border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
experimental = {
|
||||||
|
ghost_text = false,
|
||||||
|
native_menu = false,
|
||||||
|
},
|
||||||
|
}
|
32
config/nvim/lua/plugins/comment.lua
Normal file
32
config/nvim/lua/plugins/comment.lua
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
local status_ok, comment = pcall(require, "Comment")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
comment.setup {
|
||||||
|
pre_hook = function(ctx)
|
||||||
|
local U = require "Comment.utils"
|
||||||
|
|
||||||
|
local status_utils_ok, utils = pcall(require, "ts_context_commentstring.utils")
|
||||||
|
if not status_utils_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local location = nil
|
||||||
|
if ctx.ctype == U.ctype.block then
|
||||||
|
location = utils.get_cursor_location()
|
||||||
|
elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then
|
||||||
|
location = utils.get_visual_start_location()
|
||||||
|
end
|
||||||
|
|
||||||
|
local status_internals_ok, internals = pcall(require, "ts_context_commentstring.internals")
|
||||||
|
if not status_internals_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
return internals.calculate_commentstring {
|
||||||
|
key = ctx.ctype == U.ctype.line and "__default" or "__multiline",
|
||||||
|
location = location,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}
|
48
config/nvim/lua/plugins/gitsigns.lua
Normal file
48
config/nvim/lua/plugins/gitsigns.lua
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
local status_ok, gitsigns = pcall(require, "gitsigns")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
gitsigns.setup {
|
||||||
|
signs = {
|
||||||
|
add = { hl = "GitSignsAdd", text = " ", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
|
||||||
|
change = { hl = "GitSignsChange", text = " ", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
||||||
|
delete = { hl = "GitSignsDelete", text = " ", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
||||||
|
topdelete = { hl = "GitSignsDelete", text = " ", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
||||||
|
changedelete = { hl = "GitSignsChange", text = " ", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
||||||
|
},
|
||||||
|
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||||
|
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||||
|
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||||
|
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||||
|
watch_gitdir = {
|
||||||
|
interval = 1000,
|
||||||
|
follow_files = true,
|
||||||
|
},
|
||||||
|
attach_to_untracked = true,
|
||||||
|
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||||
|
current_line_blame_opts = {
|
||||||
|
virt_text = true,
|
||||||
|
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
|
||||||
|
delay = 1000,
|
||||||
|
ignore_whitespace = false,
|
||||||
|
},
|
||||||
|
current_line_blame_formatter_opts = {
|
||||||
|
relative_time = false,
|
||||||
|
},
|
||||||
|
sign_priority = 6,
|
||||||
|
update_debounce = 100,
|
||||||
|
status_formatter = nil, -- Use default
|
||||||
|
max_file_length = 40000,
|
||||||
|
preview_config = {
|
||||||
|
-- Options passed to nvim_open_win
|
||||||
|
border = "single",
|
||||||
|
style = "minimal",
|
||||||
|
relative = "cursor",
|
||||||
|
row = 0,
|
||||||
|
col = 1,
|
||||||
|
},
|
||||||
|
yadm = {
|
||||||
|
enable = false,
|
||||||
|
},
|
||||||
|
}
|
6
config/nvim/lua/plugins/impatient.lua
Normal file
6
config/nvim/lua/plugins/impatient.lua
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
local status_ok, impatient = pcall(require, "impatient")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
impatient.enable_profile()
|
24
config/nvim/lua/plugins/indentline.lua
Normal file
24
config/nvim/lua/plugins/indentline.lua
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
local highlight = {
|
||||||
|
"RainbowRed",
|
||||||
|
"RainbowYellow",
|
||||||
|
"RainbowBlue",
|
||||||
|
"RainbowOrange",
|
||||||
|
"RainbowGreen",
|
||||||
|
"RainbowViolet",
|
||||||
|
"RainbowCyan",
|
||||||
|
}
|
||||||
|
|
||||||
|
local hooks = require "ibl.hooks"
|
||||||
|
-- create the highlight groups in the highlight setup hook, so they are reset
|
||||||
|
-- every time the colorscheme changes
|
||||||
|
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
|
||||||
|
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
|
||||||
|
end)
|
||||||
|
|
||||||
|
require("ibl").setup { indent = { highlight = highlight } }
|
93
config/nvim/lua/plugins/lualine.lua
Normal file
93
config/nvim/lua/plugins/lualine.lua
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
local status_ok, lualine = pcall(require, "lualine")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local hide_in_width = function()
|
||||||
|
return vim.fn.winwidth(0) > 80
|
||||||
|
end
|
||||||
|
|
||||||
|
local diagnostics = {
|
||||||
|
"diagnostics",
|
||||||
|
sources = { "nvim_diagnostic" },
|
||||||
|
sections = { "error", "warn" },
|
||||||
|
symbols = { error = " ", warn = " " },
|
||||||
|
colored = false,
|
||||||
|
update_in_insert = false,
|
||||||
|
always_visible = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
local diff = {
|
||||||
|
"diff",
|
||||||
|
colored = false,
|
||||||
|
symbols = { added = " ", modified = " ", removed = " " }, -- changes diff symbols
|
||||||
|
cond = hide_in_width
|
||||||
|
}
|
||||||
|
|
||||||
|
local mode = {
|
||||||
|
"mode",
|
||||||
|
fmt = function(str)
|
||||||
|
return "-- " .. str .. " --"
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
local filetype = {
|
||||||
|
"filetype",
|
||||||
|
icons_enabled = false,
|
||||||
|
icon = nil,
|
||||||
|
}
|
||||||
|
|
||||||
|
local branch = {
|
||||||
|
"branch",
|
||||||
|
icons_enabled = true,
|
||||||
|
icon = "",
|
||||||
|
}
|
||||||
|
|
||||||
|
local location = {
|
||||||
|
"location",
|
||||||
|
padding = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- cool function for progress
|
||||||
|
local progress = function()
|
||||||
|
local current_line = vim.fn.line(".")
|
||||||
|
local total_lines = vim.fn.line("$")
|
||||||
|
local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" }
|
||||||
|
local line_ratio = current_line / total_lines
|
||||||
|
local index = math.ceil(line_ratio * #chars)
|
||||||
|
return chars[index]
|
||||||
|
end
|
||||||
|
|
||||||
|
local spaces = function()
|
||||||
|
return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth")
|
||||||
|
end
|
||||||
|
|
||||||
|
lualine.setup({
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = "auto",
|
||||||
|
component_separators = { left = '', right = ''},
|
||||||
|
section_separators = { left = '', right = ''},
|
||||||
|
disabled_filetypes = { "alpha", "dashboard", "NvimTree", "Outline" },
|
||||||
|
always_divide_middle = true,
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = { branch, diagnostics },
|
||||||
|
lualine_b = { mode },
|
||||||
|
lualine_c = {},
|
||||||
|
-- lualine_x = { "encoding", "fileformat", "filetype" },
|
||||||
|
lualine_x = { diff, spaces, "encoding", filetype },
|
||||||
|
lualine_y = { location },
|
||||||
|
lualine_z = { progress },
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = { "filename" },
|
||||||
|
lualine_x = { "location" },
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
extensions = {},
|
||||||
|
})
|
20
config/nvim/lua/plugins/neoscroll.lua
Normal file
20
config/nvim/lua/plugins/neoscroll.lua
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
require('neoscroll').setup({
|
||||||
|
ease_function = "quadratic",
|
||||||
|
-- Set any options as needed
|
||||||
|
pre_hook = function(info) if info == "cursorline" then vim.wo.cursorline = false end end,
|
||||||
|
post_hook = function(info) if info == "cursorline" then vim.wo.cursorline = true end end
|
||||||
|
})
|
||||||
|
|
||||||
|
local t = {}
|
||||||
|
-- Syntax: t[keys] = {function, {function arguments}}
|
||||||
|
t['<C-u>'] = {'scroll', {'-vim.wo.scroll', 'true', '250', 'sine', [['cursorline']]}}
|
||||||
|
t['<C-d>'] = {'scroll', { 'vim.wo.scroll', 'true', '250', 'sine', [['cursorline']]}}
|
||||||
|
t['<C-b>'] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '450'}}
|
||||||
|
t['<C-f>'] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '450'}}
|
||||||
|
t['<C-y>'] = {'scroll', {'-0.10', 'false', '100'}}
|
||||||
|
t['<C-e>'] = {'scroll', { '0.10', 'false', '100'}}
|
||||||
|
t['zt'] = {'zt', {'250'}}
|
||||||
|
t['zz'] = {'zz', {'250'}}
|
||||||
|
t['zb'] = {'zb', {'250'}}
|
||||||
|
|
||||||
|
require('neoscroll.config').set_mappings(t)
|
26
config/nvim/lua/plugins/nvim-tree.lua
Normal file
26
config/nvim/lua/plugins/nvim-tree.lua
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
|
||||||
|
-- disable netrw at the very start of your init.lua
|
||||||
|
vim.g.loaded_netrw = 1
|
||||||
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
|
||||||
|
-- optionally enable 24-bit colour
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
|
-- empty setup using defaults
|
||||||
|
require("nvim-tree").setup()
|
||||||
|
|
||||||
|
-- OR setup with some options
|
||||||
|
require("nvim-tree").setup({
|
||||||
|
sort = {
|
||||||
|
sorter = "case_sensitive",
|
||||||
|
},
|
||||||
|
view = {
|
||||||
|
width = 30,
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
group_empty = true,
|
||||||
|
},
|
||||||
|
filters = {
|
||||||
|
dotfiles = true,
|
||||||
|
},
|
||||||
|
})
|
67
config/nvim/lua/plugins/nvim-tree.lua.bak
Normal file
67
config/nvim/lua/plugins/nvim-tree.lua.bak
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
local status_ok, nvim_tree = pcall(require, "nvim-tree")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
|
||||||
|
if not config_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local tree_cb = nvim_tree_config.nvim_tree_callback
|
||||||
|
|
||||||
|
nvim_tree.setup {
|
||||||
|
update_focused_file = {
|
||||||
|
enable = true,
|
||||||
|
update_cwd = true,
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
root_folder_modifier = ":t",
|
||||||
|
icons = {
|
||||||
|
glyphs = {
|
||||||
|
default = "",
|
||||||
|
symlink = "",
|
||||||
|
folder = {
|
||||||
|
arrow_open = "",
|
||||||
|
arrow_closed = "",
|
||||||
|
default = "",
|
||||||
|
open = "",
|
||||||
|
empty = "",
|
||||||
|
empty_open = "",
|
||||||
|
symlink = "",
|
||||||
|
symlink_open = "",
|
||||||
|
},
|
||||||
|
git = {
|
||||||
|
unstaged = "",
|
||||||
|
staged = "S",
|
||||||
|
unmerged = "",
|
||||||
|
renamed = "➜",
|
||||||
|
untracked = "U",
|
||||||
|
deleted = "",
|
||||||
|
ignored = "◌",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
diagnostics = {
|
||||||
|
enable = true,
|
||||||
|
show_on_dirs = true,
|
||||||
|
icons = {
|
||||||
|
hint = "",
|
||||||
|
info = "",
|
||||||
|
warning = "",
|
||||||
|
error = "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
view = {
|
||||||
|
width = 30,
|
||||||
|
side = "left",
|
||||||
|
-- mappings = {
|
||||||
|
-- list = {
|
||||||
|
-- { key = { "l", "<CR>", "o" }, cb = tree_cb "edit" },
|
||||||
|
-- { key = "h", cb = tree_cb "close_node" },
|
||||||
|
-- { key = "v", cb = tree_cb "vsplit" },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
}
|
48
config/nvim/lua/plugins/project.lua
Normal file
48
config/nvim/lua/plugins/project.lua
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
local status_ok, project = pcall(require, "project_nvim")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
project.setup({
|
||||||
|
---@usage set to false to disable project.nvim.
|
||||||
|
--- This is on by default since it's currently the expected behavior.
|
||||||
|
active = true,
|
||||||
|
|
||||||
|
on_config_done = nil,
|
||||||
|
|
||||||
|
---@usage set to true to disable setting the current-woriking directory
|
||||||
|
--- Manual mode doesn't automatically change your root directory, so you have
|
||||||
|
--- the option to manually do so using `:ProjectRoot` command.
|
||||||
|
manual_mode = false,
|
||||||
|
|
||||||
|
---@usage Methods of detecting the root directory
|
||||||
|
--- Allowed values: **"lsp"** uses the native neovim lsp
|
||||||
|
--- **"pattern"** uses vim-rooter like glob pattern matching. Here
|
||||||
|
--- order matters: if one is not detected, the other is used as fallback. You
|
||||||
|
--- can also delete or rearangne the detection methods.
|
||||||
|
-- detection_methods = { "lsp", "pattern" }, -- NOTE: lsp detection will get annoying with multiple langs in one project
|
||||||
|
detection_methods = { "pattern" },
|
||||||
|
|
||||||
|
---@usage patterns used to detect root dir, when **"pattern"** is in detection_methods
|
||||||
|
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json" },
|
||||||
|
|
||||||
|
---@ Show hidden files in telescope when searching for files in a project
|
||||||
|
show_hidden = false,
|
||||||
|
|
||||||
|
---@usage When set to false, you will get a message when project.nvim changes your directory.
|
||||||
|
-- When set to false, you will get a message when project.nvim changes your directory.
|
||||||
|
silent_chdir = true,
|
||||||
|
|
||||||
|
---@usage list of lsp client names to ignore when using **lsp** detection. eg: { "efm", ... }
|
||||||
|
ignore_lsp = {},
|
||||||
|
|
||||||
|
---@type string
|
||||||
|
---@usage path to store the project history for use in telescope
|
||||||
|
datapath = vim.fn.stdpath("data"),
|
||||||
|
})
|
||||||
|
|
||||||
|
local tele_status_ok, telescope = pcall(require, "telescope")
|
||||||
|
if not tele_status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
telescope.load_extension('projects')
|
96
config/nvim/lua/plugins/telescope.lua
Normal file
96
config/nvim/lua/plugins/telescope.lua
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
local status_ok, telescope = pcall(require, "telescope")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local actions = require "telescope.actions"
|
||||||
|
|
||||||
|
telescope.setup {
|
||||||
|
defaults = {
|
||||||
|
|
||||||
|
prompt_prefix = " ",
|
||||||
|
selection_caret = " ",
|
||||||
|
path_display = { "smart" },
|
||||||
|
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<C-n>"] = actions.cycle_history_next,
|
||||||
|
["<C-p>"] = actions.cycle_history_prev,
|
||||||
|
|
||||||
|
["<C-j>"] = actions.move_selection_next,
|
||||||
|
["<C-k>"] = actions.move_selection_previous,
|
||||||
|
|
||||||
|
["<C-c>"] = actions.close,
|
||||||
|
|
||||||
|
["<Down>"] = actions.move_selection_next,
|
||||||
|
["<Up>"] = actions.move_selection_previous,
|
||||||
|
|
||||||
|
["<CR>"] = actions.select_default,
|
||||||
|
["<C-x>"] = actions.select_horizontal,
|
||||||
|
["<C-v>"] = actions.select_vertical,
|
||||||
|
["<C-t>"] = actions.select_tab,
|
||||||
|
|
||||||
|
["<C-u>"] = actions.preview_scrolling_up,
|
||||||
|
["<C-d>"] = actions.preview_scrolling_down,
|
||||||
|
|
||||||
|
["<PageUp>"] = actions.results_scrolling_up,
|
||||||
|
["<PageDown>"] = actions.results_scrolling_down,
|
||||||
|
|
||||||
|
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
||||||
|
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
||||||
|
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
||||||
|
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||||
|
["<C-l>"] = actions.complete_tag,
|
||||||
|
["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
|
||||||
|
},
|
||||||
|
|
||||||
|
n = {
|
||||||
|
["<esc>"] = actions.close,
|
||||||
|
["<CR>"] = actions.select_default,
|
||||||
|
["<C-x>"] = actions.select_horizontal,
|
||||||
|
["<C-v>"] = actions.select_vertical,
|
||||||
|
["<C-t>"] = actions.select_tab,
|
||||||
|
|
||||||
|
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
||||||
|
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
||||||
|
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
||||||
|
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||||
|
|
||||||
|
["j"] = actions.move_selection_next,
|
||||||
|
["k"] = actions.move_selection_previous,
|
||||||
|
["H"] = actions.move_to_top,
|
||||||
|
["M"] = actions.move_to_middle,
|
||||||
|
["L"] = actions.move_to_bottom,
|
||||||
|
|
||||||
|
["<Down>"] = actions.move_selection_next,
|
||||||
|
["<Up>"] = actions.move_selection_previous,
|
||||||
|
["gg"] = actions.move_to_top,
|
||||||
|
["G"] = actions.move_to_bottom,
|
||||||
|
|
||||||
|
["<C-u>"] = actions.preview_scrolling_up,
|
||||||
|
["<C-d>"] = actions.preview_scrolling_down,
|
||||||
|
|
||||||
|
["<PageUp>"] = actions.results_scrolling_up,
|
||||||
|
["<PageDown>"] = actions.results_scrolling_down,
|
||||||
|
|
||||||
|
["?"] = actions.which_key,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pickers = {
|
||||||
|
-- Default configuration for builtin pickers goes here:
|
||||||
|
-- picker_name = {
|
||||||
|
-- picker_config_key = value,
|
||||||
|
-- ...
|
||||||
|
-- }
|
||||||
|
-- Now the picker_config_key will be applied every time you call this
|
||||||
|
-- builtin picker
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
-- Your extension configuration goes here:
|
||||||
|
-- extension_name = {
|
||||||
|
-- extension_config_key = value,
|
||||||
|
-- }
|
||||||
|
-- please take a look at the readme of the extension you want to configure
|
||||||
|
},
|
||||||
|
}
|
70
config/nvim/lua/plugins/toggleterm.lua
Normal file
70
config/nvim/lua/plugins/toggleterm.lua
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
local status_ok, toggleterm = pcall(require, "toggleterm")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
toggleterm.setup({
|
||||||
|
size = 20,
|
||||||
|
open_mapping = [[<c-\>]],
|
||||||
|
hide_numbers = true,
|
||||||
|
shade_filetypes = {},
|
||||||
|
shade_terminals = true,
|
||||||
|
shading_factor = 2,
|
||||||
|
start_in_insert = true,
|
||||||
|
insert_mappings = true,
|
||||||
|
persist_size = true,
|
||||||
|
direction = "float",
|
||||||
|
close_on_exit = true,
|
||||||
|
shell = vim.o.shell,
|
||||||
|
float_opts = {
|
||||||
|
border = "curved",
|
||||||
|
winblend = 0,
|
||||||
|
highlights = {
|
||||||
|
border = "Normal",
|
||||||
|
background = "Normal",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
function _G.set_terminal_keymaps()
|
||||||
|
local opts = {noremap = true}
|
||||||
|
vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-\><C-n>]], opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(0, 't', 'jk', [[<C-\><C-n>]], opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-h>', [[<C-\><C-n><C-W>h]], opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-j>', [[<C-\><C-n><C-W>j]], opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-k>', [[<C-\><C-n><C-W>k]], opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-l>', [[<C-\><C-n><C-W>l]], opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
|
||||||
|
|
||||||
|
local Terminal = require("toggleterm.terminal").Terminal
|
||||||
|
local lazygit = Terminal:new({ cmd = "lazygit", hidden = true })
|
||||||
|
|
||||||
|
function _LAZYGIT_TOGGLE()
|
||||||
|
lazygit:toggle()
|
||||||
|
end
|
||||||
|
|
||||||
|
local node = Terminal:new({ cmd = "node", hidden = true })
|
||||||
|
|
||||||
|
function _NODE_TOGGLE()
|
||||||
|
node:toggle()
|
||||||
|
end
|
||||||
|
|
||||||
|
local ncdu = Terminal:new({ cmd = "ncdu", hidden = true })
|
||||||
|
|
||||||
|
function _NCDU_TOGGLE()
|
||||||
|
ncdu:toggle()
|
||||||
|
end
|
||||||
|
|
||||||
|
local htop = Terminal:new({ cmd = "htop", hidden = true })
|
||||||
|
|
||||||
|
function _HTOP_TOGGLE()
|
||||||
|
htop:toggle()
|
||||||
|
end
|
||||||
|
|
||||||
|
local python = Terminal:new({ cmd = "python", hidden = true })
|
||||||
|
|
||||||
|
function _PYTHON_TOGGLE()
|
||||||
|
python:toggle()
|
||||||
|
end
|
41
config/nvim/lua/plugins/treesitter.lua
Normal file
41
config/nvim/lua/plugins/treesitter.lua
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
-- A list of parser names, or "all" (the five listed parsers should always be installed)
|
||||||
|
ensure_installed = { "python", "lua", "vim", "vimdoc", "query" },
|
||||||
|
|
||||||
|
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||||
|
sync_install = false,
|
||||||
|
|
||||||
|
-- Automatically install missing parsers when entering buffer
|
||||||
|
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||||
|
auto_install = true,
|
||||||
|
|
||||||
|
-- List of parsers to ignore installing (for "all")
|
||||||
|
ignore_install = { },
|
||||||
|
|
||||||
|
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||||
|
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||||
|
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
|
||||||
|
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
|
||||||
|
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
|
||||||
|
-- the name of the parser)
|
||||||
|
-- list of language that will be disabled
|
||||||
|
disable = { },
|
||||||
|
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
|
||||||
|
disable = function(lang, buf)
|
||||||
|
local max_filesize = 100 * 1024 -- 100 KB
|
||||||
|
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||||
|
if ok and stats and stats.size > max_filesize then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||||
|
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||||
|
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||||
|
-- Instead of true it can also be a list of languages
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
},
|
||||||
|
}
|
187
config/nvim/lua/plugins/whichkey.lua
Normal file
187
config/nvim/lua/plugins/whichkey.lua
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
local status_ok, which_key = pcall(require, "which-key")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local setup = {
|
||||||
|
plugins = {
|
||||||
|
marks = true, -- shows a list of your marks on ' and `
|
||||||
|
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
|
||||||
|
spelling = {
|
||||||
|
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
|
||||||
|
suggestions = 20, -- how many suggestions should be shown in the list?
|
||||||
|
},
|
||||||
|
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
|
||||||
|
-- No actual key bindings are created
|
||||||
|
presets = {
|
||||||
|
operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion
|
||||||
|
motions = true, -- adds help for motions
|
||||||
|
text_objects = true, -- help for text objects triggered after entering an operator
|
||||||
|
windows = true, -- default bindings on <c-w>
|
||||||
|
nav = true, -- misc bindings to work with windows
|
||||||
|
z = true, -- bindings for folds, spelling and others prefixed with z
|
||||||
|
g = true, -- bindings for prefixed with g
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- add operators that will trigger motion and text object completion
|
||||||
|
-- to enable all native operators, set the preset / operators plugin above
|
||||||
|
-- operators = { gc = "Comments" },
|
||||||
|
key_labels = {
|
||||||
|
-- override the label used to display some keys. It doesn't effect WK in any other way.
|
||||||
|
-- For example:
|
||||||
|
-- ["<space>"] = "SPC",
|
||||||
|
-- ["<cr>"] = "RET",
|
||||||
|
-- ["<tab>"] = "TAB",
|
||||||
|
},
|
||||||
|
icons = {
|
||||||
|
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
|
||||||
|
separator = "➜", -- symbol used between a key and it's label
|
||||||
|
group = "+", -- symbol prepended to a group
|
||||||
|
},
|
||||||
|
popup_mappings = {
|
||||||
|
scroll_down = "<c-d>", -- binding to scroll down inside the popup
|
||||||
|
scroll_up = "<c-u>", -- binding to scroll up inside the popup
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
border = "rounded", -- none, single, double, shadow
|
||||||
|
position = "bottom", -- bottom, top
|
||||||
|
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
|
||||||
|
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
layout = {
|
||||||
|
height = { min = 4, max = 25 }, -- min and max height of the columns
|
||||||
|
width = { min = 20, max = 50 }, -- min and max width of the columns
|
||||||
|
spacing = 3, -- spacing between columns
|
||||||
|
align = "left", -- align columns left, center or right
|
||||||
|
},
|
||||||
|
ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label
|
||||||
|
hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate
|
||||||
|
show_help = true, -- show help message on the command line when the popup is visible
|
||||||
|
triggers = "auto", -- automatically setup triggers
|
||||||
|
-- triggers = {"<leader>"} -- or specify a list manually
|
||||||
|
triggers_blacklist = {
|
||||||
|
-- list of mode / prefixes that should never be hooked by WhichKey
|
||||||
|
-- this is mostly relevant for key maps that start with a native binding
|
||||||
|
-- most people should not need to change this
|
||||||
|
i = { "j", "k" },
|
||||||
|
v = { "j", "k" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local opts = {
|
||||||
|
mode = "n", -- NORMAL mode
|
||||||
|
prefix = "<leader>",
|
||||||
|
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
|
||||||
|
silent = true, -- use `silent` when creating keymaps
|
||||||
|
noremap = true, -- use `noremap` when creating keymaps
|
||||||
|
nowait = true, -- use `nowait` when creating keymaps
|
||||||
|
}
|
||||||
|
|
||||||
|
local mappings = {
|
||||||
|
["a"] = { "<cmd>Alpha<cr>", "Alpha" },
|
||||||
|
["b"] = {
|
||||||
|
"<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})<cr>",
|
||||||
|
"Buffers",
|
||||||
|
},
|
||||||
|
["e"] = { "<cmd>NvimTreeToggle<cr>", "Explorer" },
|
||||||
|
["w"] = { "<cmd>w!<CR>", "Save" },
|
||||||
|
["q"] = { "<cmd>q!<CR>", "Quit" },
|
||||||
|
["c"] = { "<cmd>Bdelete!<CR>", "Close Buffer" },
|
||||||
|
["h"] = { "<cmd>nohlsearch<CR>", "No Highlight" },
|
||||||
|
["f"] = {
|
||||||
|
"<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>",
|
||||||
|
"Find files",
|
||||||
|
},
|
||||||
|
["F"] = { "<cmd>Telescope live_grep theme=ivy<cr>", "Find Text" },
|
||||||
|
["P"] = { "<cmd>lua require('telescope').extensions.projects.projects()<cr>", "Projects" },
|
||||||
|
|
||||||
|
p = {
|
||||||
|
name = "Packer",
|
||||||
|
c = { "<cmd>PackerCompile<cr>", "Compile" },
|
||||||
|
i = { "<cmd>PackerInstall<cr>", "Install" },
|
||||||
|
s = { "<cmd>PackerSync<cr>", "Sync" },
|
||||||
|
S = { "<cmd>PackerStatus<cr>", "Status" },
|
||||||
|
u = { "<cmd>PackerUpdate<cr>", "Update" },
|
||||||
|
},
|
||||||
|
|
||||||
|
g = {
|
||||||
|
name = "Git",
|
||||||
|
g = { "<cmd>lua _LAZYGIT_TOGGLE()<CR>", "Lazygit" },
|
||||||
|
j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" },
|
||||||
|
k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" },
|
||||||
|
l = { "<cmd>lua require 'gitsigns'.blame_line()<cr>", "Blame" },
|
||||||
|
p = { "<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk" },
|
||||||
|
r = { "<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk" },
|
||||||
|
R = { "<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer" },
|
||||||
|
s = { "<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk" },
|
||||||
|
u = {
|
||||||
|
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>",
|
||||||
|
"Undo Stage Hunk",
|
||||||
|
},
|
||||||
|
o = { "<cmd>Telescope git_status<cr>", "Open changed file" },
|
||||||
|
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
|
||||||
|
c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" },
|
||||||
|
d = {
|
||||||
|
"<cmd>Gitsigns diffthis HEAD<cr>",
|
||||||
|
"Diff",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
l = {
|
||||||
|
name = "LSP",
|
||||||
|
a = { "<cmd>lua vim.lsp.buf.code_action()<cr>", "Code Action" },
|
||||||
|
d = {
|
||||||
|
"<cmd>Telescope diagnostics bufnr=0<cr>",
|
||||||
|
"Document Diagnostics",
|
||||||
|
},
|
||||||
|
w = {
|
||||||
|
"<cmd>Telescope diagnostics<cr>",
|
||||||
|
"Workspace Diagnostics",
|
||||||
|
},
|
||||||
|
f = { "<cmd>lua vim.lsp.buf.format{async=true}<cr>", "Format" },
|
||||||
|
i = { "<cmd>LspInfo<cr>", "Info" },
|
||||||
|
I = { "<cmd>LspInstallInfo<cr>", "Installer Info" },
|
||||||
|
j = {
|
||||||
|
"<cmd>lua vim.lsp.diagnostic.goto_next()<CR>",
|
||||||
|
"Next Diagnostic",
|
||||||
|
},
|
||||||
|
k = {
|
||||||
|
"<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>",
|
||||||
|
"Prev Diagnostic",
|
||||||
|
},
|
||||||
|
l = { "<cmd>lua vim.lsp.codelens.run()<cr>", "CodeLens Action" },
|
||||||
|
q = { "<cmd>lua vim.diagnostic.setloclist()<cr>", "Quickfix" },
|
||||||
|
r = { "<cmd>lua vim.lsp.buf.rename()<cr>", "Rename" },
|
||||||
|
s = { "<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols" },
|
||||||
|
S = {
|
||||||
|
"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>",
|
||||||
|
"Workspace Symbols",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
s = {
|
||||||
|
name = "Search",
|
||||||
|
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
|
||||||
|
c = { "<cmd>Telescope colorscheme<cr>", "Colorscheme" },
|
||||||
|
h = { "<cmd>Telescope help_tags<cr>", "Find Help" },
|
||||||
|
M = { "<cmd>Telescope man_pages<cr>", "Man Pages" },
|
||||||
|
r = { "<cmd>Telescope oldfiles<cr>", "Open Recent File" },
|
||||||
|
R = { "<cmd>Telescope registers<cr>", "Registers" },
|
||||||
|
k = { "<cmd>Telescope keymaps<cr>", "Keymaps" },
|
||||||
|
C = { "<cmd>Telescope commands<cr>", "Commands" },
|
||||||
|
},
|
||||||
|
|
||||||
|
t = {
|
||||||
|
name = "Terminal",
|
||||||
|
n = { "<cmd>lua _NODE_TOGGLE()<cr>", "Node" },
|
||||||
|
u = { "<cmd>lua _NCDU_TOGGLE()<cr>", "NCDU" },
|
||||||
|
t = { "<cmd>lua _HTOP_TOGGLE()<cr>", "Htop" },
|
||||||
|
p = { "<cmd>lua _PYTHON_TOGGLE()<cr>", "Python" },
|
||||||
|
f = { "<cmd>ToggleTerm direction=float<cr>", "Float" },
|
||||||
|
h = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", "Horizontal" },
|
||||||
|
v = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", "Vertical" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
which_key.setup(setup)
|
||||||
|
which_key.register(mappings, opts)
|
5
config/nvim/lua/ui/bluloco.lua
Normal file
5
config/nvim/lua/ui/bluloco.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
require("bluloco").setup({
|
||||||
|
style = "auto",
|
||||||
|
transparent = false,
|
||||||
|
italics = true,
|
||||||
|
})
|
6
config/nvim/lua/ui/colorscheme.lua
Normal file
6
config/nvim/lua/ui/colorscheme.lua
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
local colorscheme = "tokyonight"
|
||||||
|
|
||||||
|
local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
52
config/nvim/lua/ui/dracula.lua
Normal file
52
config/nvim/lua/ui/dracula.lua
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
local dracula = require("dracula")
|
||||||
|
dracula.setup({
|
||||||
|
-- customize dracula color palette
|
||||||
|
colors = {
|
||||||
|
bg = "#282A36",
|
||||||
|
fg = "#F8F8F2",
|
||||||
|
selection = "#44475A",
|
||||||
|
comment = "#6272A4",
|
||||||
|
red = "#FF5555",
|
||||||
|
orange = "#FFB86C",
|
||||||
|
yellow = "#F1FA8C",
|
||||||
|
green = "#50fa7b",
|
||||||
|
purple = "#BD93F9",
|
||||||
|
cyan = "#8BE9FD",
|
||||||
|
pink = "#FF79C6",
|
||||||
|
bright_red = "#FF6E6E",
|
||||||
|
bright_green = "#69FF94",
|
||||||
|
bright_yellow = "#FFFFA5",
|
||||||
|
bright_blue = "#D6ACFF",
|
||||||
|
bright_magenta = "#FF92DF",
|
||||||
|
bright_cyan = "#A4FFFF",
|
||||||
|
bright_white = "#FFFFFF",
|
||||||
|
menu = "#21222C",
|
||||||
|
visual = "#3E4452",
|
||||||
|
gutter_fg = "#4B5263",
|
||||||
|
nontext = "#3B4048",
|
||||||
|
white = "#ABB2BF",
|
||||||
|
black = "#191A21",
|
||||||
|
},
|
||||||
|
-- show the '~' characters after the end of buffers
|
||||||
|
show_end_of_buffer = true, -- default false
|
||||||
|
-- use transparent background
|
||||||
|
transparent_bg = true, -- default false
|
||||||
|
-- set custom lualine background color
|
||||||
|
lualine_bg_color = "#44475a", -- default nil
|
||||||
|
-- set italic comment
|
||||||
|
italic_comment = true, -- default false
|
||||||
|
-- overrides the default highlights with table see `:h synIDattr`
|
||||||
|
overrides = {},
|
||||||
|
-- You can use overrides as table like this
|
||||||
|
-- overrides = {
|
||||||
|
-- NonText = { fg = "white" }, -- set NonText fg to white
|
||||||
|
-- NvimTreeIndentMarker = { link = "NonText" }, -- link to NonText highlight
|
||||||
|
-- Nothing = {} -- clear highlight of Nothing
|
||||||
|
-- },
|
||||||
|
-- Or you can also use it like a function to get color from theme
|
||||||
|
-- overrides = function (colors)
|
||||||
|
-- return {
|
||||||
|
-- NonText = { fg = colors.white }, -- set NonText fg to white of theme
|
||||||
|
-- }
|
||||||
|
-- end,
|
||||||
|
})
|
33
config/nvim/lua/ui/onedark.lua
Normal file
33
config/nvim/lua/ui/onedark.lua
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
require('onedark').setup {
|
||||||
|
style = 'cool',
|
||||||
|
transparent = false,
|
||||||
|
term_colors = true,
|
||||||
|
ending_tildes = true,
|
||||||
|
cmp_itemkind_reverse = false,
|
||||||
|
|
||||||
|
-- toggle theme style --
|
||||||
|
toggle_style_key = nil,
|
||||||
|
toggle_style_list = {'dark', 'darker', 'cool', 'deep', 'warm', 'warmer', 'light'},
|
||||||
|
|
||||||
|
-- change code style --
|
||||||
|
code_style = {
|
||||||
|
comments = 'italic',
|
||||||
|
keywords = 'italic',
|
||||||
|
functions = 'italic',
|
||||||
|
strings = 'italic',
|
||||||
|
variables = 'italic'
|
||||||
|
},
|
||||||
|
lualine = {
|
||||||
|
transparent = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
colors = {},
|
||||||
|
highlights = {},
|
||||||
|
|
||||||
|
diagnostics = {
|
||||||
|
darker = true,
|
||||||
|
undercurl = true,
|
||||||
|
background = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
require('onedark').load()
|
35
config/nvim/lua/ui/tokyonight.lua
Normal file
35
config/nvim/lua/ui/tokyonight.lua
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
require("tokyonight").setup({
|
||||||
|
-- your configuration comes here
|
||||||
|
-- or leave it empty to use the default settings
|
||||||
|
style = "storm", -- The theme comes in three styles, `storm`, `moon`, a darker variant `night` and `day`
|
||||||
|
light_style = "day", -- The theme is used when the background is set to light
|
||||||
|
transparent = false, -- Enable this to disable setting the background color
|
||||||
|
terminal_colors = true, -- Configure the colors used when opening a `:terminal` in [Neovim](https://github.com/neovim/neovim)
|
||||||
|
styles = {
|
||||||
|
-- Style to be applied to different syntax groups
|
||||||
|
-- Value is any valid attr-list value for `:help nvim_set_hl`
|
||||||
|
comments = { italic = true },
|
||||||
|
keywords = { italic = true },
|
||||||
|
functions = { italic = true },
|
||||||
|
variables = { italic = true },
|
||||||
|
-- Background styles. Can be "dark", "transparent" or "normal"
|
||||||
|
sidebars = "dark", -- style for sidebars, see below
|
||||||
|
floats = "dark", -- style for floating windows
|
||||||
|
},
|
||||||
|
sidebars = { "qf", "help" }, -- Set a darker background on sidebar-like windows. For example: `["qf", "vista_kind", "terminal", "packer"]`
|
||||||
|
day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors
|
||||||
|
hide_inactive_statusline = false, -- Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard **StatusLine** and **LuaLine**.
|
||||||
|
dim_inactive = false, -- dims inactive windows
|
||||||
|
lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold
|
||||||
|
|
||||||
|
--- You can override specific color groups to use other groups or a hex color
|
||||||
|
--- function will be called with a ColorScheme table
|
||||||
|
---@param colors ColorScheme
|
||||||
|
on_colors = function(colors) end,
|
||||||
|
|
||||||
|
--- You can override specific highlights to use other groups or a hex color
|
||||||
|
--- function will be called with a Highlights and ColorScheme table
|
||||||
|
---@param highlights Highlights
|
||||||
|
---@param colors ColorScheme
|
||||||
|
on_highlights = function(highlights, colors) end,
|
||||||
|
})
|
279
config/nvim/plugin/packer_compiled.lua
Normal file
279
config/nvim/plugin/packer_compiled.lua
Normal file
|
@ -0,0 +1,279 @@
|
||||||
|
-- Automatically generated packer.nvim plugin loader code
|
||||||
|
|
||||||
|
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
|
||||||
|
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_command('packadd packer.nvim')
|
||||||
|
|
||||||
|
local no_errors, error_msg = pcall(function()
|
||||||
|
|
||||||
|
_G._packer = _G._packer or {}
|
||||||
|
_G._packer.inside_compile = true
|
||||||
|
|
||||||
|
local time
|
||||||
|
local profile_info
|
||||||
|
local should_profile = false
|
||||||
|
if should_profile then
|
||||||
|
local hrtime = vim.loop.hrtime
|
||||||
|
profile_info = {}
|
||||||
|
time = function(chunk, start)
|
||||||
|
if start then
|
||||||
|
profile_info[chunk] = hrtime()
|
||||||
|
else
|
||||||
|
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
time = function(chunk, start) end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function save_profiles(threshold)
|
||||||
|
local sorted_times = {}
|
||||||
|
for chunk_name, time_taken in pairs(profile_info) do
|
||||||
|
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
|
||||||
|
end
|
||||||
|
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
|
||||||
|
local results = {}
|
||||||
|
for i, elem in ipairs(sorted_times) do
|
||||||
|
if not threshold or threshold and elem[2] > threshold then
|
||||||
|
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if threshold then
|
||||||
|
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
|
||||||
|
end
|
||||||
|
|
||||||
|
_G._packer.profile_output = results
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[Luarocks path setup]], true)
|
||||||
|
local package_path_str = "/home/hirad/.cache/nvim/packer_hererocks/2.1.1702233742/share/lua/5.1/?.lua;/home/hirad/.cache/nvim/packer_hererocks/2.1.1702233742/share/lua/5.1/?/init.lua;/home/hirad/.cache/nvim/packer_hererocks/2.1.1702233742/lib/luarocks/rocks-5.1/?.lua;/home/hirad/.cache/nvim/packer_hererocks/2.1.1702233742/lib/luarocks/rocks-5.1/?/init.lua"
|
||||||
|
local install_cpath_pattern = "/home/hirad/.cache/nvim/packer_hererocks/2.1.1702233742/lib/lua/5.1/?.so"
|
||||||
|
if not string.find(package.path, package_path_str, 1, true) then
|
||||||
|
package.path = package.path .. ';' .. package_path_str
|
||||||
|
end
|
||||||
|
|
||||||
|
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
|
||||||
|
package.cpath = package.cpath .. ';' .. install_cpath_pattern
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[Luarocks path setup]], false)
|
||||||
|
time([[try_loadstring definition]], true)
|
||||||
|
local function try_loadstring(s, component, name)
|
||||||
|
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
|
||||||
|
if not success then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[try_loadstring definition]], false)
|
||||||
|
time([[Defining packer_plugins]], true)
|
||||||
|
_G.packer_plugins = {
|
||||||
|
["Comment.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/Comment.nvim",
|
||||||
|
url = "https://github.com/numToStr/Comment.nvim"
|
||||||
|
},
|
||||||
|
LuaSnip = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/LuaSnip",
|
||||||
|
url = "https://github.com/L3MON4D3/LuaSnip"
|
||||||
|
},
|
||||||
|
["alpha-nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/alpha-nvim",
|
||||||
|
url = "https://github.com/goolord/alpha-nvim"
|
||||||
|
},
|
||||||
|
["bufferline.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/bufferline.nvim",
|
||||||
|
url = "https://github.com/akinsho/bufferline.nvim"
|
||||||
|
},
|
||||||
|
["cmp-buffer"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/cmp-buffer",
|
||||||
|
url = "https://github.com/hrsh7th/cmp-buffer"
|
||||||
|
},
|
||||||
|
["cmp-nvim-lsp"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
|
||||||
|
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
|
||||||
|
},
|
||||||
|
["cmp-nvim-lua"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
|
||||||
|
url = "https://github.com/hrsh7th/cmp-nvim-lua"
|
||||||
|
},
|
||||||
|
["cmp-path"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/cmp-path",
|
||||||
|
url = "https://github.com/hrsh7th/cmp-path"
|
||||||
|
},
|
||||||
|
cmp_luasnip = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
|
||||||
|
url = "https://github.com/saadparwaiz1/cmp_luasnip"
|
||||||
|
},
|
||||||
|
["darkplus.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/darkplus.nvim",
|
||||||
|
url = "https://github.com/lunarvim/darkplus.nvim"
|
||||||
|
},
|
||||||
|
["dracula.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/dracula.nvim",
|
||||||
|
url = "https://github.com/Mofiqul/dracula.nvim"
|
||||||
|
},
|
||||||
|
["friendly-snippets"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/friendly-snippets",
|
||||||
|
url = "https://github.com/rafamadriz/friendly-snippets"
|
||||||
|
},
|
||||||
|
["gitsigns.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
|
||||||
|
url = "https://github.com/lewis6991/gitsigns.nvim"
|
||||||
|
},
|
||||||
|
["impatient.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/impatient.nvim",
|
||||||
|
url = "https://github.com/lewis6991/impatient.nvim"
|
||||||
|
},
|
||||||
|
["indent-blankline.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
|
||||||
|
url = "https://github.com/lukas-reineke/indent-blankline.nvim"
|
||||||
|
},
|
||||||
|
["lualine.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/lualine.nvim",
|
||||||
|
url = "https://github.com/nvim-lualine/lualine.nvim"
|
||||||
|
},
|
||||||
|
["mason-lspconfig.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
|
||||||
|
url = "https://github.com/williamboman/mason-lspconfig.nvim"
|
||||||
|
},
|
||||||
|
["mason.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/mason.nvim",
|
||||||
|
url = "https://github.com/williamboman/mason.nvim"
|
||||||
|
},
|
||||||
|
["neoscroll.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/neoscroll.nvim",
|
||||||
|
url = "https://github.com/karb94/neoscroll.nvim"
|
||||||
|
},
|
||||||
|
["null-ls.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/null-ls.nvim",
|
||||||
|
url = "https://github.com/jose-elias-alvarez/null-ls.nvim"
|
||||||
|
},
|
||||||
|
["nvim-autopairs"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
|
||||||
|
url = "https://github.com/windwp/nvim-autopairs"
|
||||||
|
},
|
||||||
|
["nvim-cmp"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-cmp",
|
||||||
|
url = "https://github.com/hrsh7th/nvim-cmp"
|
||||||
|
},
|
||||||
|
["nvim-lspconfig"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
|
||||||
|
url = "https://github.com/neovim/nvim-lspconfig"
|
||||||
|
},
|
||||||
|
["nvim-tree.lua"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
|
||||||
|
url = "https://github.com/kyazdani42/nvim-tree.lua"
|
||||||
|
},
|
||||||
|
["nvim-treesitter"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
|
||||||
|
url = "https://github.com/nvim-treesitter/nvim-treesitter"
|
||||||
|
},
|
||||||
|
["nvim-ts-context-commentstring"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring",
|
||||||
|
url = "https://github.com/JoosepAlviste/nvim-ts-context-commentstring"
|
||||||
|
},
|
||||||
|
["nvim-web-devicons"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
|
||||||
|
url = "https://github.com/kyazdani42/nvim-web-devicons"
|
||||||
|
},
|
||||||
|
["onedark.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/onedark.nvim",
|
||||||
|
url = "https://github.com/navarasu/onedark.nvim"
|
||||||
|
},
|
||||||
|
["packer.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/packer.nvim",
|
||||||
|
url = "https://github.com/wbthomason/packer.nvim"
|
||||||
|
},
|
||||||
|
["plenary.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/plenary.nvim",
|
||||||
|
url = "https://github.com/nvim-lua/plenary.nvim"
|
||||||
|
},
|
||||||
|
["project.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/project.nvim",
|
||||||
|
url = "https://github.com/ahmedkhalf/project.nvim"
|
||||||
|
},
|
||||||
|
["telescope.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/telescope.nvim",
|
||||||
|
url = "https://github.com/nvim-telescope/telescope.nvim"
|
||||||
|
},
|
||||||
|
["toggleterm.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/toggleterm.nvim",
|
||||||
|
url = "https://github.com/akinsho/toggleterm.nvim"
|
||||||
|
},
|
||||||
|
["tokyonight.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/tokyonight.nvim",
|
||||||
|
url = "https://github.com/folke/tokyonight.nvim"
|
||||||
|
},
|
||||||
|
["vim-bbye"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/vim-bbye",
|
||||||
|
url = "https://github.com/moll/vim-bbye"
|
||||||
|
},
|
||||||
|
["vim-illuminate"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/vim-illuminate",
|
||||||
|
url = "https://github.com/RRethy/vim-illuminate"
|
||||||
|
},
|
||||||
|
["which-key.nvim"] = {
|
||||||
|
loaded = true,
|
||||||
|
path = "/home/hirad/.local/share/nvim/site/pack/packer/start/which-key.nvim",
|
||||||
|
url = "https://github.com/folke/which-key.nvim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
time([[Defining packer_plugins]], false)
|
||||||
|
|
||||||
|
_G._packer.inside_compile = false
|
||||||
|
if _G._packer.needs_bufread == true then
|
||||||
|
vim.cmd("doautocmd BufRead")
|
||||||
|
end
|
||||||
|
_G._packer.needs_bufread = false
|
||||||
|
|
||||||
|
if should_profile then save_profiles() end
|
||||||
|
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not no_errors then
|
||||||
|
error_msg = error_msg:gsub('"', '\\"')
|
||||||
|
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
|
||||||
|
end
|
|
@ -0,0 +1,39 @@
|
||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
# Matches all sources
|
||||||
|
node.name = "~alsa_input.*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# Matches all sinks
|
||||||
|
node.name = "~alsa_output.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
session.suspend-timeout-seconds = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
# bluetooth devices
|
||||||
|
monitor.bluez.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
# Matches all sources
|
||||||
|
node.name = "~bluez_input.*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# Matches all sinks
|
||||||
|
node.name = "~bluez_output.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
session.suspend-timeout-seconds = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in a new issue