feat: phase 1 migration
This commit is contained in:
parent
97cf58c784
commit
fc1fcc0c8c
6 changed files with 2451 additions and 1145 deletions
120
lua/config/options.lua
Normal file
120
lua/config/options.lua
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
-- [[ Setting options ]]
|
||||
-- See `:help vim.opt`
|
||||
-- See `:help vim.o`
|
||||
-- See `:help option-list`
|
||||
|
||||
-- Set <space> as the leader key
|
||||
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||
vim.g.have_nerd_font = false
|
||||
|
||||
-- [[ Setup Node.js PATH for plugins like Copilot ]]
|
||||
-- Add fnm's Node.js to PATH so Neovim can find it
|
||||
-- This is required for GitHub Copilot and other Node.js based plugins
|
||||
-- Uses fnm's alias resolution to always point to the default/latest version
|
||||
local home = vim.env.HOME
|
||||
local fnm_node_path = home .. '/.local/share/fnm/aliases/default/bin'
|
||||
-- Fallback: also add the fnm multishell path if it exists
|
||||
local fnm_multishell = home .. '/.local/state/fnm_multishells'
|
||||
if vim.fn.isdirectory(fnm_node_path) == 1 then
|
||||
vim.env.PATH = fnm_node_path .. ':' .. vim.env.PATH
|
||||
elseif vim.fn.isdirectory(fnm_multishell) == 1 then
|
||||
-- If multishell is being used, fnm will handle it via shell integration
|
||||
-- We just need to ensure the PATH includes typical fnm locations
|
||||
vim.env.PATH = home .. '/.local/share/fnm:' .. vim.env.PATH
|
||||
end
|
||||
|
||||
-- Make line numbers default
|
||||
vim.o.number = true
|
||||
|
||||
-- Enable relative line numbers for easier jumping
|
||||
vim.o.relativenumber = true
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||
vim.o.mouse = 'a'
|
||||
|
||||
-- Don't show the mode, since it's already in the status line
|
||||
vim.o.showmode = false
|
||||
|
||||
-- Sync clipboard between OS and Neovim.
|
||||
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
||||
-- See `:help 'clipboard'`
|
||||
vim.schedule(function()
|
||||
vim.o.clipboard = 'unnamedplus'
|
||||
end)
|
||||
|
||||
-- Enable break indent
|
||||
vim.o.breakindent = true
|
||||
|
||||
-- Save undo history
|
||||
vim.o.undofile = true
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- Keep signcolumn on by default
|
||||
vim.o.signcolumn = 'yes'
|
||||
|
||||
-- Decrease update time
|
||||
vim.o.updatetime = 250
|
||||
|
||||
-- Decrease mapped sequence wait time
|
||||
-- Displays which-key popup sooner
|
||||
vim.o.timeoutlen = 300
|
||||
|
||||
-- Configure how new splits should be opened
|
||||
vim.o.splitright = true
|
||||
vim.o.splitbelow = true
|
||||
|
||||
-- Sets how neovim will display certain whitespace characters in the editor.
|
||||
-- See `:help 'list'` and `:help 'listchars'`
|
||||
vim.o.list = true
|
||||
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||
|
||||
-- Preview substitutions live, as you type!
|
||||
vim.o.inccommand = 'split'
|
||||
|
||||
-- Show which line your cursor is on
|
||||
vim.o.cursorline = true
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.o.scrolloff = 10
|
||||
|
||||
-- If performing an operation that would fail due to unsaved changes in the buffer (like `:q`),
|
||||
-- instead raise a dialog asking if you wish to save the current file(s)
|
||||
-- See `:help 'confirm'`
|
||||
vim.o.confirm = true
|
||||
|
||||
-- ========================================================================
|
||||
-- FOLDING CONFIGURATION - For Flutter widgets and code blocks
|
||||
-- ========================================================================
|
||||
-- Enable folding based on Treesitter (for Flutter widgets, functions, etc.)
|
||||
vim.o.foldmethod = 'expr'
|
||||
vim.o.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||
|
||||
-- Start with all folds open (don't fold on file open)
|
||||
vim.o.foldenable = false
|
||||
|
||||
-- Set fold level (higher = more unfolded by default)
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
|
||||
-- Customize fold text to show more context
|
||||
vim.o.foldtext = ''
|
||||
|
||||
-- Hide fold column globally (saves space, folds still work with za/zc/zo)
|
||||
-- Set to '1' if you want the fold column back
|
||||
vim.o.foldcolumn = '0'
|
||||
|
||||
-- Folding keymaps:
|
||||
-- za - Toggle fold under cursor
|
||||
-- zc - Close fold under cursor
|
||||
-- zo - Open fold under cursor
|
||||
-- zM - Close all folds
|
||||
-- zR - Open all folds
|
||||
-- zj - Move to next fold
|
||||
-- zk - Move to previous fold
|
||||
Loading…
Add table
Add a link
Reference in a new issue