mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 19:12:38 +00:00 
			
		
		
		
	nvim-lint: moved linting into its own global function "nvf_lint(buf)"
This commit is contained in:
		
					parent
					
						
							
								1f8a44c432
							
						
					
				
			
			
				commit
				
					
						acbeb26854
					
				
			
		
					 1 changed files with 36 additions and 32 deletions
				
			
		|  | @ -28,6 +28,41 @@ in { | ||||||
|               end |               end | ||||||
|             end |             end | ||||||
|           end |           end | ||||||
|  | 
 | ||||||
|  |           function nvf_lint(buf) | ||||||
|  |             local ft = vim.api.nvim_get_option_value("filetype", { buf = buf }) | ||||||
|  |             local linters = require("lint").linters | ||||||
|  |             local linters_from_ft = require("lint").linters_by_ft[ft] | ||||||
|  | 
 | ||||||
|  |             -- if no linter is configured for this filetype, stops linting | ||||||
|  |             if linters_from_ft == nil then return end | ||||||
|  | 
 | ||||||
|  |             for _, name in ipairs(linters_from_ft) do | ||||||
|  |               local linter = linters[name] | ||||||
|  |               assert(linter, 'Linter with name `' .. name .. '` not available') | ||||||
|  | 
 | ||||||
|  |               if type(linter) == "function" then | ||||||
|  |                 linter = linter() | ||||||
|  |               end | ||||||
|  |               -- for require("lint").lint() to work, linter.name must be set | ||||||
|  |               linter.name = linter.name or name | ||||||
|  |               local cwd = linter.required_files | ||||||
|  | 
 | ||||||
|  |               -- if no configuration files are configured, lint | ||||||
|  |               if cwd == nil then | ||||||
|  |                 require("lint").lint(linter) | ||||||
|  |               else | ||||||
|  |                 -- if configuration files are configured and present in the project, lint | ||||||
|  |                 for _, fn in ipairs(cwd) do | ||||||
|  |                   local path = vim.fs.joinpath(linter.cwd or vim.fn.getcwd(), fn); | ||||||
|  |                   if vim.uv.fs_stat(path) then | ||||||
|  |                     require("lint").lint(linter) | ||||||
|  |                     break | ||||||
|  |                   end | ||||||
|  |                 end | ||||||
|  |               end | ||||||
|  |             end | ||||||
|  |           end | ||||||
|         ''; |         ''; | ||||||
|       }; |       }; | ||||||
|     }) |     }) | ||||||
|  | @ -39,38 +74,7 @@ in { | ||||||
|             event = ["BufWritePost"]; |             event = ["BufWritePost"]; | ||||||
|             callback = mkLuaInline '' |             callback = mkLuaInline '' | ||||||
|               function(args) |               function(args) | ||||||
|                 local ft = vim.api.nvim_get_option_value("filetype", { buf = args.buf }) |                 nvf_lint(args.buf) | ||||||
|                 local linters = require("lint").linters |  | ||||||
|                 local linters_from_ft = require("lint").linters_by_ft[ft] |  | ||||||
| 
 |  | ||||||
|                 -- if no linter is configured for this filetype, stops linting |  | ||||||
|                 if linters_from_ft == nil then return end |  | ||||||
| 
 |  | ||||||
|                 for _, name in ipairs(linters_from_ft) do |  | ||||||
|                   local linter = linters[name] |  | ||||||
|                   assert(linter, 'Linter with name `' .. name .. '` not available') |  | ||||||
| 
 |  | ||||||
|                   if type(linter) == "function" then |  | ||||||
|                     linter = linter() |  | ||||||
|                   end |  | ||||||
|                   -- for require("lint").lint() to work, linter.name must be set |  | ||||||
|                   linter.name = linter.name or name |  | ||||||
|                   local cwd = linter.required_files |  | ||||||
| 
 |  | ||||||
|                   -- if no configuration files are configured, lint |  | ||||||
|                   if cwd == nil then |  | ||||||
|                     require("lint").lint(linter) |  | ||||||
|                   else |  | ||||||
|                     -- if configuration files are configured and present in the project, lint |  | ||||||
|                     for _, fn in ipairs(cwd) do |  | ||||||
|                       local path = vim.fs.joinpath(linter.cwd or vim.fn.getcwd(), fn); |  | ||||||
|                       if vim.uv.fs_stat(path) then |  | ||||||
|                         require("lint").lint(linter) |  | ||||||
|                         break |  | ||||||
|                       end |  | ||||||
|                     end |  | ||||||
|                   end |  | ||||||
|                 end |  | ||||||
|               end |               end | ||||||
|             ''; |             ''; | ||||||
|           } |           } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 rice-cracker-dev
				rice-cracker-dev