From 9bcbd06db7b70f8a4a390ab95e079ffe83b50784 Mon Sep 17 00:00:00 2001 From: Kevin Lausen Date: Tue, 7 Jun 2022 12:51:39 -0400 Subject: [PATCH] A much more organized options directory. Having things more modularized and organized helps my ADD self focus. --- lua/user/options.lua | 97 +++++++++++++++++++++++++------------------- 1 file changed, 55 insertions(+), 42 deletions(-) diff --git a/lua/user/options.lua b/lua/user/options.lua index 502746b..c74e412 100644 --- a/lua/user/options.lua +++ b/lua/user/options.lua @@ -1,47 +1,60 @@ +-- :help options local options = { - backup = false, -- creates a backup file - clipboard = "unnamedplus", -- allows neovim to access the system clipboard - cmdheight = 2, -- more space in the neovim command line for displaying messages - completeopt = { "menuone", "noselect" }, -- mostly just for cmp - conceallevel = 0, -- so that `` is visible in markdown files - fileencoding = "utf-8", -- the encoding written to a file - hlsearch = true, -- highlight all matches on previous search pattern - ignorecase = true, -- ignore case in search patterns - mouse = "a", -- allow the mouse to be used in neovim - pumheight = 10, -- pop up menu height - showmode = false, -- we don't need to see things like -- INSERT -- anymore - showtabline = 2, -- always show tabs - smartcase = true, -- smart case - smartindent = true, -- make indenting smarter again - splitbelow = true, -- force all horizontal splits to go below current window - splitright = true, -- force all vertical splits to go to the right of current window - swapfile = false, -- creates a swapfile - -- termguicolors = true, -- set term gui colors (most terminals support this) - timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds) - undofile = true, -- enable persistent undo - updatetime = 300, -- faster completion (4000ms default) - writebackup = false, -- 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 - expandtab = true, -- convert tabs to spaces - shiftwidth = 2, -- the number of spaces inserted for each indentation - tabstop = 2, -- insert 2 spaces for a tab - cursorline = true, -- highlight the current line - number = true, -- set numbered lines - relativenumber = false, -- set relative numbered lines - numberwidth = 4, -- set number column width to 2 {default 4} - signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time - wrap = false, -- display lines as one long line - scrolloff = 8, -- is one of my fav - sidescrolloff = 8, - guifont = "monospace:h17", -- the font used in graphical neovim applications +-- Display settings: + fileencoding = "utf-8", -- The encoding written to a file. + showtabline = 2, -- Always show tabs. + cmdheight = 2, -- More space in the neovim command line, for displaying messages. + pumheight = 10, -- Pop up menu height. + splitbelow = true, -- Force all horizontal splits, to go below current window. + splitright = true, -- Force all vertical splits, to go to the right of current window. +-- Theme: + termguicolors = true, -- Set terminal GUI colors. + cursorline = true, -- Highlight the current line. + cursorcolumn = true, -- Enable a vertical column. + number = true, -- Set numbered lines. + relativenumber = true, -- Set relative numbered lines. + numberwidth = 4, -- set number line column width up to 4(default 4). + signcolumn = "yes", -- Always show the sign column, or it would shift the text each time. +-- Functionality: + mouse = "a", -- Allow the mouse to be used in neovim. + backup = true, -- Creates a backup file, before edits are written. + clipboard = "unnamedplus", -- Allows neovim to access the system clipboard. + swapfile = true, -- Creates a swapfile. + timeoutlen = 1000, -- Time to wait, for a mapped sequence to complete(in milliseconds). + undofile = true, -- Enable persistent undo. + undodir = "~/.config/nvim/persistant_undo_history", -- Sets the directory to store persistant-undo saves. + updatetime = 300, -- Faster completion(4000ms default). + writebackup = true, -- Write a backup file, before saving. + completeopt = { "menuone", "noselect" }, -- Mostly just for cmp. ??? +-- Text-formatting: + conceallevel = 0, -- Added so `` is visible in markdown files. + smartindent = true, -- Keep indention from line-to-line. + expandtab = true, -- Convert tabs into spaces. + shiftwidth = 4, -- The number of spaces inserted for each indentation + tabstop = 4, -- Insert 2 spaces for each tab. + wrap = true, -- Wrap my code-lines on the visible screen. + guifont = "monospace:h17", -- The font used in graphical neovim applications. +-- Search: + hlsearch = true, -- Highlight all matches on when searching. + incsearch = true, -- Turn on incremental search highlighting. + ignorecase = true, -- Ignore case in search patterns. + smartcase = false, -- Overides ignore case, w/ capitals. Default = false. + hidden = true, -- Saves all buffers before an exit. if hidden biffers exist. } +-- A lua for-loop to loop through the above table of options. +-- A table is a list, that is allowed key, value pairs. + for k, v in pairs(options) do + vim.opt[k] = v + end -vim.opt.shortmess:append "c" +-- Enabling editor pips/EOL/trails/ext/pre... + vim.o.list = true -- Set special formatting characters to on. + vim.o.listchars = 'eol:↲,trail:~,precedes:<,extends:>,space:·' -for k, v in pairs(options) do - vim.opt[k] = v -end - -vim.cmd "set whichwrap+=<,>,[,],h,l" -vim.cmd [[set iskeyword+=-]] -vim.cmd [[set formatoptions-=cro]] -- TODO: this doesn't seem to work +-- Did NOT fit well within the options loop , without throwing errors and disabling the loop. + vim.opt.shortmess:append "I" -- Set No Intro-message for Neo-vim. +-- vim.cmd Passes strings, that will be interpreted as vim-script. +-- vim.cmd "set whichwrap+=<,>,[,],h,l" Want to find out what it does, before blindly enabling it. + vim.cmd [[set iskeyword+=-]] -- Will treat words with a dash as part of a single word. +--vim.cmd [[set formatoptions-=cro]] -- TODO: this doesn't seem to work