tarch-configs/configs/nvim/lua/core/options.lua

300 lines
10 KiB
Lua
Raw Normal View History

2024-03-10 13:30:59 +03:00
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"
}
-- Когда значение '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