new plugins, from coq to cmp, fixes, xdebug, install python3 fixes

This commit is contained in:
2026-02-01 11:03:03 +05:00
parent e85cd46b0d
commit 059f61c5f2
33 changed files with 960 additions and 661 deletions

64
lua/plugins/blink.lua Normal file
View File

@@ -0,0 +1,64 @@
-- Performant, batteries-included completion plugin for Neovim
return {
'saghen/blink.cmp',
enabled = true,
lazy = false,
-- optional: provides snippets for the snippet source
dependencies = { 'rafamadriz/friendly-snippets' },
-- use a release tag to download pre-built binaries
version = '1.*',
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
-- build = 'cargo build --release',
-- If you use nix, you can build from source using latest nightly rust with:
-- build = 'nix run .#build-plugin',
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
-- 'super-tab' for mappings similar to vscode (tab to accept)
-- 'enter' for enter to accept
-- 'none' for no mappings
--
-- All presets have the following mappings:
-- C-space: Open menu or open docs if already open
-- C-n/C-p or Up/Down: Select next/previous item
-- C-e: Hide menu
-- C-k: Toggle signature help (if signature.enabled = true)
--
-- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = 'default' },
appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned
nerd_font_variant = 'mono'
},
-- (Default) Only show the documentation popup when manually triggered
completion = { documentation = { auto_show = false } },
-- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = {
default = { 'lazydev', 'lsp', 'path', 'snippets', 'buffer' },
providers = {
lazydev = {
name = 'LazyDev',
module = 'lazydev.integrations.blink',
-- make lazydev completions top priority (see `:h blink.cmp`)
score_offset = 100,
},
}
},
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
-- You may use a lua implementation instead by using `implementation = 'lua'` or fallback to the lua implementation,
-- when the Rust fuzzy matcher is not available, by using `implementation = 'prefer_rust'`
--
-- See the fuzzy documentation for more information
fuzzy = { implementation = 'prefer_rust_with_warning' }
},
opts_extend = { 'sources.default' }
}

View File

@@ -1,72 +1,72 @@
-- A snazzy 💅 buffer line (with tabpage integration) for Neovim built using lua
return {
'akinsho/bufferline.nvim',
'akinsho/bufferline.nvim',
enabled = true,
lazy = true,
event = 'BufReadPre',
keys = {
{ '<tab>', '<cmd>BufferLineCycleNext<cr>', mode = { 'n' }, desc = 'Move to the next tab', noremap = true, silent = true },
{ '<s-tab>', '<cmd>BufferLineCyclePrev<cr>', mode = { 'n' }, desc = 'Move to the previous tab', noremap = true, silent = true },
{ '<c-tab>', '<cmd>lua require("bufferline").go_to(vim.fn.input("Enter tab number: "), true)<cr>', mode = { 'n' }, desc = 'Move to the tab', noremap = true, silent = true },
{ '<tab>', '<cmd>BufferLineCycleNext<cr>', mode = { 'n' }, desc = 'Move to the next tab', noremap = true, silent = true },
{ '<s-tab>', '<cmd>BufferLineCyclePrev<cr>', mode = { 'n' }, desc = 'Move to the previous tab', noremap = true, silent = true },
{ '<c-tab>', '<cmd>lua require("bufferline").go_to(vim.fn.input("Enter tab number: "), true)<cr>', mode = { 'n' }, desc = 'Move to the tab', noremap = true, silent = true },
},
version = '*',
version = '*',
dependencies = {
--
{ 'nvim-tree/nvim-web-devicons' }
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
'nvim-tree/nvim-web-devicons'
},
opts = {
options = {
opts = {
options = {
themable = true,
numbers = 'ordinal',
-- close_command = 'bdelete! %d',
-- right_mouse_command = 'bdelete! %d',
-- left_mouse_command = 'buffer %d',
-- middle_mouse_command = nil,
indicator = {
icon = '',
style = 'icon',
},
max_name_length = 24,
max_prefix_length = 18,
truncate_names = true,
tab_size = 18,
diagnostics = 'nvim_lsp',
offsets = {
{
filetype = 'NvimTree',
text = 'File Explorer',
text_align = 'left',
separator = true
}
},
color_icons = true,
show_buffer_icons = true,
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
show_duplicate_prefix = true,
duplicates_across_groups = true,
persist_buffer_sort = true,
move_wraps_at_ends = false,
-- separator_style = 'slant' | 'slope' | 'thick' | 'thin' | { 'any', 'any' },
separator_style = 'default',
enforce_regular_tabs = false,
always_show_bufferline = true,
auto_toggle_bufferline = true,
hover = {
enabled = true,
delay = 200,
reveal = {'close'}
},
--[[ sort_by = 'insert_after_current' |'insert_at_end' | 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
numbers = 'ordinal',
-- close_command = 'bdelete! %d',
-- right_mouse_command = 'bdelete! %d',
-- left_mouse_command = 'buffer %d',
-- middle_mouse_command = nil,
indicator = {
icon = '',
style = 'icon',
},
max_name_length = 24,
max_prefix_length = 18,
truncate_names = true,
tab_size = 18,
diagnostics = 'nvim_lsp',
offsets = {
{
filetype = 'NvimTree',
text = 'File Explorer',
text_align = 'left',
separator = true
}
},
color_icons = true,
show_buffer_icons = true,
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
show_duplicate_prefix = true,
duplicates_across_groups = true,
persist_buffer_sort = true,
move_wraps_at_ends = false,
-- separator_style = 'slant' | 'slope' | 'thick' | 'thin' | { 'any', 'any' },
separator_style = 'default',
enforce_regular_tabs = false,
always_show_bufferline = true,
auto_toggle_bufferline = true,
hover = {
enabled = true,
delay = 200,
reveal = { 'close' }
},
--[[ sort_by = 'insert_after_current' |'insert_at_end' | 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
local modified_a = vim.fn.getftime(buffer_a.path)
local modified_b = vim.fn.getftime(buffer_b.path)
return modified_a > modified_b
end, ]]
sort_by = 'insert_after_current',
pick = {
alphabet = 'abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890',
}
sort_by = 'insert_after_current',
pick = {
alphabet = 'abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890',
}
}
}
}
}

View File

@@ -1,23 +0,0 @@
-- Fast as FUCK nvim completion
return {
'ms-jpq/coq_nvim',
enabled = true,
lazy = false,
priority = 30,
branch = 'coq',
dependencies = {
-- Quickstart configs for Nvim LSP
{ 'neovim/nvim-lspconfig' },
-- 9000+ Snippets
{ 'ms-jpq/coq.artifacts', branch = 'artifacts' },
-- Lua & third party sources. Need to **configure separately**
{ 'ms-jpq/coq.thirdparty', branch = '3p' }
},
config = function()
vim.g.coq_settings = {
auto_start = 'shut-up',
}
end,
}

View File

@@ -4,10 +4,10 @@ return {
enabled = true,
lazy = true,
dependencies = {
-- Debug Adapter Protocol client implementation for Neovim
-- Debug Adapter Protocol client implementation for Neovim
{ 'mfussenegger/nvim-dap' },
-- Nvim Treesitter configurations and abstraction layer
-- Nvim Treesitter configurations and abstraction layer
{ 'nvim-treesitter/nvim-treesitter' }
}
}

View File

@@ -1,14 +1,14 @@
-- A UI for nvim-dap
return {
'rcarriga/nvim-dap-ui',
-- An UI for nvim-dap
return {
'rcarriga/nvim-dap-ui',
enabled = true,
lazy = true,
dependencies = {
-- Debug Adapter Protocol client implementation for Neovim
'mfussenegger/nvim-dap',
-- Debug Adapter Protocol client implementation for Neovim
{ 'mfussenegger/nvim-dap' },
-- A library for asynchronous IO in Neovim
'nvim-neotest/nvim-nio'
{ 'nvim-neotest/nvim-nio' }
},
config = function()
local dap, dapui = require('dap'), require('dapui')

View File

@@ -1,29 +1,40 @@
-- Debug Adapter Protocol client implementation for Neovim
-- Debug Adapter Protocol client implementation for Neovim
return {
'mfussenegger/nvim-dap',
enabled = true,
lazy = true,
dependencies = {
-- An UI for nvim-dap
{ 'rcarriga/nvim-dap-ui' },
-- A library for asynchronous IO in Neovim
{ 'nvim-neotest/nvim-nio' },
-- Virtual text support to nvim-dap
{ 'theHamsta/nvim-dap-virtual-text' }
},
config = function()
local dap = require('dap')
local dap = require('dap')
require('telescope').load_extension('dap')
-- Installing debuggers for C, Rust and C++
dap.configurations.cpp = {}
-- Installing debuggers for C, Rust and C++
dap.configurations.cpp = {}
-- Initializing PHP debugger adapter
dap.adapters.php = {
type = 'executable',
command = 'node',
args = { os.getenv('HOME') .. '/vscode-php-debug/out/phpDebug.js' }
-- Initializing PHP debugger adapter
dap.adapters.php = {
type = 'executable',
command = 'node',
args = { os.getenv('HOME') .. '/vscode-php-debug/out/phpDebug.js' }
}
-- Installing PHP debugger
dap.configurations.php = {
{
type = 'php',
request = 'launch',
name = 'Listen for Xdebug',
port = 9003
}
-- Installing PHP debugger
dap.configurations.php = {
{
type = 'php',
request = 'launch',
name = 'Listen for Xdebug',
port = 9003
}
}
end
}
end
}

View File

@@ -1,4 +1,4 @@
-- Live render workspace diagnostics in quickfix with
-- Live render workspace diagnostics in quickfix with
-- current buf errors on top, buffer diagnostics in loclist
-- @todo удалить и заменить на трабл
return {

View File

@@ -0,0 +1,175 @@
-- Quickstart configs for Nvim LSP
return {
'neovim/nvim-lspconfig',
enabled = true,
lazy = false,
priority = 70,
dependencies = {
-- 🌈 Plugin that creates missing LSP diagnostics
-- highlight groups for color schemes that do not
-- yet support the Neovim 0.5 builtin LSP client
{ 'folke/lsp-colors.nvim' },
-- Fast as FUCK nvim completion
{ 'ms-jpq/coq_nvim', branch = 'coq' },
-- 9000+ Snippets
{ 'ms-jpq/coq.artifacts', branch = 'artifacts' },
-- Lua & third party sources. Need to **configure separately**
{ 'ms-jpq/coq.thirdparty', branch = '3p' }
},
init = function()
vim.g.coq_settings = {
auto_start = 'shut-up'
}
end,
config = function()
-- @todo навести порядок
-- Активация вещания готовых набросков
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
-- Инициализация 'ms-jpq/coq_nvim'
local coq = require('coq')
-- Инициализация LSP-серверов
-- Инициализация 'bmewburn/vscode-intelephense' (LSP-сервер для PHP)
vim.lsp.config(
'intelephense',
{
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('intelephense')
-- Инициализация 'hrsh7th/vscode-html-language-server' (LSP-сервер для HTML)
vim.lsp.config(
'html',
{
init_options = {
configurationSection = { 'html' },
embeddedLanguages = {
css = false,
javascript = false
},
provideFormatter = true,
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('html')
-- Инициализация 'aca/emmet-ls' (LSP-сервер для HTML)
vim.lsp.config(
'emmet_ls',
{
init_options = {
html = {
options = {
['bem.enabled'] = true,
},
},
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('emmet_ls')
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для CSS)
vim.lsp.config(
'cssls',
{
settings = {
css = {
validate = true
},
less = {
validate = true
},
scss = {
validate = true
}
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('cssls')
-- Инициализация 'antonk52/cssmodules-language-server' (LSP-сервер для JS, вспомогательный для CSS)
vim.lsp.config(
'cssmodules_ls',
{
init_options = {
camelCase = false,
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('cssmodules_ls')
-- Инициализация 'denoland/deno' (LSP-сервер для JavaScript и PostScript)
vim.lsp.config(
'denols',
{
init_options = {
enable = true,
unstable = false
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('denols')
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для JSON)
vim.lsp.config(
'jsonls',
{
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('jsonls')
-- Инициализация 'luals/lua-language-server' (LSP-сервер для Lua)
vim.lsp.config(
'lua_ls',
{
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { 'vim' },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file('', true),
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
},
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('lua_ls')
end,
}

View File

@@ -8,74 +8,74 @@ return {
name = 'flexoki',
opts = {
variant = 'auto', -- auto, moon, or dawn
dim_inactive_windows = false,
extend_background_behind_borders = true,
dim_inactive_windows = false,
extend_background_behind_borders = true,
enable = {
terminal = true,
},
enable = {
terminal = true,
},
styles = {
bold = true,
italic = false,
},
styles = {
bold = true,
italic = false,
},
groups = {
border = 'muted',
link = 'purple_two',
panel = 'surface',
groups = {
border = 'muted',
link = 'purple_two',
panel = 'surface',
error = 'red_one',
hint = 'purple_one',
info = 'cyan_one',
ok = 'green_one',
warn = 'orange_one',
note = 'blue_one',
todo = 'magenta_one',
error = 'red_one',
hint = 'purple_one',
info = 'cyan_one',
ok = 'green_one',
warn = 'orange_one',
note = 'blue_one',
todo = 'magenta_one',
git_add = 'green_one',
git_change = 'yellow_one',
git_delete = 'red_one',
git_dirty = 'yellow_one',
git_ignore = 'muted',
git_merge = 'purple_one',
git_rename = 'blue_one',
git_stage = 'purple_one',
git_text = 'magenta_one',
git_untracked = 'subtle',
git_add = 'green_one',
git_change = 'yellow_one',
git_delete = 'red_one',
git_dirty = 'yellow_one',
git_ignore = 'muted',
git_merge = 'purple_one',
git_rename = 'blue_one',
git_stage = 'purple_one',
git_text = 'magenta_one',
git_untracked = 'subtle',
h1 = 'purple_two',
h2 = 'cyan_two',
h3 = 'magenta_two',
h4 = 'orange_two',
h5 = 'blue_two',
h6 = 'cyan_two',
},
h1 = 'purple_two',
h2 = 'cyan_two',
h3 = 'magenta_two',
h4 = 'orange_two',
h5 = 'blue_two',
h6 = 'cyan_two',
},
palette = {
-- Override the builtin palette per variant
-- moon = {
-- base = '#100f0f',
-- overlay = '#1c1b1a',
-- },
},
palette = {
-- Override the builtin palette per variant
-- moon = {
-- base = '#100f0f',
-- overlay = '#1c1b1a',
-- },
},
highlight_groups = {
-- Comment = { fg = 'subtle' },
-- VertSplit = { fg = 'muted', bg = 'muted' },
},
highlight_groups = {
-- Comment = { fg = 'subtle' },
-- VertSplit = { fg = 'muted', bg = 'muted' },
},
before_highlight = function(group, highlight, palette)
-- Disable all undercurls
-- if highlight.undercurl then
-- highlight.undercurl = false
-- end
--
-- Change palette colour
-- if highlight.fg == palette.blue_two then
-- highlight.fg = palette.cyan_two
-- end
end,
before_highlight = function(group, highlight, palette)
-- Disable all undercurls
-- if highlight.undercurl then
-- highlight.undercurl = false
-- end
--
-- Change palette colour
-- if highlight.fg == palette.blue_two then
-- highlight.fg = palette.cyan_two
-- end
end,
},
config = function()
-- Activating

View File

@@ -5,45 +5,45 @@ return {
enabled = true,
lazy = true,
opts = {
on_attach = gitsigns_on_attach,
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 = {
on_attach = gitsigns_on_attach,
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
}, ]]

View File

@@ -4,9 +4,9 @@ return {
enabled = true,
lazy = true,
keys = {
{ 'gcc', '<Plug>kommentary_line_default', mode = 'n', desc = 'Comment', noremap = true, silent = true },
{ 'gc', '<Plug>kommentary_motion_default', mode = 'n', desc = 'Comment', noremap = true, silent = true },
{ 'gc', '<Plug>kommentary_visual_default<C-c>', mode = 'v', desc = 'Comment', noremap = true, silent = true },
{ 'gcc', '<Plug>kommentary_line_default', mode = 'n', desc = 'Comment', noremap = true, silent = true },
{ 'gc', '<Plug>kommentary_motion_default', mode = 'n', desc = 'Comment', noremap = true, silent = true },
{ 'gc', '<Plug>kommentary_visual_default<C-c>', mode = 'v', desc = 'Comment', noremap = true, silent = true },
},
config = function()
vim.g.kommentary_create_default_mappings = false

13
lua/plugins/lazydev.lua Normal file
View File

@@ -0,0 +1,13 @@
-- Faster LuaLS setup for Neovim
return {
'folke/lazydev.nvim',
enabled = true,
lazy = false,
ft = 'lua',
opts = {
library = {
-- Load luvit types when the `vim.uv` word is found
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
},
}
}

View File

@@ -1,5 +1,5 @@
-- An asynchronous linter plugin for Neovim complementary
-- to the built-in Language Server Protocol support.
-- An asynchronous linter plugin for Neovim complementary
-- to the built-in Language Server Protocol support.
return {
'mfussenegger/nvim-lint',
enabled = true,

View File

@@ -1,167 +1,156 @@
-- Quickstart configs for Nvim LSP
return {
'neovim/nvim-lspconfig',
'neovim/nvim-lspconfig',
enabled = true,
lazy = false,
lazy = false,
priority = 70,
dependencies = {
-- 🌈 Plugin that creates missing LSP diagnostics
-- highlight groups for color schemes that do not
dependencies = {
-- 🌈 Plugin that creates missing LSP diagnostics
-- highlight groups for color schemes that do not
-- yet support the Neovim 0.5 builtin LSP client
{ 'folke/lsp-colors.nvim' },
{ 'folke/lsp-colors.nvim' },
-- 9000+ Snippets
{ 'ms-jpq/coq.artifacts', branch = 'artifacts' },
-- A completion plugin for neovim coded in Lua.
{ 'hrsh7th/nvim-cmp' },
-- Lua & third party sources. Need to **configure separately**
{ 'ms-jpq/coq.thirdparty', branch = '3p' }
},
config = function()
-- @todo навести порядок
-- 💫 Extensible UI for Neovim notifications and LSP progress messages
{ 'j-hui/fidget.nvim' }
},
init = function()
end,
config = function()
-- @todo навести порядок
-- Активация вещания готовых набросков
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
-- Активация вещания готовых набросков
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- Инициализация LSP-серверов
-- Инициализация 'ms-jpq/coq_nvim'
local coq = require('coq')
-- Инициализация 'bmewburn/vscode-intelephense' (LSP-сервер для PHP)
vim.lsp.config(
'intelephense',
{
on_attach = lspconfig_on_attach,
capabilities = capabilities
}
)
vim.lsp.enable('intelephense')
-- Инициализация LSP-серверов
-- Инициализация 'hrsh7th/vscode-html-language-server' (LSP-сервер для HTML)
vim.lsp.config(
'html',
{
init_options = {
configurationSection = { 'html' },
embeddedLanguages = {
css = false,
javascript = false
},
provideFormatter = true,
},
on_attach = lspconfig_on_attach,
capabilities = capabilities
}
)
vim.lsp.enable('html')
-- Инициализация 'bmewburn/vscode-intelephense' (LSP-сервер для PHP)
vim.lsp.config(
'intelephense',
{
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('intelephense')
-- Инициализация 'aca/emmet-ls' (LSP-сервер для HTML)
vim.lsp.config(
'emmet_ls',
{
init_options = {
html = {
options = {
['bem.enabled'] = true,
},
},
},
on_attach = lspconfig_on_attach,
capabilities = capabilities
})
vim.lsp.enable('emmet_ls')
-- Инициализация 'hrsh7th/vscode-html-language-server' (LSP-сервер для HTML)
vim.lsp.config(
'html',
{
init_options = {
configurationSection = { 'html' },
embeddedLanguages = {
css = false,
javascript = false
},
provideFormatter = true,
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('html')
-- Инициализация 'aca/emmet-ls' (LSP-сервер для HTML)
vim.lsp.config(
'emmet_ls',
{
init_options = {
html = {
options = {
['bem.enabled'] = true,
},
},
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('emmet_ls')
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для CSS)
vim.lsp.config(
'cssls',
{
settings = {
css = {
validate = true
},
less = {
validate = true
},
scss = {
validate = true
}
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('cssls')
-- Инициализация 'antonk52/cssmodules-language-server' (LSP-сервер для JS, вспомогательный для CSS)
vim.lsp.config(
'cssmodules_ls',
{
init_options = {
camelCase = false,
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('cssmodules_ls')
-- Инициализация 'denoland/deno' (LSP-сервер для JavaScript и PostScript)
vim.lsp.config(
'denols',
{
init_options = {
enable = true,
unstable = false
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('denols')
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для JSON)
vim.lsp.config(
'jsonls',
{
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('jsonls')
-- Инициализация 'luals/lua-language-server' (LSP-сервер для Lua)
vim.lsp.config(
'lua_ls',
{
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { 'vim' },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file('', true),
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
},
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('lua_ls')
end,
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для CSS)
vim.lsp.config(
'cssls',
{
settings = {
css = {
validate = true
},
less = {
validate = true
},
scss = {
validate = true
}
},
on_attach = lspconfig_on_attach,
capabilities = capabilities
})
vim.lsp.enable('cssls')
-- Инициализация 'antonk52/cssmodules-language-server' (LSP-сервер для JS, вспомогательный для CSS)
vim.lsp.config(
'cssmodules_ls',
{
init_options = {
camelCase = false,
},
on_attach = lspconfig_on_attach,
capabilities = capabilities
})
vim.lsp.enable('cssmodules_ls')
-- Инициализация 'denoland/deno' (LSP-сервер для JavaScript и PostScript)
vim.lsp.config(
'denols',
{
init_options = {
enable = true,
unstable = false
},
on_attach = lspconfig_on_attach,
capabilities = capabilities
})
vim.lsp.enable('denols')
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для JSON)
vim.lsp.config(
'jsonls',
{
on_attach = lspconfig_on_attach,
capabilities = capabilities
})
vim.lsp.enable('jsonls')
-- Инициализация 'luals/lua-language-server' (LSP-сервер для Lua)
vim.lsp.config(
'lua_ls',
{
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { 'vim' },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file('', true),
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
},
},
on_attach = lspconfig_on_attach,
capabilities = capabilities
}
)
vim.lsp.enable('lua_ls')
end,
}

View File

@@ -1,10 +1,10 @@
-- VSCodestyle pictograms for Neovim completion items
-- VSCodestyle pictograms for Neovim completion items
return {
'onsails/lspkind-nvim',
enabled = true,
lazy = true,
opts = {
mode = 'symbol',
preset = 'default',
mode = 'symbol',
preset = 'default',
}
}

View File

@@ -1,113 +1,113 @@
-- stylua: ignore
local colors = {
blue = '#80a0ff',
cyan = '#79dac8',
black = '#080808',
white = '#c6c6c6',
red = '#ff5189',
violet = '#d183e8',
grey = '#303030',
blue = '#80a0ff',
cyan = '#79dac8',
black = '#080808',
white = '#c6c6c6',
red = '#ff5189',
violet = '#d183e8',
grey = '#303030',
}
local bubbles_theme = {
normal = {
a = { fg = colors.black, bg = colors.violet },
b = { fg = colors.white, bg = colors.grey },
c = { fg = colors.white },
},
normal = {
a = { fg = colors.black, bg = colors.violet },
b = { fg = colors.white, bg = colors.grey },
c = { fg = colors.white },
},
insert = { a = { fg = colors.black, bg = colors.blue } },
visual = { a = { fg = colors.black, bg = colors.cyan } },
replace = { a = { fg = colors.black, bg = colors.red } },
insert = { a = { fg = colors.black, bg = colors.blue } },
visual = { a = { fg = colors.black, bg = colors.cyan } },
replace = { a = { fg = colors.black, bg = colors.red } },
inactive = {
a = { fg = colors.white, bg = colors.black },
b = { fg = colors.white, bg = colors.black },
c = { fg = colors.white },
},
inactive = {
a = { fg = colors.white, bg = colors.black },
b = { fg = colors.white, bg = colors.black },
c = { fg = colors.white },
},
}
-- A blazing fast and easy to configure
-- A blazing fast and easy to configure
-- neovim statusline plugin written in pure lua
-- @todo навести порядок
return {
'nvim-lualine/lualine.nvim',
enabled = true,
lazy = false,
priority = 80,
dependencies = {
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' },
'nvim-lualine/lualine.nvim',
enabled = true,
lazy = false,
priority = 80,
dependencies = {
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' },
-- LSP Progress lualine componenet
{ 'arkav/lualine-lsp-progress' },
-- LSP Progress lualine componenet
{ 'arkav/lualine-lsp-progress' },
-- A Git wrapper so awesome, it should be illegal
{ 'tpope/vim-fugitive' }
},
config = function()
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
always_show_tabline = true,
globalstatus = true,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
refresh_time = 16, -- ~60fps
events = {
'WinEnter',
'BufEnter',
'BufWritePost',
'SessionLoadPost',
'FileChangedShellPost',
'VimResized',
'Filetype',
'CursorMoved',
'CursorMovedI',
'ModeChanged',
},
}
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff'},
lualine_c = {'filename', 'lsp_progress'},
lualine_x = { 'encoding', 'fileformat', 'filetype'},
-- lualine_x = { FugitiveStatusline, 'encoding', 'fileformat', 'filetype'},
-- lualine_x = { FugitiveHead, 'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {
'lazy',
'nvim-dap-ui',
'trouble',
'neo-tree'
}
}
--[[ config = function()
-- A Git wrapper so awesome, it should be illegal
{ 'tpope/vim-fugitive' }
},
config = function()
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
always_show_tabline = true,
globalstatus = true,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
refresh_time = 16, -- ~60fps
events = {
'WinEnter',
'BufEnter',
'BufWritePost',
'SessionLoadPost',
'FileChangedShellPost',
'VimResized',
'Filetype',
'CursorMoved',
'CursorMovedI',
'ModeChanged',
},
}
},
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff' },
lualine_c = { 'filename', 'lsp_progress' },
lualine_x = { 'encoding', 'fileformat', 'filetype' },
-- lualine_x = { FugitiveStatusline, 'encoding', 'fileformat', 'filetype'},
-- lualine_x = { FugitiveHead, 'encoding', 'fileformat', 'filetype'},
lualine_y = { 'progress' },
lualine_z = { 'location' }
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { 'filename' },
lualine_x = { 'location' },
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {
'lazy',
'nvim-dap-ui',
'trouble',
'neo-tree'
}
}
--[[ config = function()
local trouble = require("trouble")
local symbols = trouble.statusline({
mode = "lsp_document_symbols",
@@ -124,5 +124,5 @@ return {
cond = symbols.has,
})
end ]]
end
end
}

View File

@@ -1,9 +1,9 @@
-- Create Neovim themes with real-time feedback, export anywhere
return {
'rktjmp/lush.nvim',
'rktjmp/lush.nvim',
enabled = true,
lazy = false,
priority = 100,
-- if you wish to use your own colorscheme:
-- { dir = '/absolute/path/to/colorscheme', lazy = true },
-- if you wish to use your own colorscheme:
-- { dir = '/absolute/path/to/colorscheme', lazy = true },
}

View File

@@ -7,17 +7,17 @@ return {
keys = {
{ '<f1>', '<cmd>Neotree toggle<cr>', mode = { 'n', 'i', 'v', 't' }, desc = 'NeoTree toggle', noremap = true, silent = true },
},
branch = 'v3.x',
dependencies = {
-- Lua functions
branch = 'v3.x',
dependencies = {
-- Lua functions
{ 'nvim-lua/plenary.nvim' },
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' },
-- UI Component Library for Neovim
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' },
-- UI Component Library for Neovim
{ 'MunifTanjim/nui.nvim' },
},
},
opts = {
close_if_last_window = true,
clipboard = {

View File

@@ -0,0 +1,15 @@
-- Git source for nvim-cmp
return {
'petertriho/cmp-git',
enabled = true,
lazy = true,
dependencies = {
-- A completion plugin for neovim coded in Lua.
{ 'hrsh7th/nvim-cmp' }
},
opts = {
},
init = function()
table.insert(require('cmp').get_config().sources, { name = 'git' })
end
}

View File

@@ -0,0 +1,14 @@
-- A completion plugin for neovim coded in Lua.
return {
'hrsh7th/cmp-nvim-lsp',
enabled = true,
lazy = true,
dependencies = {
-- A completion plugin for neovim coded in Lua.
{ 'hrsh7th/nvim-cmp' }
},
opts = {
},
init = function()
end
}

29
lua/plugins/nvim-cmp.lua Normal file
View File

@@ -0,0 +1,29 @@
-- A completion plugin for neovim coded in Lua.
return {
'hrsh7th/nvim-cmp',
enabled = true,
lazy = true,
dependencies = {
-- nvim-cmp source for neovim builtin LSP client
{ 'hrsh7th/cmp-nvim-lsp' },
-- Git source for nvim-cmp
{ 'petertriho/cmp-git' },
},
opts = function(_, opts)
opts.sources = opts.sources or {}
table.insert(opts.sources, {
name = 'lazydev',
group_index = 0, -- set group index to 0 to skip loading LuaLS completions
})
table.insert(opts.sources, {
name = 'nvim_lsp'
})
table.insert(opts.sources, {
name = 'git'
})
end,
}

View File

@@ -1,76 +1,76 @@
-- Highlight only the screen line of the cursor
-- Highlight only the screen line of the cursor
-- in the currently active window
return {
'tummetott/reticle.nvim',
'tummetott/reticle.nvim',
enabled = true,
lazy = true,
event = 'VeryLazy',
event = 'VeryLazy',
opts = {
-- Enable/Disable the cursorline and/or cursorcolumn at startup
on_startup = {
cursorline = true,
cursorcolumn = false,
},
on_startup = {
cursorline = true,
cursorcolumn = false,
},
-- Disable the cursorline and cursorcolumn in insert mode
-- Disable the cursorline and cursorcolumn in insert mode
disable_in_insert = false,
-- Disable the cursorline and cursorcolumn in diff mode
disable_in_diff = false,
-- Disable the cursorline and cursorcolumn in diff mode
disable_in_diff = false,
-- By default, nvim highlights the cursorline number only when the
-- cursorline setting is active. Enabling this setting ensures that the
-- cursorline number in every window is always highlighted, regardless of
-- the cursorline setting. See: ':h cursorlineopt'
always_highlight_number = false,
-- By default, nvim highlights the cursorline number only when the
-- cursorline setting is active. Enabling this setting ensures that the
-- cursorline number in every window is always highlighted, regardless of
-- the cursorline setting. See: ':h cursorlineopt'
always_highlight_number = false,
-- Cursorline and/or cursorcolumn are set to be displayed exclusively in
-- the active window, thus following your active window. This setting is
-- overruled by the following settings concerning special filetypes.
follow = {
cursorline = true,
cursorcolumn = true,
},
-- Cursorline and/or cursorcolumn are set to be displayed exclusively in
-- the active window, thus following your active window. This setting is
-- overruled by the following settings concerning special filetypes.
follow = {
cursorline = true,
cursorcolumn = true,
},
-- Specify filetypes where the cursorline and/or cursorcolumn are always
-- enabled, regardless of the global setting.
always = {
cursorline = {},
cursorcolumn = {},
},
-- Specify filetypes where the cursorline and/or cursorcolumn are always
-- enabled, regardless of the global setting.
always = {
cursorline = {},
cursorcolumn = {},
},
-- Specify filetypes where the cursorline and/or cursorcolumn are always
-- enabled when the window is focused, regardless of the global setting.
on_focus = {
cursorline = {},
cursorcolumn = {},
},
-- Specify filetypes where the cursorline and/or cursorcolumn are always
-- enabled when the window is focused, regardless of the global setting.
on_focus = {
cursorline = {},
cursorcolumn = {},
},
-- Define filetypes which are ignored by the plugin
ignore = {
cursorline = {
'DressingInput',
'FTerm',
'NvimSeparator',
'NvimTree',
'neo-tree',
'TelescopePrompt',
'Trouble',
},
cursorcolumn = {
'neo-tree',
},
},
-- Define filetypes which are ignored by the plugin
ignore = {
cursorline = {
'DressingInput',
'FTerm',
'NvimSeparator',
'NvimTree',
'neo-tree',
'TelescopePrompt',
'Trouble',
},
cursorcolumn = {
'neo-tree',
},
},
-- Specify filetypes where the cursorline and/or cursorcolumn should be
-- explicitly disabled. Typically, you would include these filetypes in
-- the 'ignored' table. However, there are situations where plugins enable
-- cursorline/cursorcolumn without offering a configuration option for
-- disabling them. By adding these filetypes to the 'never' table, you
-- can override the plugin's settings and turn off these features.
never = {
cursorline = {},
cursorcolumn = {},
}
-- Specify filetypes where the cursorline and/or cursorcolumn should be
-- explicitly disabled. Typically, you would include these filetypes in
-- the 'ignored' table. However, there are situations where plugins enable
-- cursorline/cursorcolumn without offering a configuration option for
-- disabling them. By adding these filetypes to the 'never' table, you
-- can override the plugin's settings and turn off these features.
never = {
cursorline = {},
cursorcolumn = {},
}
}
}

View File

@@ -5,16 +5,16 @@ return {
enabled = true,
lazy = true,
keys = {
{ '<c-f>', '<cmd>Telescope find_files<cr>', mode = { 'n', 'i', 'v', 't' }, desc = 'Search files', noremap = true, silent = true },
{ '<c-g>', '<cmd>Telescope live_grep<cr>', mode = { 'n', 'i', 'v', 't' }, desc = 'Grep files', noremap = true, silent = true },
{ '<leader><tab>', '<cmd>Telescope buffers<cr>', mode = { 'n', 'v', 't' }, desc = 'Search buffers', noremap = true, silent = true },
{ '<leader>?', '<cmd>Telescope help_tags<cr>', mode = { 'n', 'v', 't' }, desc = 'Help', noremap = true, silent = true },
{ '<c-f>', '<cmd>Telescope find_files<cr>', mode = { 'n', 'i', 'v', 't' }, desc = 'Search files', noremap = true, silent = true },
{ '<c-g>', '<cmd>Telescope live_grep<cr>', mode = { 'n', 'i', 'v', 't' }, desc = 'Grep files', noremap = true, silent = true },
{ '<leader><tab>', '<cmd>Telescope buffers<cr>', mode = { 'n', 'v', 't' }, desc = 'Search buffers', noremap = true, silent = true },
{ '<leader>?', '<cmd>Telescope help_tags<cr>', mode = { 'n', 'v', 't' }, desc = 'Help', noremap = true, silent = true },
},
dependencies = {
-- Functions for Telescope
{ 'nvim-lua/plenary.nvim' },
-- Integration for nvim-dap with telescope.nvim
-- Integration for nvim-dap with telescope.nvim
{ 'nvim-telescope/telescope-dap.nvim' }
},
opts = {

View File

@@ -4,7 +4,7 @@ return {
enabled = true,
lazy = false,
priority = 40,
build = ':TSUpdate',
build = ':TSUpdate',
opts = {
highlight = {
enable = true,

View File

@@ -1,8 +1,8 @@
-- 🚦 A pretty diagnostics, references, telescope results,
-- quickfix and location list to help you solve
-- 🚦 A pretty diagnostics, references, telescope results,
-- quickfix and location list to help you solve
-- all the trouble your code is causing
return {
'folke/trouble.nvim',
return {
'folke/trouble.nvim',
enabled = true,
lazy = false,
cmd = 'Trouble',
@@ -10,10 +10,10 @@ return {
{ '<f3>', '<cmd>Trouble diagnostics toggle<cr>', mode = { 'n', 'i', 'v', 't' }, desc = 'Diagnostics (Trouble)', noremap = true, silent = true },
},
dependencies = {
-- Nvim Treesitter configurations and abstraction layer
-- Nvim Treesitter configurations and abstraction layer
{ 'nvim-treesitter/nvim-treesitter' },
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' }
}
}