forked from aniani/vim
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| vim9script noclear
 | |
| 
 | |
| # Vim support file to switch on loading plugins for file types
 | |
| #
 | |
| # Maintainer:	Bram Moolenaar <Bram@vim.org>
 | |
| # Last change:	2022 Feb 11
 | |
| 
 | |
| if exists("g:did_load_ftplugin")
 | |
|   finish
 | |
| endif
 | |
| g:did_load_ftplugin = 1
 | |
| 
 | |
| augroup filetypeplugin
 | |
|   au FileType * call LoadFTPlugin()
 | |
| augroup END
 | |
| 
 | |
| if exists('*LoadFTPlugin')
 | |
|   # No need to define the function again.
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| def LoadFTPlugin()
 | |
|   if exists("b:undo_ftplugin")
 | |
|     # We assume b:undo_ftplugin is using legacy script syntax
 | |
|     legacy exe b:undo_ftplugin
 | |
|     unlet! b:undo_ftplugin b:did_ftplugin
 | |
|   endif
 | |
| 
 | |
|   var s = expand("<amatch>")
 | |
|   if s != ""
 | |
|     if &cpo =~# "S" && exists("b:did_ftplugin")
 | |
|       # In compatible mode options are reset to the global values, need to
 | |
|       # set the local values also when a plugin was already used.
 | |
|       unlet b:did_ftplugin
 | |
|     endif
 | |
| 
 | |
|     # When there is a dot it is used to separate filetype names.  Thus for
 | |
|     # "aaa.bbb" load "aaa" and then "bbb".
 | |
|     for name in split(s, '\.')
 | |
|       exe 'runtime! ftplugin/' .. name .. '.vim ftplugin/' .. name .. '_*.vim ftplugin/' .. name .. '/*.vim'
 | |
|     endfor
 | |
|   endif
 | |
| enddef
 |