160 lines
4.2 KiB
Nix
160 lines
4.2 KiB
Nix
|
|
{ lib, ... }:
|
||
|
|
|
||
|
|
{
|
||
|
|
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_options.lua#L49-L53
|
||
|
|
astrocore = {
|
||
|
|
g.markdown_recommended_style = 0;
|
||
|
|
|
||
|
|
t.bufs.__raw = ''
|
||
|
|
(function()
|
||
|
|
if not vim.t.bufs then vim.t.bufs = vim.api.nvim_list_bufs() end
|
||
|
|
return vim.t.bufs
|
||
|
|
end)()
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
|
||
|
|
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_options.lua#L6-L47
|
||
|
|
opts = {
|
||
|
|
# Don't stop backspace at insert
|
||
|
|
backspace = lib.mkDefault {
|
||
|
|
__raw = ''
|
||
|
|
vim.list_extend(vim.opt.backspace:get(), { "nostop" })
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
|
||
|
|
# Wrap indent to match line start
|
||
|
|
breakindent = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Connection to the system clipboard
|
||
|
|
clipboard = lib.mkDefault "unnamedplus";
|
||
|
|
|
||
|
|
# Hide command line unless needed
|
||
|
|
cmdheight = lib.mkDefault 0;
|
||
|
|
|
||
|
|
# Options for insert mode completion
|
||
|
|
completeopt = lib.mkDefault [ "menu" "menuone" "noselect" ];
|
||
|
|
|
||
|
|
# Raise a dialog asking if you wish to save the current file(s)
|
||
|
|
confirm = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Copy the previous indentation on autoindenting
|
||
|
|
copyindent = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Highlight the text line of the cursor
|
||
|
|
cursorline = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Enable linematch diff algorithm
|
||
|
|
diffopt = lib.mkDefault {
|
||
|
|
__raw = ''
|
||
|
|
vim.list_extend(vim.opt.diffopt:get(), { "algorithm:histogram", "linematch:60" })
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
|
||
|
|
# Enable the use of space in tab
|
||
|
|
expandtab = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Disable `~` on nonexistent lines
|
||
|
|
fillchars = lib.mkDefault { eob = " "; };
|
||
|
|
|
||
|
|
# Show foldcolumn
|
||
|
|
foldcolumn = lib.mkDefault "1";
|
||
|
|
|
||
|
|
# Enable fold for nvim-ufo
|
||
|
|
foldenable = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Set high foldlevel for nvim-ufo
|
||
|
|
foldlevel = lib.mkDefault 99;
|
||
|
|
|
||
|
|
# Start with all code unfolded
|
||
|
|
foldlevelstart = lib.mkDefault 99;
|
||
|
|
|
||
|
|
# Case insensitive searching
|
||
|
|
ignorecase = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Infer cases in keyword completion
|
||
|
|
infercase = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Global statusline
|
||
|
|
laststatus = lib.mkDefault 3;
|
||
|
|
|
||
|
|
# Wrap lines at 'breakat'
|
||
|
|
linebreak = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Enable mouse support
|
||
|
|
mouse = lib.mkDefault "a";
|
||
|
|
|
||
|
|
# Show numberline
|
||
|
|
number = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Preserve indent structure as much as possible
|
||
|
|
preserveindent = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Height of the pop up menu
|
||
|
|
pumheight = lib.mkDefault 10;
|
||
|
|
|
||
|
|
# Show relative numberline
|
||
|
|
relativenumber = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Number of space inserted for indentation; when zero the 'tabstop' value will be used
|
||
|
|
shiftwidth = lib.mkDefault 0;
|
||
|
|
|
||
|
|
# Disable search count wrap and startup messages
|
||
|
|
shortmess = lib.mkDefault {
|
||
|
|
__raw = ''
|
||
|
|
vim.tbl_deep_extend("force", vim.opt.shortmess:get(), { s = true, I = true })
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
|
||
|
|
# Disable showing modes in command line
|
||
|
|
showmode = lib.mkDefault false;
|
||
|
|
|
||
|
|
# Always display tabline
|
||
|
|
showtabline = lib.mkDefault 2;
|
||
|
|
|
||
|
|
# Always show the sign column
|
||
|
|
signcolumn = lib.mkDefault "yes";
|
||
|
|
|
||
|
|
# Case sensitive searching
|
||
|
|
smartcase = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Splitting a new window below the current one
|
||
|
|
splitbelow = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Splitting a new window at the right of the current one
|
||
|
|
splitright = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Number of space in a tab
|
||
|
|
tabstop = lib.mkDefault 2;
|
||
|
|
|
||
|
|
# Enable 24-bit RGB color in the TUI
|
||
|
|
termguicolors = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Shorten key timeout length a little bit for which-key
|
||
|
|
timeoutlen = lib.mkDefault 500;
|
||
|
|
|
||
|
|
# Set terminal title to the filename and path
|
||
|
|
title = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Enable persistent undo
|
||
|
|
undofile = lib.mkDefault true;
|
||
|
|
|
||
|
|
# Length of time to wait before triggering the plugin
|
||
|
|
updatetime = lib.mkDefault 300;
|
||
|
|
|
||
|
|
viewoptions = lib.mkDefault {
|
||
|
|
__raw = ''
|
||
|
|
vim.tbl_filter(function(val) return val ~= "curdir" end, vim.opt.viewoptions:get())
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
|
||
|
|
# Allow going past end of line in visual block mode
|
||
|
|
virtualedit = lib.mkDefault "block";
|
||
|
|
|
||
|
|
# Disable wrapping of lines longer than the width of window
|
||
|
|
wrap = lib.mkDefault false;
|
||
|
|
|
||
|
|
# Disable making a backup before overwriting a file
|
||
|
|
writebackup = lib.mkDefault false;
|
||
|
|
};
|
||
|
|
}
|