tarch-configs/configs/nvim/lua/core/options.lua
2024-03-23 10:05:10 +03:00

304 lines
11 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local M = {}
local opt = vim.opt
local g = vim.g
local cmd = vim.cmd
M.load = function()
local options = {
-- количество экранных строк для использования в командной строке
cmdheight = 0,
-- копирование вставка между vim и всем остальным (allows neovim to access the system clipboard)
clipboard = "unnamedplus",
-- LVIM creates a backup file
backup = false,
-- всплывающее меню для отображения возможных вариантов завершения.
completeopt = { "menuone", "noselect" },
-- скрытый уровень отключен и текст в `` можно видеть
conceallevel = 0,
-- входная и выходная кодировка
fileencoding = "utf-8",
encoding = "utf-8",
-- LVIM set to "nvim_treesitter#foldexpr()" for treesitter based folding
-- LVIM folding, set to "manual" for treesitter based folding
foldmethod = "expr",
foldexpr = "nvim_treesitter#foldexpr()",
-- устанавливает максимальное вложение складок
foldnestmax = 10,
-- устанавливает уровень сворачивания: складки с более высоким уровнем будут закрыты.
-- Установка этого параметра на ноль закроет все складки . Чем больше число, тем меньше складок .
foldlevel = 2,
foldlevelstart = 20,
-- LVIM the font used in graphical neovim applications
guifont = "monospace:h17",
-- LVIM required to keep multiple buffers and open multiple buffers
hidden = true,
-- LVIM highlight all matches on previous search pattern
hlsearch = true,
-- игнорировать регистр в шаблонах поиска.p
ignorecase = true,
-- разрешает использование мыши
mouse = "a",
-- pop up menu height
pumheight = 10,
-- we don't need to see things like -- INSERT -- anymore
showmode = false,
-- если ее включить, то будет линии вверху
showtabline = 0,
-- переопределять значение «IGNORECASE» вариант, если поиск шаблон содержит верхний регистра символов. Используется только при вводе шаблона поиска
smartcase = true,
-- горизонтальное разделение идет ниже
splitbelow = true,
-- вертикально разделение идет вправо
splitright = true,
-- creates a swapfile
swapfile = false,
-- установите цвета графического интерфейса term (большинство терминалов поддерживают это)
termguicolors = true,
-- время ожидания завершения отображаемой последовательности (в миллисекундах)
timeoutlen = 400,
-- LVIM set the title of window to the value of the titlestring
-- так и не понял т.к. ни разу не увидел результат работы этого
-- title = true,
-- titlestring = "%<%F%=%l/%L - nvim",
-- включено, т.е. если закрыть файл и потом открыть то все равно можно будет делать отмену изменений
undofile = true,
-- более быстрое завершение (по умолчанию 4000 мс)
updatetime = 100,
-- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
writebackup = false,
-- конвертирование табы в space
expandtab = true,
-- количество пробелов, вставленных для каждого отступа
shiftwidth = 2,
-- вставьте 2 пробела для табуляции
tabstop = 2,
-- highlight the current line
cursorline = true,
-- оставляет выделение только номера строки
cursorlineopt = "number",
-- устанавливает видимость линий
number = true,
-- ширина столбца с цифрами строко
numberwidth = 2,
-- всегда показывайте столбец со знаком, в противном случае текст каждый раз будет смещаться
signcolumn = "yes",
-- display lines as one long line
wrap = false,
-- не читать из глобального хранилища
shadafile = "NONE",
-- начинать скролить за ... строк до конца экрана
scrolloff = 12,
-- LVIM начинать скролить за ... строк до конца экрана
sidescrolloff = 12,
-- показывать курсор все время
ruler = true,
-- LVM что то связанное со статусной строкой TODO: ПРОВЕРИТЬ !!!
-- у меня до LVM стояло 0
laststatus = 3,
-- LVIM что-то связаннное с показом вводимых команд
showcmd = false,
-- НЕ РАССМОТРЕННЫЕ В LVIM
-- делает умный автоотступ (make indenting smarter again)
smartindent = true,
-- установите относительные пронумерованные строки
relativenumber = true,
-- не переррисовывать все время https://stackoverflow.com/questions/9341768/vim-response-quite-slow/55501120#55501120
lazyredraw = true,
-- -- макс длина линий для подсветки
-- synmaxcol = 1024,
-- новый движок регулярных выражений
-- с ним осторожнее т.к. что-то там не поддерживается
-- в command_line
-- regexpengine = 1,
-- делает отступы в зависимости от expandtab. так в док. написано.
smarttab = true,
-- автоотступ
autoindent = true,
-- исправляет поведение backspace на большинстве терминалов.
backspace = "indent,eol,start",
-- -- рабочий каталог всегда будет таким же, как и ваш рабочий каталог
-- autochdir = true,
-- граница кода (черта вертикальная)
colorcolumn = "320",
-- transparent menu
pumblend = 50,
-- transparent popup
winblend = 5,
-- softtabstop
softtabstop = 2,
-- disable tilde on end of buffer: https://github.com/neovim/neovim/pull/8546#issuecomment-643643758
fillchars = { eob = " " },
-- Устанавливает режимы, в которых текст в строке курсора также может быть скрыт.
concealcursor = "vin",
wildignorecase = true,
viminfo="'1000,f1",
-- Разделение по умолчанию приведет к скачку ваших основных разделов при открытии боковой панели.
-- Чтобы предотвратить это, установите для параметра `splitkeep` значение `screen` или `topline`.
splitkeep = "screen"
}
-- Когда значение 'verbose' не равно нулю, печатаются сообщения (для отладки в stderr).
cmd [[set verbose=0]]
-- HERE
-- попробовать
-- отключает коментарии пред новыми строками ( попробовать если не рабортает qrn1)
cmd [[set formatoptions-=cro]]
-- HERE
-- а может стоит отключить это ???
cmd [[let g:ale_cpp_clangd_options = "-std=c++20"]]
for k, v in pairs(options) do
opt[k] = v
end
-- -------------------------------
-- HERE
-- проверить то что ниже ВСЕ. нужно оно или нет
-- И перенести чтокасается opt в конфигурацию выше (если это нужно)
-- Так же проверить все выше, зачем это и что это такое и остаитьв коменты там где их нет
-- -------------------------------
-- перенести linebreak в нужную часть кода
-- это перености сткроки по пробелам или по знакам припинания
vim.wo.linebreak = true
-- позволит вашему курсору выйти за конец строки на один символ
vim.opt.virtualedit = { "block", "onemore" }
-- очевидно вроде
vim.opt.shell = "/bin/zsh"
-- совместимость с st, true colors
vim["&t_8f"] = "\\<Esc>[38;2;%lu;%lu;%lum"
vim["&t_8b"] = "\\<Esc>[48;2;%lu;%lu;%lum"
opt.termguicolors = true
-- просто отключает подробные обычные сообщения.(см. :h shortmess)
opt.shortmess:append "c"
-- переход к предыдущей / следующей строке с помощью h, l, стрелки влево и стрелки вправо, когда курсор достигает конца / начала строки
opt.whichwrap:append "<,>,[,],h,l"
-- отключить проверку орфографии для азиатских символов (алгоритм VIM ее не поддерживает)
opt.spelllang:append "cjk"
-- отключаем некоторые vim плагины
local disabled_plugins = {
"2html_plugin",
"getscript",
"getscriptPlugin",
"gzip",
"logipat",
"netrw",
"netrwPlugin",
"netrwSettings",
"netrwFileHandlers",
"matchit",
"tar",
"tarPlugin",
"rrhelper",
"spellfile_plugin",
"vimball",
"vimballPlugin",
"zip",
"zipPlugin",
"tutor",
"rplugin",
"syntax",
"synmenu",
"optwin",
"compiler",
"bugreport",
"ftplugin"
}
local default_providers = {
"node",
"perl",
"python3",
"ruby",
"filetype"
}
for _, plugin in pairs(disabled_plugins) do
g["loaded_" .. plugin] = 1
end
for _, provider in ipairs(default_providers) do
g["loaded_" .. provider .. "_provider"] = 0
end
-- Автоматическое удаление завершающих новых строк при записи файла
-- не рабботает с md файлами
-- Remember foldings
vim.cmd [[
augroup remember_folds
autocmd!
autocmd BufWinLeave * silent! mkview
autocmd BufWinEnter * silent! loadview
augroup end
]]
end
return M