mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 517f0cc634
			
		
	
	517f0cc634
	
	
	
		
			
			Problem: We don't enable stylua for many Lua scripts. Automating code-style is an important tool for reducing time spent on accidental (non-essential) complexity. Solution: - Enable lintlua for `scripts/` directory. - Specify `call_parentheses = "Input"`, we should allow kwargs-style function invocations.
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
| --  Updates version.c list of applied Vim patches.
 | |
| --
 | |
| --  Usage:
 | |
| --    VIM_SOURCE_DIR=~/neovim/.vim-src/ nvim -V1 -es -i NONE +'luafile ./scripts/vimpatch.lua' +q
 | |
| 
 | |
| local nvim = vim.api
 | |
| 
 | |
| local function systemlist(...)
 | |
|   local rv = nvim.nvim_call_function('systemlist', ...)
 | |
|   local err = nvim.nvim_get_vvar('shell_error')
 | |
|   local args_str = nvim.nvim_call_function('string', ...)
 | |
|   if 0 ~= err then
 | |
|     error('command failed: ' .. args_str)
 | |
|   end
 | |
|   return rv
 | |
| end
 | |
| 
 | |
| local function vimpatch_sh_list_numbers()
 | |
|   return systemlist({ { 'bash', '-c', 'scripts/vim-patch.sh -M' } })
 | |
| end
 | |
| 
 | |
| -- Generates the lines to be inserted into the src/version.c
 | |
| -- `included_patches[]` definition.
 | |
| local function gen_version_c_lines()
 | |
|   -- Set of merged Vim 8.1.zzzz patch numbers.
 | |
|   local merged_patch_numbers = {}
 | |
|   local highest = 0
 | |
|   for _, n in ipairs(vimpatch_sh_list_numbers()) do
 | |
|     n = tonumber(n)
 | |
|     if n then
 | |
|       merged_patch_numbers[n] = true
 | |
|       highest = math.max(highest, n)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   local lines = {}
 | |
|   for i = highest, 0, -1 do
 | |
|     local is_merged = (nil ~= merged_patch_numbers[i])
 | |
|     if is_merged then
 | |
|       table.insert(lines, string.format('  %s,', i))
 | |
|     else
 | |
|       table.insert(lines, string.format('  // %s,', i))
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   return lines
 | |
| end
 | |
| 
 | |
| local function patch_version_c()
 | |
|   local lines = gen_version_c_lines()
 | |
| 
 | |
|   nvim.nvim_command('silent noswapfile noautocmd edit src/nvim/version.c')
 | |
|   nvim.nvim_command('/static const int included_patches')
 | |
|   -- Delete the existing lines.
 | |
|   nvim.nvim_command('silent normal! j0d/};\rk')
 | |
|   -- Insert the lines.
 | |
|   nvim.nvim_call_function('append', {
 | |
|     nvim.nvim_eval('line(".")'),
 | |
|     lines,
 | |
|   })
 | |
|   nvim.nvim_command('silent write')
 | |
| end
 | |
| 
 | |
| patch_version_c()
 |