115 lines
3.9 KiB
Lua
115 lines
3.9 KiB
Lua
-- [[ Setting options ]]
|
|
-- See `:help vim.o`
|
|
|
|
-- Set <space> as the leader key
|
|
-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used)
|
|
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
--
|
|
-- -- Set highlight on search
|
|
-- vim.o.hlsearch = false
|
|
--
|
|
-- -- Make line numbers default
|
|
-- vim.wo.number = true
|
|
-- vim.opt.relativenumber = true
|
|
--
|
|
-- -- Enable mouse mode
|
|
-- vim.o.mouse = "a"
|
|
--
|
|
-- -- Sync clipboard between OS and Neovim.
|
|
-- -- Remove this option if you want your OS clipboard to remain independent.
|
|
-- -- See `:help 'clipboard'`
|
|
-- vim.o.clipboard = "unnamedplus"
|
|
--
|
|
-- -- Enable break indent
|
|
-- vim.o.breakindent = true
|
|
--
|
|
-- -- Save undo history
|
|
-- vim.o.undofile = true
|
|
--
|
|
-- -- Case insensitive searching UNLESS /C or capital in search
|
|
-- vim.o.ignorecase = true
|
|
-- vim.o.smartcase = true
|
|
--
|
|
-- -- Keep signcolumn on by default
|
|
-- vim.wo.signcolumn = "yes"
|
|
--
|
|
-- -- Decrease update time
|
|
-- vim.o.updatetime = 250
|
|
-- vim.o.timeout = true
|
|
-- vim.o.timeoutlen = 300
|
|
--
|
|
-- -- Set completeopt to have a better completion experience
|
|
-- vim.o.completeopt = "menuone,noselect"
|
|
--
|
|
-- -- NOTE: You should make sure your terminal supports this
|
|
-- vim.o.termguicolors = true
|
|
--
|
|
-- vim.o.showmode = false
|
|
-- vim.o.conceallevel = 3
|
|
|
|
-- LazyVim options
|
|
local opt = vim.opt
|
|
|
|
opt.autowrite = true -- Enable auto write
|
|
opt.clipboard = "unnamedplus" -- Sync with system clipboard
|
|
opt.completeopt = "menu,menuone,noselect"
|
|
opt.conceallevel = 3 -- Hide * markup for bold and italic
|
|
opt.confirm = true -- Confirm to save changes before exiting modified buffer
|
|
opt.cursorline = true -- Enable highlighting of the current line
|
|
opt.expandtab = true -- Use spaces instead of tabs
|
|
opt.formatoptions = "jcroqlnt" -- tcqj
|
|
opt.grepformat = "%f:%l:%c:%m"
|
|
opt.grepprg = "rg --vimgrep"
|
|
opt.ignorecase = true -- Ignore case
|
|
opt.inccommand = "nosplit" -- preview incremental substitute
|
|
opt.laststatus = 0
|
|
opt.list = true -- Show some invisible characters (tabs...
|
|
opt.mouse = "a" -- Enable mouse mode
|
|
opt.number = true -- Print line number
|
|
opt.pumblend = 10 -- Popup blend
|
|
opt.pumheight = 10 -- Maximum number of entries in a popup
|
|
opt.relativenumber = true -- Relative line numbers
|
|
opt.scrolloff = 8 -- Lines of context
|
|
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize" }
|
|
opt.shiftround = true -- Round indent
|
|
opt.shiftwidth = 2 -- Size of an indent
|
|
opt.shortmess:append({ W = true, I = true, c = true })
|
|
opt.showmode = false -- Dont show mode since we have a statusline
|
|
opt.sidescrolloff = 8 -- Columns of context
|
|
opt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
|
|
opt.smartcase = true -- Don't ignore case with capitals
|
|
opt.smartindent = true -- Insert indents automatically
|
|
opt.spelllang = { "en" }
|
|
opt.splitbelow = true -- Put new windows below current
|
|
opt.splitright = true -- Put new windows right of current
|
|
opt.tabstop = 2 -- Number of spaces tabs count for
|
|
opt.termguicolors = true -- True color support
|
|
opt.timeoutlen = 300
|
|
opt.undofile = true
|
|
opt.undolevels = 10000
|
|
opt.updatetime = 200 -- Save swap file and trigger CursorHold
|
|
opt.wildmode = "longest:full,full" -- Command-line completion mode
|
|
opt.winminwidth = 5 -- Minimum window width
|
|
opt.wrap = false -- Disable line wrap
|
|
|
|
vim.filetype.add({
|
|
-- Detect and assign filetype based on the extension of the filename
|
|
extension = {
|
|
mdx = "mdx",
|
|
log = "log",
|
|
conf = "conf",
|
|
env = "dotenv",
|
|
},
|
|
-- Detect and apply filetypes based on the entire filename
|
|
filename = {
|
|
[".env"] = "dotenv",
|
|
["env"] = "dotenv",
|
|
["tsconfig.json"] = "jsonc",
|
|
},
|
|
-- Detect and apply filetypes based on certain patterns of the filenames
|
|
pattern = {
|
|
-- INFO: Match filenames like - ".env.example", ".env.local" and so on
|
|
["%.env%.[%w_.-]+"] = "dotenv",
|
|
},
|
|
})
|