first commit
This commit is contained in:
7
profiles/desktop/.config/nvim/.stylua.toml
Normal file
7
profiles/desktop/.config/nvim/.stylua.toml
Normal file
@@ -0,0 +1,7 @@
|
||||
line_endings = 'Unix'
|
||||
indent_type = 'Spaces'
|
||||
indent_width = 2
|
||||
quote_style = 'AutoPreferSingle'
|
||||
call_parentheses = 'Always'
|
||||
[sort_requires]
|
||||
enabled = true
|
||||
4
profiles/desktop/.config/nvim/after/ftplugin/lua.lua
Normal file
4
profiles/desktop/.config/nvim/after/ftplugin/lua.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
-- set default tab width to 2 spaces
|
||||
vim.opt_local.tabstop = 2 -- number of spaces that a tab counts for
|
||||
vim.opt_local.shiftwidth = 2 -- size of an autoindented shift
|
||||
vim.opt_local.softtabstop = 0 -- indentation size
|
||||
1
profiles/desktop/.config/nvim/after/ftplugin/make.lua
Normal file
1
profiles/desktop/.config/nvim/after/ftplugin/make.lua
Normal file
@@ -0,0 +1 @@
|
||||
vim.opt_local.expandtab = false -- use tabs instead of spaces
|
||||
4
profiles/desktop/.config/nvim/after/ftplugin/vim.lua
Normal file
4
profiles/desktop/.config/nvim/after/ftplugin/vim.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
-- set default tab width to 2 spaces
|
||||
vim.opt_local.tabstop = 2 -- number of spaces that a tab counts for
|
||||
vim.opt_local.shiftwidth = 2 -- size of an autoindented shift
|
||||
vim.opt_local.softtabstop = 0 -- indentation size
|
||||
8
profiles/desktop/.config/nvim/init.lua
Normal file
8
profiles/desktop/.config/nvim/init.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- load settings
|
||||
require('config.settings')
|
||||
|
||||
-- load plugins
|
||||
require('config.lazy')
|
||||
|
||||
-- load keybindings
|
||||
require('config.keybindings')
|
||||
36
profiles/desktop/.config/nvim/lazy-lock.json
Normal file
36
profiles/desktop/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "dae4f5aaa3574bd0c2b9dd20fb9542a02c10471c" },
|
||||
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" },
|
||||
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "c7274c48137396526b59d86232eabcdc7fed8a32" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "c953789db7fd28eafe5eb5659846d34b5024b3cc" },
|
||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" },
|
||||
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
|
||||
"nvim-config-local": { "branch": "main", "commit": "990f3e35e0fba8fb83012d7e85f9a6a77de7f87f" },
|
||||
"nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "3f58aeca0c6ece8a9fb8782ea3fcb6024f285be3" },
|
||||
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "4967fa48b0fe7a7f92cee546c76bb4bb61bb14d5" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "db15f2e0df2f5db916e511e3fffb682ef2f6354f" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" },
|
||||
"orgmode": { "branch": "master", "commit": "c421c7677b7332f5fd543023283a2290cf8dd4ff" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||
"undotree": { "branch": "master", "commit": "fc28931fbfba66ab75d9af23fe46ffbbb9de6e8c" },
|
||||
"vim-indent-object": { "branch": "master", "commit": "8ab36d5ec2a3a60468437a95e142ce994df598c6" },
|
||||
"vim-tmux-clipboard": { "branch": "master", "commit": "d4774dc7dfdd4b8a60613355ed32e6a1c18220cf" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
3
profiles/desktop/.config/nvim/lua/config/keybindings.lua
Normal file
3
profiles/desktop/.config/nvim/lua/config/keybindings.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
-- keep in visual mode after indenting
|
||||
vim.keymap.set('v', '<', '<gv')
|
||||
vim.keymap.set('v', '>', '>gv')
|
||||
37
profiles/desktop/.config/nvim/lua/config/lazy.lua
Normal file
37
profiles/desktop/.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
||||
local out = vim.fn.system({ 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ 'Failed to clone lazy.nvim:\n', 'ErrorMsg' },
|
||||
{ out, 'WarningMsg' },
|
||||
{ '\nPress any key to exit...' },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||
-- loading lazy.nvim so that mappings are correct.
|
||||
-- This is also a good place to setup other settings (vim.opt)
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = '\\'
|
||||
|
||||
-- Setup lazy.nvim
|
||||
require('lazy').setup({
|
||||
spec = {
|
||||
-- import your plugins
|
||||
{ import = 'plugins' },
|
||||
},
|
||||
-- Configure any other settings here. See the documentation for more details.
|
||||
-- colorscheme that will be used when installing plugins.
|
||||
install = { colorscheme = { 'catppuccin' } },
|
||||
-- configure ui
|
||||
ui = { border = 'rounded' },
|
||||
-- automatically check for plugin updates
|
||||
checker = { enabled = true, notify = false },
|
||||
})
|
||||
101
profiles/desktop/.config/nvim/lua/config/settings.lua
Normal file
101
profiles/desktop/.config/nvim/lua/config/settings.lua
Normal file
@@ -0,0 +1,101 @@
|
||||
-- true color support
|
||||
vim.o.termguicolors = true
|
||||
|
||||
-- fix transparency issues with alacritty
|
||||
local highlights = {
|
||||
'Normal',
|
||||
'LineNr',
|
||||
'Folded',
|
||||
'NonText',
|
||||
'SpecialKey',
|
||||
'VertSplit',
|
||||
'SignColumn',
|
||||
'EndOfBuffer',
|
||||
'TablineFill', -- this is specific to how I like my tabline to look like
|
||||
}
|
||||
for _, name in pairs(highlights) do
|
||||
vim.cmd.highlight(name .. ' guibg=none ctermbg=none')
|
||||
end
|
||||
|
||||
-- disable arrow keys
|
||||
local all_modes = { 'n', 'i', 'v', 'o' }
|
||||
|
||||
vim.keymap.set(all_modes, '<Up>', '<Nop>', { noremap = true, silent = true })
|
||||
vim.keymap.set(all_modes, '<Down>', '<Nop>', { noremap = true, silent = true })
|
||||
vim.keymap.set(all_modes, '<Left>', '<Nop>', { noremap = true, silent = true })
|
||||
vim.keymap.set(all_modes, '<Right>', '<Nop>', { noremap = true, silent = true })
|
||||
|
||||
vim.o.number = true -- display line numbers
|
||||
vim.opt.clipboard:append({ 'unnamedplus', 'unnamed' }) -- always use clipboard in x11
|
||||
vim.o.encoding = 'UTF-8' -- sets the character encoding used inside vim
|
||||
vim.o.title = true -- when on, the title of the window will be set to the value of 'titlestring'
|
||||
vim.o.signcolumn = 'yes'
|
||||
|
||||
-- spell checking
|
||||
vim.o.spell = true
|
||||
vim.opt.spelllang:append({ 'en_us', 'en_gb', 'pl' })
|
||||
vim.opt.spelloptions:append({ 'camel' })
|
||||
vim.o.spellcapcheck = ''
|
||||
|
||||
-- persistent undo
|
||||
local undodir = vim.fn.stdpath('state') .. 'undo'
|
||||
vim.fn.mkdir(undodir, 'p', '0700')
|
||||
vim.o.undodir = undodir
|
||||
vim.o.undofile = true
|
||||
|
||||
-- set proper file types for files in ~/ansible directory
|
||||
vim.filetype.add({
|
||||
pattern = {
|
||||
[os.getenv('HOME') .. '/ansible/.*%.yml'] = 'yaml.ansible',
|
||||
},
|
||||
})
|
||||
|
||||
-- neovim terminal configuration
|
||||
local augroup_term = vim.api.nvim_create_augroup('augroup_term', { clear = true })
|
||||
vim.api.nvim_create_autocmd('TermOpen', { -- enter insert mode automatically
|
||||
group = augroup_term,
|
||||
pattern = '*',
|
||||
callback = vim.cmd.startinsert,
|
||||
})
|
||||
vim.api.nvim_create_autocmd('TermOpen', { -- disable number lines on terminal buffers
|
||||
group = augroup_term,
|
||||
pattern = '*',
|
||||
callback = function()
|
||||
vim.o.number = false
|
||||
vim.o.relativenumber = false
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd('TermOpen', { -- allow use ctrl-c on terminal windows
|
||||
group = augroup_term,
|
||||
pattern = '*',
|
||||
callback = function(args)
|
||||
vim.keymap.set('n', '<C-c>', 'i<C-c>', { buffer = args.buf })
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd('TermEnter', { -- no sign column
|
||||
group = augroup_term,
|
||||
pattern = '*',
|
||||
callback = function()
|
||||
vim.opt_local.signcolumn = false
|
||||
end,
|
||||
})
|
||||
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>') -- esc to exit insert mode
|
||||
|
||||
-- set default tab width to 4 spaces
|
||||
vim.o.tabstop = 4 -- number of spaces that a tab counts for
|
||||
vim.o.shiftwidth = 4 -- number of spaces that are inserted during indent operations
|
||||
vim.o.softtabstop = 4 -- number of spaces that are inserted after pressing tab
|
||||
vim.o.expandtab = true -- use spaces instead of tabs
|
||||
|
||||
-- c/c++ settings
|
||||
vim.opt.cinoptions:append({ 'N-s' })
|
||||
|
||||
-- web dev settings
|
||||
vim.g.html_indent_autotags = 'html,thead,tbody,tfoot'
|
||||
vim.g.html_indent_script1 = 'auto'
|
||||
vim.g.html_indent_style1 = 'auto'
|
||||
|
||||
-- set cursor shape to underline in the normal and command mode,
|
||||
-- in the insert mode change shape to vertical bar, and disable
|
||||
-- blinking in all modes
|
||||
vim.opt.guicursor:append({ 'n-c:hor20', 'i:ver20', 'a:blinkon0' })
|
||||
15
profiles/desktop/.config/nvim/lua/plugins/catppuccin.lua
Normal file
15
profiles/desktop/.config/nvim/lua/plugins/catppuccin.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
return {
|
||||
'catppuccin/nvim',
|
||||
name = 'catppuccin',
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
config = function()
|
||||
require('catppuccin').setup({
|
||||
flavour = 'mocha', -- latte, frappe, macchiato, mocha
|
||||
transparent_background = true, -- disables setting the background color.
|
||||
})
|
||||
|
||||
-- setup must be called before loading
|
||||
vim.cmd.colorscheme('catppuccin')
|
||||
end,
|
||||
}
|
||||
6
profiles/desktop/.config/nvim/lua/plugins/colorizer.lua
Normal file
6
profiles/desktop/.config/nvim/lua/plugins/colorizer.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
-- 'norcalli/nvim-colorizer.lua',
|
||||
-- config = function()
|
||||
-- require('colorizer').setup({ '*' })
|
||||
-- end,
|
||||
}
|
||||
37
profiles/desktop/.config/nvim/lua/plugins/conform.lua
Normal file
37
profiles/desktop/.config/nvim/lua/plugins/conform.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
return {
|
||||
'stevearc/conform.nvim',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
config = function()
|
||||
local conform = require('conform')
|
||||
|
||||
conform.setup({
|
||||
formatters_by_ft = {
|
||||
lua = { 'stylua' },
|
||||
cpp = { 'clang-format' },
|
||||
c = { 'clang-format' },
|
||||
html = { 'prettier' },
|
||||
css = { 'prettier' },
|
||||
javascript = { 'prettier' },
|
||||
python = { 'autopep8', 'isort' },
|
||||
bash = { 'beautysh' },
|
||||
csh = { 'beautysh' },
|
||||
ksh = { 'beautysh' },
|
||||
sh = { 'beautysh' },
|
||||
zsh = { 'beautysh' },
|
||||
},
|
||||
-- format_on_save = {
|
||||
-- lsp_fallback = true,
|
||||
-- async = false,
|
||||
-- timeout_ms = 1000,
|
||||
-- },
|
||||
})
|
||||
|
||||
vim.keymap.set({ 'n', 'v' }, '<leader>cf', function()
|
||||
conform.format({
|
||||
lsp_fallback = true,
|
||||
async = false,
|
||||
timeout_ms = 1000,
|
||||
})
|
||||
end, { desc = 'Format file or range (in visual mode)' })
|
||||
end,
|
||||
}
|
||||
48
profiles/desktop/.config/nvim/lua/plugins/gitsigns.lua
Normal file
48
profiles/desktop/.config/nvim/lua/plugins/gitsigns.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
return {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = function()
|
||||
local gitsigns = require('gitsigns')
|
||||
gitsigns.setup({
|
||||
signs = {
|
||||
add = { text = '│' },
|
||||
change = { text = '│' },
|
||||
delete = { text = '_' },
|
||||
topdelete = { text = '‾' },
|
||||
changedelete = { text = '~' },
|
||||
untracked = { text = '┆' },
|
||||
},
|
||||
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 = '<author>, <author_time:%Y-%m-%d> - <summary>',
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
status_formatter = nil, -- Use default
|
||||
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
||||
preview_config = {
|
||||
-- Options passed to nvim_open_win
|
||||
border = 'single',
|
||||
style = 'minimal',
|
||||
relative = 'cursor',
|
||||
row = 0,
|
||||
col = 1,
|
||||
},
|
||||
-- yadm = {
|
||||
-- enable = false,
|
||||
-- },
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'nmac427/guess-indent.nvim',
|
||||
config = true,
|
||||
}
|
||||
102
profiles/desktop/.config/nvim/lua/plugins/lspconfig.lua
Normal file
102
profiles/desktop/.config/nvim/lua/plugins/lspconfig.lua
Normal file
@@ -0,0 +1,102 @@
|
||||
return {
|
||||
'neovim/nvim-lspconfig',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-nvim-lsp', -- LSP source for nvim-cmp,
|
||||
{ 'folke/neodev.nvim', config = true },
|
||||
},
|
||||
config = function()
|
||||
require('vim.lsp.protocol')
|
||||
|
||||
require('mason-lspconfig').setup({
|
||||
automatic_enable = true,
|
||||
})
|
||||
|
||||
vim.lsp.config('*', {
|
||||
capabilities = {
|
||||
textDocument = {
|
||||
completion = {
|
||||
completionItem = {
|
||||
snippetSupport = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.config('lua_ls', {
|
||||
on_init = function(client)
|
||||
if client.workspace_folders then
|
||||
local path = client.workspace_folders[1].name
|
||||
if
|
||||
path ~= vim.fn.stdpath('config')
|
||||
and (vim.uv.fs_stat(path .. '/.luarc.json') or vim.uv.fs_stat(path .. '/.luarc.jsonc'))
|
||||
then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
||||
runtime = {
|
||||
-- Tell the language server which version of Lua you're using (most
|
||||
-- likely LuaJIT in the case of Neovim)
|
||||
version = 'LuaJIT',
|
||||
-- Tell the language server how to find Lua modules same way as Neovim
|
||||
-- (see `:h lua-module-load`)
|
||||
path = {
|
||||
'lua/?.lua',
|
||||
'lua/?/init.lua',
|
||||
},
|
||||
},
|
||||
-- Make the server aware of Neovim runtime files
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
library = {
|
||||
vim.env.VIMRUNTIME,
|
||||
-- Depending on the usage, you might want to add additional paths
|
||||
-- here.
|
||||
'${3rd}/luv/library'
|
||||
-- '${3rd}/busted/library'
|
||||
},
|
||||
-- Or pull in all of 'runtimepath'.
|
||||
-- NOTE: this is a lot slower and will cause issues when working on
|
||||
-- your own configuration.
|
||||
-- See https://github.com/neovim/nvim-lspconfig/issues/3189
|
||||
-- library = {
|
||||
-- vim.api.nvim_get_runtime_file('', true),
|
||||
-- }
|
||||
},
|
||||
})
|
||||
end,
|
||||
settings = {
|
||||
Lua = {},
|
||||
},
|
||||
})
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_text = {
|
||||
prefix = '●', -- Could be '■', '●', '▎', 'x'
|
||||
},
|
||||
signs = {
|
||||
text = {
|
||||
[vim.diagnostic.severity.ERROR] = ' ',
|
||||
[vim.diagnostic.severity.WARN] = ' ',
|
||||
[vim.diagnostic.severity.INFO] = ' ',
|
||||
[vim.diagnostic.severity.HINT] = ' ',
|
||||
},
|
||||
texthl = {
|
||||
[vim.diagnostic.severity.ERROR] = 'DiagnosticSignError',
|
||||
[vim.diagnostic.severity.WARN] = 'DiagnosticSignWarn',
|
||||
[vim.diagnostic.severity.INFO] = 'DiagnosticSignInfo',
|
||||
[vim.diagnostic.severity.HINT] = 'DiagnosticSignHint',
|
||||
},
|
||||
numhl = {
|
||||
[vim.diagnostic.severity.ERROR] = 'DiagnosticSignError',
|
||||
[vim.diagnostic.severity.WARN] = 'DiagnosticSignWarn',
|
||||
[vim.diagnostic.severity.INFO] = 'DiagnosticSignInfo',
|
||||
[vim.diagnostic.severity.HINT] = 'DiagnosticSignHint',
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
11
profiles/desktop/.config/nvim/lua/plugins/lualine.lua
Normal file
11
profiles/desktop/.config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
opts = {
|
||||
options = {
|
||||
theme = 'catppuccin',
|
||||
section_separators = { left = '', right = '' },
|
||||
component_separators = { left = '', right = '' },
|
||||
},
|
||||
},
|
||||
}
|
||||
75
profiles/desktop/.config/nvim/lua/plugins/mason.lua
Normal file
75
profiles/desktop/.config/nvim/lua/plugins/mason.lua
Normal file
@@ -0,0 +1,75 @@
|
||||
return {
|
||||
'williamboman/mason.nvim',
|
||||
dependencies = {
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||
},
|
||||
config = function()
|
||||
require('mason').setup({
|
||||
ui = { border = 'rounded' },
|
||||
})
|
||||
|
||||
require('mason-lspconfig').setup({
|
||||
automatic_enable = true,
|
||||
})
|
||||
|
||||
require('mason-tool-installer').setup({
|
||||
ensure_installed = {
|
||||
-- lua scripting
|
||||
'stylua', -- lua formatter
|
||||
'lua_ls',
|
||||
|
||||
-- vimrc editing
|
||||
'vimls',
|
||||
|
||||
-- editorconfig stuff
|
||||
'editorconfig-checker',
|
||||
|
||||
-- system administration's related stuff
|
||||
'ansiblels',
|
||||
'yamllint',
|
||||
'systemdlint',
|
||||
-- 'nginx_language_server',
|
||||
'dockerls',
|
||||
'docker_compose_language_service',
|
||||
|
||||
-- shell scripting
|
||||
'shellcheck',
|
||||
'bashls',
|
||||
'beautysh',
|
||||
|
||||
-- python
|
||||
'python-lsp-server',
|
||||
'pylint',
|
||||
'autopep8',
|
||||
'mypy',
|
||||
'isort',
|
||||
|
||||
-- c/c++
|
||||
'clangd',
|
||||
'clang-format',
|
||||
'cmakelang',
|
||||
'cmakelint',
|
||||
'checkmake',
|
||||
|
||||
-- latex
|
||||
'texlab',
|
||||
'latexindent',
|
||||
|
||||
-- web development
|
||||
'html',
|
||||
'cssls',
|
||||
'stylelint',
|
||||
'eslint',
|
||||
'standardjs',
|
||||
'jsonlint',
|
||||
|
||||
-- databases
|
||||
'sqlfluff',
|
||||
|
||||
-- misc
|
||||
'jinja_lsp',
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
9
profiles/desktop/.config/nvim/lua/plugins/notify.lua
Normal file
9
profiles/desktop/.config/nvim/lua/plugins/notify.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
'rcarriga/nvim-notify',
|
||||
config = function()
|
||||
vim.notify = require("notify")
|
||||
vim.notify.setup({
|
||||
background_colour = "#000000",
|
||||
})
|
||||
end
|
||||
}
|
||||
10
profiles/desktop/.config/nvim/lua/plugins/nvim-autopairs.lua
Normal file
10
profiles/desktop/.config/nvim/lua/plugins/nvim-autopairs.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
opts = {
|
||||
disable_filetype = { 'TelescopePrompt', 'spectre_panel', 'snacks_picker_input', 'vim' },
|
||||
enable_afterquote = false,
|
||||
enable_bracket_in_quote = false,
|
||||
ignored_next_char = '[%w%.]', -- will ignore alphanumeric and `.` symbol
|
||||
},
|
||||
}
|
||||
76
profiles/desktop/.config/nvim/lua/plugins/nvim-cmp.lua
Normal file
76
profiles/desktop/.config/nvim/lua/plugins/nvim-cmp.lua
Normal file
@@ -0,0 +1,76 @@
|
||||
return {
|
||||
'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-buffer', -- source for text in buffer
|
||||
'hrsh7th/cmp-path', -- source for file system paths
|
||||
'saadparwaiz1/cmp_luasnip', -- snippets source for nvim-cmp
|
||||
{ 'L3MON4D3/LuaSnip', config = true }, -- snippets plugin
|
||||
'onsails/lspkind.nvim', -- vs-code like pictograms
|
||||
},
|
||||
config = function()
|
||||
local cmp = require('cmp')
|
||||
local luasnip = require('luasnip')
|
||||
|
||||
local window_style = cmp.config.window.bordered({
|
||||
winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,Search:None',
|
||||
col_offset = -3,
|
||||
side_padding = 0,
|
||||
})
|
||||
cmp.setup({
|
||||
view = {
|
||||
docs = { auto_open = false },
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body) -- use luasnip engine
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = window_style,
|
||||
documentation = window_style,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-g>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = false }),
|
||||
['<C-d>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible_docs() then
|
||||
cmp.close_docs()
|
||||
elseif cmp.visible() then
|
||||
cmp.open_docs()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp', max_item_count = 10, keyword_length = 1 },
|
||||
{ name = 'luasnip', max_item_count = 10, keyword_length = 1 },
|
||||
{ name = 'buffer', max_item_count = 10, keyword_length = 1 },
|
||||
{ name = 'path', max_item_count = 10, keyword_length = 1 },
|
||||
}),
|
||||
formatting = {
|
||||
fields = { 'kind', 'abbr', 'menu' },
|
||||
format = function(entry, vim_item)
|
||||
local kind = require('lspkind').cmp_format({ mode = 'symbol_text', maxwidth = 50 })(entry, vim_item)
|
||||
local strings = vim.split(kind.kind, '%s', { trimempty = true })
|
||||
kind.kind = ' ' .. (strings[1] or '') .. ' '
|
||||
kind.menu = ' (' .. (strings[2] or '') .. ')'
|
||||
|
||||
return kind
|
||||
end,
|
||||
},
|
||||
enabled = function()
|
||||
-- disable completion in comments
|
||||
local context = require('cmp.config.context')
|
||||
-- keep command mode completion enabled when cursor is in a comment
|
||||
if vim.api.nvim_get_mode().mode == 'c' then
|
||||
return true
|
||||
else
|
||||
return not context.in_treesitter_capture('comment') and not context.in_syntax_group('Comment')
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
return {
|
||||
'klen/nvim-config-local',
|
||||
config = function()
|
||||
require('config-local').setup({
|
||||
-- Default options (optional)
|
||||
|
||||
-- Config file patterns to load (lua supported)
|
||||
config_files = { '.nvim.lua', '.nvimrc', '.exrc' },
|
||||
|
||||
-- Where the plugin keeps files data
|
||||
hashfile = vim.fn.stdpath('data') .. '/config-local',
|
||||
|
||||
autocommands_create = true, -- Create autocommands (VimEnter, DirectoryChanged)
|
||||
commands_create = true, -- Create commands (ConfigLocalSource, ConfigLocalEdit, ConfigLocalTrust, ConfigLocalDeny)
|
||||
silent = true, -- Disable plugin messages (Config loaded/denied)
|
||||
lookup_parents = false, -- Lookup config files in parent directories
|
||||
})
|
||||
end,
|
||||
}
|
||||
30
profiles/desktop/.config/nvim/lua/plugins/nvim-lint.lua
Normal file
30
profiles/desktop/.config/nvim/lua/plugins/nvim-lint.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
return {
|
||||
'mfussenegger/nvim-lint',
|
||||
config = function()
|
||||
require('lint').linters_by_ft = {
|
||||
['yaml.ansible'] = { 'ansible_lint' },
|
||||
bash = { 'shellcheck' },
|
||||
make = { 'checkmake' },
|
||||
cmake = { 'cmakelint' },
|
||||
cpp = { 'clangtidy' },
|
||||
c = { 'clangtidy' },
|
||||
editorconfig = { 'editorconfig-checker' },
|
||||
html = { 'tidy' },
|
||||
json = { 'jsonlint' },
|
||||
sql = { 'sqlfluff' },
|
||||
js = { 'standardjs' },
|
||||
css = { 'stylelint' },
|
||||
systemd = { 'systemdlint' },
|
||||
yaml = { 'yamllint' },
|
||||
zsh = { 'zsh' },
|
||||
python = { 'pylint', 'mypy' },
|
||||
}
|
||||
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
||||
callback = function()
|
||||
-- try_lint without arguments runs the linters defined in `linters_by_ft`
|
||||
-- for the current filetype
|
||||
require('lint').try_lint()
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
lazy = false,
|
||||
config = function()
|
||||
local treesitter = require('nvim-treesitter')
|
||||
treesitter.setup({})
|
||||
treesitter.install({
|
||||
'c',
|
||||
'cpp',
|
||||
'lua',
|
||||
'bash',
|
||||
'json',
|
||||
'yaml',
|
||||
'vim',
|
||||
'dockerfile',
|
||||
'gitignore',
|
||||
'html',
|
||||
'css',
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
'windwp/nvim-ts-autotag',
|
||||
config = function()
|
||||
require('nvim-ts-autotag').setup({
|
||||
opts = {
|
||||
-- Defaults
|
||||
enable_close = true, -- Auto close tags
|
||||
enable_rename = true, -- Auto rename pairs of tags
|
||||
enable_close_on_slash = false, -- Auto close on trailing </
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
11
profiles/desktop/.config/nvim/lua/plugins/orgmode.lua
Normal file
11
profiles/desktop/.config/nvim/lua/plugins/orgmode.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
'nvim-orgmode/orgmode',
|
||||
event = 'VeryLazy',
|
||||
config = function()
|
||||
-- Setup orgmode
|
||||
require('orgmode').setup({
|
||||
org_agenda_files = '~/orgfiles/**/*',
|
||||
org_default_notes_file = '~/orgfiles/refile.org',
|
||||
})
|
||||
end,
|
||||
}
|
||||
21
profiles/desktop/.config/nvim/lua/plugins/telescope.lua
Normal file
21
profiles/desktop/.config/nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
tag = '0.1.8',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
config = function()
|
||||
require('telescope').setup({
|
||||
pickers = {
|
||||
find_files = { theme = 'dropdown' },
|
||||
grep_string = { theme = 'dropdown' },
|
||||
live_grep = { theme = 'dropdown' },
|
||||
},
|
||||
})
|
||||
|
||||
-- key bindings
|
||||
local builtin = require('telescope.builtin')
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
|
||||
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
|
||||
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
|
||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
'folke/todo-comments.nvim',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
config = true,
|
||||
}
|
||||
37
profiles/desktop/.config/nvim/lua/plugins/trouble.lua
Normal file
37
profiles/desktop/.config/nvim/lua/plugins/trouble.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
return {
|
||||
'folke/trouble.nvim',
|
||||
opts = {}, -- for default options, refer to the configuration section for custom setup.
|
||||
cmd = 'Trouble',
|
||||
keys = {
|
||||
{
|
||||
'<leader>xx',
|
||||
'<cmd>Trouble diagnostics toggle<cr>',
|
||||
desc = 'Diagnostics (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xX',
|
||||
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
|
||||
desc = 'Buffer Diagnostics (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>cs',
|
||||
'<cmd>Trouble symbols toggle focus=false<cr>',
|
||||
desc = 'Symbols (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>cl',
|
||||
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
|
||||
desc = 'LSP Definitions / references / ... (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xL',
|
||||
'<cmd>Trouble loclist toggle<cr>',
|
||||
desc = 'Location List (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xQ',
|
||||
'<cmd>Trouble qflist toggle<cr>',
|
||||
desc = 'Quickfix List (Trouble)',
|
||||
},
|
||||
},
|
||||
}
|
||||
6
profiles/desktop/.config/nvim/lua/plugins/undotree.lua
Normal file
6
profiles/desktop/.config/nvim/lua/plugins/undotree.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'mbbill/undotree',
|
||||
config = function()
|
||||
vim.keymap.set('n', '<leader>ut', vim.cmd.UndotreeToggle)
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'michaeljsmith/vim-indent-object',
|
||||
config = function() end,
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'roxma/vim-tmux-clipboard',
|
||||
config = function() end,
|
||||
}
|
||||
18
profiles/desktop/.config/nvim/lua/plugins/which-key.lua
Normal file
18
profiles/desktop/.config/nvim/lua/plugins/which-key.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
return {
|
||||
'folke/which-key.nvim',
|
||||
event = 'VeryLazy',
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
'<leader>?',
|
||||
function()
|
||||
require('which-key').show({ global = false })
|
||||
end,
|
||||
desc = 'Buffer Local Keymaps (which-key)',
|
||||
},
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user